perf machine: Keep zero in pgoff BPF map
authorJiri Olsa <jolsa@kernel.org>
Wed, 8 May 2019 13:20:04 +0000 (15:20 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 28 May 2019 21:37:42 +0000 (18:37 -0300)
With pgoff set to zero, the map__map_ip function will return BPF
addresses based from 0, which is what we need when we read the data from
a BPF DSO.

Adding BPF symbols with mapped IP addresses as well.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Song Liu <songliubraving@fb.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stanislav Fomichev <sdf@google.com>
Link: http://lkml.kernel.org/r/20190508132010.14512-7-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/machine.c

index dc7aafe..f5569f0 100644 (file)
@@ -704,12 +704,12 @@ static int machine__process_ksymbol_register(struct machine *machine,
                        return -ENOMEM;
 
                map->start = event->ksymbol_event.addr;
-               map->pgoff = map->start;
                map->end = map->start + event->ksymbol_event.len;
                map_groups__insert(&machine->kmaps, map);
        }
 
-       sym = symbol__new(event->ksymbol_event.addr, event->ksymbol_event.len,
+       sym = symbol__new(map->map_ip(map, map->start),
+                         event->ksymbol_event.len,
                          0, 0, event->ksymbol_event.name);
        if (!sym)
                return -ENOMEM;