[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4F8B36A1.1090706@gmail.com>
Date: Sun, 15 Apr 2012 14:59:13 -0600
From: David Ahern <dsahern@...il.com>
To: acme@...stprotocols.net
CC: linux-kernel@...r.kernel.org, mingo@...e.hu, peterz@...radead.org,
eranian@...gle.com, namhyung.kim@....com
Subject: Re: [PATCH] perf report: fix crash showing warning related to kernel
maps
Hi Arnaldo:
Haven't seen this one come through your urgent queue.
On 4/10/12 10:15 AM, David Ahern wrote:
> While testing https://lkml.org/lkml/2012/4/10/123 I hit this crash:
>
> (gdb) bt
> 0 0x000000000042000f in __cmd_report (rep=0x7fff80cec580) at builtin-report.c:380
> 1 cmd_report (argc=0, argv=<optimized out>, prefix=<optimized out>) at builtin-report.c:759
> 2 0x0000000000414513 in run_builtin (p=0x7724a8, argc=3, argv=0x7fff80ceca70) at perf.c:273
> 3 0x0000000000413d41 in handle_internal_command (argv=0x7fff80ceca70, argc=3) at perf.c:345
> 4 run_argv (argv=0x7fff80cec880, argcp=0x7fff80cec88c) at perf.c:389
> 5 main (argc=3, argv=0x7fff80ceca70) at perf.c:487
>
> kernel_map can be NULL, so need to handle it while dumping a warning
> to user.
>
> Signed-off-by: David Ahern<dsahern@...il.com>
> ---
> tools/perf/builtin-report.c | 17 ++++++++++++-----
> 1 files changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
> index 2e31743..002c644 100644
> --- a/tools/perf/builtin-report.c
> +++ b/tools/perf/builtin-report.c
> @@ -374,16 +374,23 @@ static int __cmd_report(struct perf_report *rep)
> (kernel_map->dso->hit&&
> (kernel_kmap->ref_reloc_sym == NULL ||
> kernel_kmap->ref_reloc_sym->addr == 0))) {
> - const struct dso *kdso = kernel_map->dso;
> + const char *desc =
> + "As no suitable kallsyms nor vmlinux was found, kernel samples\n"
> + "can't be resolved.";
> +
> + if (kernel_map) {
> + const struct dso *kdso = kernel_map->dso;
> + if (RB_EMPTY_ROOT(&kdso->symbols[MAP__FUNCTION])) {
> + desc = "If some relocation was applied (e.g. "
> + "kexec) symbols may be misresolved.";
> + }
> + }
>
> ui__warning(
> "Kernel address maps (/proc/{kallsyms,modules}) were restricted.\n\n"
> "Check /proc/sys/kernel/kptr_restrict before running 'perf record'.\n\n%s\n\n"
> "Samples in kernel modules can't be resolved as well.\n\n",
> - RB_EMPTY_ROOT(&kdso->symbols[MAP__FUNCTION]) ?
> -"As no suitable kallsyms nor vmlinux was found, kernel samples\n"
> -"can't be resolved." :
> -"If some relocation was applied (e.g. kexec) symbols may be misresolved.");
> + desc);
> }
>
> if (dump_trace) {
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists