Re: [PATCH] perf tools: Fix to put caller above callee in children mode

From: Jiri Olsa
Date: Tue May 23 2017 - 03:30:26 EST


On Mon, May 22, 2017 at 09:50:29PM +0900, Namhyung Kim wrote:
> The __hpp__sort_acc() sorts entries using callchain depth in order to
> put callers above in children mode. But it assumed the callchain order
> was callee-first. Now default (for children) is caller-first so the
> order of entries is reverted.
>
> For example, consider following case.
>
> $ perf report --no-children
> ..l
> # Overhead Command Shared Object Symbol
> # ........ ....... ................... ..........................
> #
> 99.44% a.out a.out [.] main
> |
> ---main
> __libc_start_main
> _start
>
> Then children mode should show 'start' above '__libc_start_main' since
> it's the caller (parent) of the __libc_start_main. But it's reversed:
>
> # Children Self Command Shared Object Symbol
> # ........ ........ ....... ............... .....................
> #
> 99.61% 0.00% a.out libc-2.25.so [.] __libc_start_main
> 99.61% 0.00% a.out a.out [.] _start
> 99.54% 99.44% a.out a.out [.] main
>
> This patch fixes it.
>
> # Children Self Command Shared Object Symbol
> # ........ ........ ....... ............... .....................
> #
> 99.61% 0.00% a.out a.out [.] _start
> 99.61% 0.00% a.out libc-2.25.so [.] __libc_start_main
> 99.54% 99.44% a.out a.out [.] main
>
> Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> Cc: Milian Wolff <milian.wolff@xxxxxxxx>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka