On Wed, Jul 05, 2017 at 11:35:52AM +0800, changbin...@intel.com wrote:
> From: Changbin Du <changbin...@intel.com>
> 
> 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...@intel.com>

Acked-by: Jiri Olsa <jo...@kernel.org>

thanks,
jirka

> ---
> v3: Add comment in code from Jiri
> v2: Add the example in commit message.
> 
> ---
>  tools/perf/util/sort.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
> index 8b327c9..9e087fb 100644
> --- a/tools/perf/util/sort.c
> +++ b/tools/perf/util/sort.c
> @@ -2635,6 +2635,13 @@ static char *setup_overhead(char *keys)
>       if (sort__mode == SORT_MODE__DIFF)
>               return keys;
>  
> +     /**
> +      * User already stated overhead within -s option,
> +      * do not mangle with that.
> +      */
> +     if (strstr(keys, "overhead"))
> +             return keys;
> +
>       keys = prefix_if_not_in("overhead", keys);
>  
>       if (symbol_conf.cumulate_callchain)
> -- 
> 2.7.4
> 

Reply via email to