diff -ur perf-3.9.4-orig/builtin-top.c perf-3.9.4/builtin-top.c --- perf-3.9.4-orig/builtin-top.c 2013-05-25 20:02:49.000000000 +0200 +++ perf-3.9.4/builtin-top.c 2013-06-05 17:08:59.028950951 +0200 @@ -1059,6 +1059,8 @@ "list of cpus to monitor"), OPT_STRING('k', "vmlinux", &symbol_conf.vmlinux_name, "file", "vmlinux pathname"), + OPT_BOOLEAN(0, "ignore-vmlinux", &symbol_conf.ignore_vmlinux, + "don't load vmlinux even if found"), OPT_BOOLEAN('K', "hide_kernel_symbols", &top.hide_kernel_symbols, "hide kernel symbols"), OPT_UINTEGER('m', "mmap-pages", &opts->mmap_pages, diff -ur perf-3.9.4-orig/util/symbol.c perf-3.9.4/util/symbol.c --- perf-3.9.4-orig/util/symbol.c 2013-05-25 20:02:49.000000000 +0200 +++ perf-3.9.4/util/symbol.c 2013-06-05 17:08:59.032950668 +0200 @@ -968,7 +968,7 @@ goto do_kallsyms; } - if (symbol_conf.vmlinux_name != NULL) { + if (!symbol_conf.ignore_vmlinux && symbol_conf.vmlinux_name != NULL) { err = dso__load_vmlinux(dso, map, symbol_conf.vmlinux_name, filter); if (err > 0) { @@ -980,7 +980,7 @@ return err; } - if (vmlinux_path != NULL) { + if (!symbol_conf.ignore_vmlinux && vmlinux_path != NULL) { err = dso__load_vmlinux_path(dso, map, filter); if (err > 0) goto out_fixup; diff -ur perf-3.9.4-orig/util/symbol.h perf-3.9.4/util/symbol.h --- perf-3.9.4-orig/util/symbol.h 2013-05-26 11:30:18.000000000 +0200 +++ perf-3.9.4/util/symbol.h 2013-06-05 17:08:59.041950570 +0200 @@ -85,6 +85,7 @@ unsigned short priv_size; unsigned short nr_events; bool try_vmlinux_path, + ignore_vmlinux, show_kernel_path, use_modules, sort_by_name,