perf report: Use kernel_maps__find_symbol as fallback to find vdsos, etc
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 5 Oct 2009 17:26:16 +0000 (14:26 -0300)
committerIngo Molnar <mingo@elte.hu>
Mon, 5 Oct 2009 18:35:24 +0000 (20:35 +0200)
In resolve_symbol, as we're moving to breaking the kernel symbols
list per address ranges, i.e. kernel linking sections, so that we
don't have a big kernel_map that in its range covers what is in the
modules.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Mike Galbraith <efault@gmx.de>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
tools/perf/builtin-report.c

index fe4aadc9630f5a9db93dc38ae907273c70d4a378..12f8c868fcd7dda57da90918321af4cbb4c70fbd 100644 (file)
@@ -384,11 +384,8 @@ got_map:
                 * the "[vdso]" dso, but for now lets use the old
                 * trick of looking in the whole kernel symbol list.
                 */
-               if ((long long)ip < 0) {
-                       map = kernel_map;
-                       if (mapp)
-                               *mapp = map;
-               }
+               if ((long long)ip < 0)
+                       return kernel_maps__find_symbol(ip, mapp);
        }
        dump_printf(" ...... dso: %s\n",
                    map ? map->dso->long_name : "<not found>");