Re: [PATCH] perf report: show sort_order in title

From: Arnaldo Carvalho de Melo
Date: Mon Mar 13 2017 - 10:57:42 EST


Em Mon, Mar 13, 2017 at 11:47:14AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Mon, Mar 13, 2017 at 04:36:35PM +0800, changbin.du@xxxxxxxxx escreveu:
> > From: Changbin Du <changbin.du@xxxxxxxxx>
> >
> > In the report, how does the data sort is a important info for
> > analyser. Moreover, perf sometimes insert or append sort fields
> > automatically. Thus user may confuse how it sorts w/o reading
> > perf internal. So here print the order info to repor title.
> >
> > Signed-off-by: Changbin Du <changbin.du@xxxxxxxxx>
> > ---
> > tools/perf/ui/browsers/hists.c | 22 ++++++++++++++++++++++
> > 1 file changed, 22 insertions(+)
> >
> > diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
> > index fc4fb66..6c6b615 100644
> > --- a/tools/perf/ui/browsers/hists.c
> > +++ b/tools/perf/ui/browsers/hists.c
> > @@ -2194,6 +2194,25 @@ static inline bool is_report_browser(void *timer)
> > return timer == NULL;
> > }
> >
> > +static int get_sort_fields_str(struct hists *hists, char *buf, size_t size)
>
> I'll just rename this to use the tools/perf/ style for such functions,
> making it:
>
> static int hists__scnprintf_sort_fields(hists, buf, size)

But then, while testing,

Before:

$ perf report
Samples: 405 of event 'cycles', Event count (approx.): 101733003
Overhead Command Shared Object Symbol
11.15% swapper [kernel.vmlinux] [k] intel_idle
3.00% firefox libxul.so [.] 0x0000000001298b8d
1.74% swapper [kernel.vmlinux] [k] update_blocked_averages
1.69% qemu-system-x86 [kernel.vmlinux] [k] __fget
1.18% swapper [kernel.vmlinux] [k] update_wall_time

Tip: Save output of perf stat using: perf stat record <target workload>

After:

$ perf report
Samples: 405 of event 'cycles', Event count (approx.): 101733003, Sort by: Children,Overhead,Command,Shared Object,Symbol
Overhead Command Shared Object Symbol
11.15% swapper [kernel.vmlinux] [k] intel_idle
3.00% firefox libxul.so [.] 0x0000000001298b8d
1.74% swapper [kernel.vmlinux] [k] update_blocked_averages
1.69% qemu-system-x86 [kernel.vmlinux] [k] __fget
1.18% swapper [kernel.vmlinux] [k] update_wall_time


I see now duplication of info, where is the value? Can you show the usecase in
a compelling way?

- Arnaldo