Re: [PATCH v2] perf sort: only insert overhead && overhead_children when no overhead* field given

From: Jiri Olsa
Date: Thu Jun 29 2017 - 11:23:14 EST


On Mon, Jun 26, 2017 at 04:06:26PM +0800, Du, Changbin wrote:
>
> Hi, Jiri,
> what is the status of this one? I didn't get a response of v2. thanks.
>
> On Fri, Jun 02, 2017 at 12:22:00PM +0800, changbin.du@xxxxxxxxx wrote:
> > From: Changbin Du <changbin.du@xxxxxxxxx>
> >
> > If we always insert 'overhead' and 'overhead_children' as sort keys,
> > this make it impossible to sort as overhead (which displayed as Self)
> > first.Ths will be a problem if the data is collected with call-graph
> > enabled. Then we never can sort the result as self-overhead on this
> > data. And sometimes the data is hard to collect.
> >
> > > perf record -ag
> > > perf report -s overhead,sym
> >
> > Samples: 7K of event 'cycles', Event count (approx.): 865138253
> > Children Self Symbol
> > + 26.41% 0.00% [k] verify_cpu
> > + 26.37% 0.04% [k] cpu_startup_entry
> > + 25.93% 0.27% [k] do_idle
> > + 19.88% 0.00% [k] start_secondary
> > ....
> >
> > I intend to sort as 'Self', but actually it sort as 'Children'.
> >
> > This patch fix this by only insert overhead && overhead_children
> > when no overhead* field given.
> >
> > Signed-off-by: Changbin Du <changbin.du@xxxxxxxxx>
> > ---
> > v2: Add the example in commit message.
> >
> > ---
> > tools/perf/util/sort.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
> > index 5762ae4..69eea3a 100644
> > --- a/tools/perf/util/sort.c
> > +++ b/tools/perf/util/sort.c
> > @@ -2635,6 +2635,9 @@ static char *setup_overhead(char *keys)
> > if (sort__mode == SORT_MODE__DIFF)
> > return keys;
> >
> > + if (strstr(keys, "overhead"))
> > + return keys;
> > +

ah ok, I think it's right.. basically you're forcing
precedence of the -s option over the --children option

you could have your example working by running:
$ perf report -s overhead,sym --no-children

please state something like:

/*
* User already stated overhead within -s option,
* do not mangle with that.
*/

thanks,
jirka