perf top: Use __map__is_kernel()
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 23 Apr 2018 19:40:02 +0000 (16:40 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 26 Apr 2018 12:30:27 +0000 (09:30 -0300)
Shorter form to figure out if a given map is the kernel one and also
reduces the number of code accessing MAP__{FUNCTION,VARIABLE}, that
should go away at some point.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: https://lkml.kernel.org/n/tip-rn8pexelsxpx92ce3elu3wiw@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-top.c

index f39bd60d2708c7ae0c05a748d719bd89654270ef..4e975f3ee3bea9cbb976ebe97e5bba93b085b515 100644 (file)
@@ -750,7 +750,7 @@ static void perf_event__process_sample(struct perf_tool *tool,
                machine->kptr_restrict_warned = true;
        }
 
-       if (al.sym == NULL) {
+       if (al.sym == NULL && al.map != NULL) {
                const char *msg = "Kernel samples will not be resolved.\n";
                /*
                 * As we do lazy loading of symtabs we only will know if the
@@ -764,7 +764,7 @@ static void perf_event__process_sample(struct perf_tool *tool,
                 * invalid --vmlinux ;-)
                 */
                if (!machine->kptr_restrict_warned && !top->vmlinux_warned &&
-                   al.map == machine->vmlinux_maps[MAP__FUNCTION] &&
+                   __map__is_kernel(al.map) &&
                    RB_EMPTY_ROOT(&al.map->dso->symbols[MAP__FUNCTION])) {
                        if (symbol_conf.vmlinux_name) {
                                char serr[256];