perf symbols: No need to special case MAP__FUNCTION in fixup
authorArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 26 Apr 2018 15:36:37 +0000 (12:36 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 26 Apr 2018 16:47:20 +0000 (13:47 -0300)
In 39b12f781271 ("perf tools: Make it possible to read object code from
vmlinux") we special case MAP__FUNCTION maps inconsistently, the first
test tests the map type while the following tests added by this patch
don't do that, be consistent and elliminate this special case.

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-khmi5jccpcwqa9nybefluzqp@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/sort.c
tools/perf/util/symbol-elf.c

index 49a41b4b59cfd924c62ffbe4cabefb660eac6928..e65903a695a63af21e713f0460fb933f683a5939 100644 (file)
@@ -282,7 +282,7 @@ static int _hist_entry__sym_snprintf(struct map *map, struct symbol *sym,
 
        ret += repsep_snprintf(bf + ret, size - ret, "[%c] ", level);
        if (sym && map) {
-               if (map->type == MAP__VARIABLE) {
+               if (sym->type == STT_OBJECT) {
                        ret += repsep_snprintf(bf + ret, size - ret, "%s", sym->name);
                        ret += repsep_snprintf(bf + ret, size - ret, "+0x%llx",
                                        ip - map->unmap_ip(map, sym->start));
index 88f6f3050665085873e8f577a36e8f7e8ceffc99..cf2e6f428bb4d9f38917d3176de05bf5a64eafe8 100644 (file)
@@ -921,10 +921,10 @@ int dso__load_sym(struct dso *dso, struct map *map, struct symsrc *syms_ss,
 
        dso->adjust_symbols = runtime_ss->adjust_symbols || ref_reloc(kmap);
        /*
-        * Initial kernel and module mappings do not map to the dso.  For
-        * function mappings, flag the fixups.
+        * Initial kernel and module mappings do not map to the dso.
+        * Flag the fixups.
         */
-       if (map->type == MAP__FUNCTION && (dso->kernel || kmodule)) {
+       if (dso->kernel || kmodule) {
                remap_kernel = true;
                adjust_kernel_syms = dso->adjust_symbols;
        }