Re: [PATCH] perf callchain: Pass relative address to hist entry

From: Jiri Olsa
Date: Wed Oct 25 2017 - 04:34:43 EST


On Wed, Oct 25, 2017 at 11:12:09AM +0900, Namhyung Kim wrote:
> The addr_location->addr should have relative address to be passed to
> hist entry so that it can compare with others which might come from a
> different address space.
>
> The callchain_cursor_node->ip already has a relative address thus it
> should not map it again. But I found a bug handling cumulative
> (children) entries. For chilren entries that has no self period, the
> al->addr (so he->ip) ends up having an doubly-mapped address.
>
> It seems to be there from the beginning but only affects entries that
> have no srclines - finding srcline itself is done using a different
> address but it will show the invalid address if no srcline was found.
>
> Tested-by: Milian Wolff <milian.wolff@xxxxxxxx>
> Fixes: c7405d85d7a3 ("perf tools: Update cpumode for each cumulative entry")
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>

hum, I'm getting differences in hist entries for:

$ perf record --all-user -ga sleep 1
$ perf perf report --stdio > ...
...
$ diff -puw /tmp/o.old /tmp/o.new


jirka


---
@@ -51,7 +51,7 @@
|
--0.94%--0x3

- 3.38% 0.00% Web Content libxul.so [.] 0xffff8087f8e046a5
+ 3.38% 0.00% Web Content libxul.so [.] 0x00000000031c16a5
|
---0x31c16a5
|
@@ -91,7 +91,7 @@
|
--1.62%--malloc

- 2.47% 0.00% Compositor libxul.so [.] 0xffff80e6f2807790
+ 2.47% 0.00% Compositor libxul.so [.] 0x0000000000b9b790
|
---0xb9b790
|
@@ -163,7 +163,7 @@
|
---0x72be62f5fdc55d00

- 1.05% 0.00% Compositor libxul.so [.] 0xffff80e6f280f100
+ 1.05% 0.00% Compositor libxul.so [.] 0x0000000000ba3100
|
---0xba3100
|