If user explicitly specifies a vmlinux or kallsyms file on the command line and the specified file doesn't yield any symbols, print a warning message.
$ perf report -kallsyms No kernel symbols in the vmlinux 'allsyms'? Failed to load symbols for DSO [kernel.kallsyms], continuing without symbols This could help user better recognize the typo -kallsyms v. --kallsyms. It would also help if the user points to a stripped/invalid vmlinux or an invalid kallsyms. With a stripped vmlinux: $ perf report -k /tmp/vmlinux No kernel symbols in the vmlinux '/tmp/vmlinux'? Failed to load symbols for DSO [kernel.kallsyms], continuing without symbols and with perf top $ perf top -k /tmp/vmlinux No kernel symbols in the vmlinux '/tmp/vmlinux'? /tmp/vmlinux with build id f43f4e78d3afac6492dcae52cd756394247997d6 not found, continuing without symbols Signed-off-by: Sukadev Bhattiprolu <suka...@linux.vnet.ibm.com> --- tools/perf/util/symbol.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 9b66e27..ad5baa4 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -1658,8 +1658,13 @@ static int dso__load_kernel_sym(struct dso *dso, struct map *map, } if (!symbol_conf.ignore_vmlinux && symbol_conf.vmlinux_name != NULL) { - return dso__load_vmlinux(dso, map, symbol_conf.vmlinux_name, + nsyms = dso__load_vmlinux(dso, map, symbol_conf.vmlinux_name, false, filter); + if (nsyms <= 0) { + pr_warning("No kernel symbols in the vmlinux '%s'?\n", + symbol_conf.vmlinux_name); + } + return nsyms; } if (!symbol_conf.ignore_vmlinux && vmlinux_path != NULL) { @@ -1682,6 +1687,10 @@ do_kallsyms: nsyms = dso__load_kallsyms(dso, kallsyms_filename, map, filter); if (nsyms > 0) pr_debug("Using %s for symbols\n", kallsyms_filename); + else if (symbol_conf.kallsyms_name) { + pr_warning("No kernel symbols in the kallsyms '%s'?\n", + kallsyms_filename); + } free(kallsyms_allocated_filename); if (nsyms > 0 && !dso__is_kcore(dso)) { -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/