Re: [PATCHSET 0/8] perf tools: Support multiple keys in a single hierarchy level (v1)

From: Arnaldo Carvalho de Melo
Date: Wed Mar 02 2016 - 11:25:21 EST


Em Thu, Mar 03, 2016 at 01:12:00AM +0900, Namhyung Kim escreveu:
> Hello,
>
> This implements what Arnaldo suggested in previous discussion of
> hierarchy patchset [1]. Originally each level in a hierarchy can have
> a single sort key in it, but with patches it's possible to have more
> than one sort keys. I added the struct perf_hpp_list_node and carry
> it to group output formats (hpp_fmt) in a single level.
>
> I used ':' character instead of '+' as suggested since the '+' was
> also used to extend existing sort keys (like -s '+cpu').

Could we use ';' instead? That is associated with lists as well, i.e.:

perf report --hierarchy -s prev_pid;prev_comm,next_pid;next_comm

What do you think? Others?

But anyway, thanks for working on this, I'll try and test it,

- Arnaldo

> Example below shows how 4 sort keys are used for 2 levels. As you can
> see, the first level shows pid and comm of previous (switched) task
> and the second level shows pid and comm of next task.
>
> $ perf report --hierarchy -s prev_pid:prev_comm,next_pid:next_comm \
> --percent-limit 1 -i perf.data.sched
> ...
> # Overhead prev_pid+prev_comm / next_pid+next_comm
> # ........... .......................................
> #
> 22.36% 0 swapper/0
> 9.48% 17773 transmission-gt
> 5.25% 109 kworker/0:1H
> 1.53% 6524 Xephyr
> 21.39% 17773 transmission-gt
> 9.52% 0 swapper/0
> 9.04% 0 swapper/2
> 1.78% 0 swapper/3
>
>
> It's available on the 'perf/hierarchy-multi-v1' branch in my tree
>
> git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
>
>
> Any feedbacks are welcome
>
> Thanks,
> Namhyung
>
>
> [1] https://lkml.org/lkml/2016/2/24/1041
>
>
> Namhyung Kim (8):
> perf tools: Add level field to struct perf_hpp_fmt
> perf tools: Introduce perf_hpp__setup_hists_formats()
> perf tools: Use own hpp_list for hierarchy mode
> perf tools: Support multiple sort keys in a hierarchy
> perf tools: Fix indent for multiple hierarchy sort key
> perf report: Use hierarchy hpp list on stdio
> perf hists browser: Use hierarchy hpp list
> perf report: Use hierarchy hpp list on gtk
>
> tools/perf/ui/browsers/hists.c | 147 +++++++++++++++++++----------------
> tools/perf/ui/gtk/hists.c | 73 +++++++++++-------
> tools/perf/ui/hist.c | 67 ++++++++++++++++
> tools/perf/ui/stdio/hist.c | 171 +++++++++++++++++++++--------------------
> tools/perf/util/hist.c | 81 +++++++++++++------
> tools/perf/util/hist.h | 12 +++
> tools/perf/util/sort.c | 123 ++++++++++++++++++++---------
> tools/perf/util/sort.h | 1 +
> 8 files changed, 438 insertions(+), 237 deletions(-)
>
> --
> 2.7.1