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

From: Namhyung Kim
Date: Wed Oct 25 2017 - 04:49:08 EST


Hi Jiri,

On Wed, Oct 25, 2017 at 10:34:32AM +0200, Jiri Olsa wrote:
> 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

I'd like to say that the old address is invalid since user space
function address should not be started with 0xffff...

The last paragraph of the commit message should say that it also
affects entries don't have symbols.

Thanks,
Namhyung


>
>
> 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
> |
>