Re: [PATCH] perf diff: Fix duplicated output column

From: Jiri Olsa
Date: Tue May 10 2016 - 09:17:21 EST


On Tue, May 10, 2016 at 09:48:19PM +0900, Namhyung Kim wrote:
> The commit b97511c5bc94 ("perf tools: Add overhead/overhead_children
> keys defaults via string") moved initialization of column headers but it
> missed to check the sort__mode. As 'perf diff' doesn't call
> perf_hpp__init(), the setup_overhead() also should not be called.
>
> Before:
>
> # Baseline Delta Children Overhead Shared Object Symbol
> # ........ ....... ........ ........ ................... .......................
> #
> 28.48% -28.47% 28.48% 28.48% [kernel.vmlinux ] [k] intel_idle
> 11.51% -11.47% 11.51% 11.51% libxul.so [.] 0x0000000001a360f7
> 3.49% -3.49% 3.49% 3.49% [kernel.vmlinux] [k] generic_exec_single
> 2.91% -2.89% 2.91% 2.91% libdbus-1.so.3.8.11 [.] 0x000000000000cdc2
> 2.86% -2.85% 2.86% 2.86% libxcb.so.1.1.0 [.] 0x000000000000c890
> 2.44% -2.39% 2.44% 2.44% [kernel.vmlinux] [k] perf_event_aux_ctx
>
> After:
>
> # Baseline Delta Shared Object Symbol
> # ........ ....... ................... .......................
> #
> 28.48% -28.47% [kernel.vmlinux] [k] intel_idle
> 11.51% -11.47% libxul.so [.] 0x0000000001a360f7
> 3.49% -3.49% [kernel.vmlinux] [k] generic_exec_single
> 2.91% -2.89% libdbus-1.so.3.8.11 [.] 0x000000000000cdc2
> 2.86% -2.85% libxcb.so.1.1.0 [.] 0x000000000000c890
> 2.44% -2.39% [kernel.vmlinux] [k] perf_event_aux_ctx
>
> Cc: stable <stable@xxxxxxxxxxxxxxx> # 4.5
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka

> ---
> 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 772e2e461ec3..20e69edd5006 100644
> --- a/tools/perf/util/sort.c
> +++ b/tools/perf/util/sort.c
> @@ -2438,6 +2438,9 @@ static char *prefix_if_not_in(const char *pre, char *str)
>
> static char *setup_overhead(char *keys)
> {
> + if (sort__mode == SORT_MODE__DIFF)
> + return keys;
> +
> keys = prefix_if_not_in("overhead", keys);
>
> if (symbol_conf.cumulate_callchain)
> --
> 2.8.2
>