Re: [PATCH 6/7] perf tools: Append callchains only when requested

From: Arnaldo Carvalho de Melo
Date: Fri Jan 02 2015 - 21:25:26 EST


Em Mon, Dec 22, 2014 at 01:44:14PM +0900, Namhyung Kim escreveu:
> The perf report --children can be called with callchain disabled so no
> need to append callchains. Actually the root of callchain tree is not
> initialized properly in this case.

Hi Namhyung,

I should have caught this using 'perf test', but it slipped
thru, please try running 'perf test cumulation', I noticed that it fails
and that if I revert this changeset it works again, can you please
check?

- Arnaldo

> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> ---
> tools/perf/util/hist.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
> index bd4a2cd73236..30ff2cb92884 100644
> --- a/tools/perf/util/hist.c
> +++ b/tools/perf/util/hist.c
> @@ -300,7 +300,7 @@ static struct hist_entry *hist_entry__new(struct hist_entry *template,
> size_t callchain_size = 0;
> struct hist_entry *he;
>
> - if (symbol_conf.use_callchain || symbol_conf.cumulate_callchain)
> + if (symbol_conf.use_callchain)
> callchain_size = sizeof(struct callchain_root);
>
> he = zalloc(sizeof(*he) + callchain_size);
> @@ -735,7 +735,7 @@ iter_add_single_cumulative_entry(struct hist_entry_iter *iter,
> iter->he = he;
> he_cache[iter->curr++] = he;
>
> - callchain_append(he->callchain, &callchain_cursor, sample->period);
> + hist_entry__append_callchain(he, sample);
>
> /*
> * We need to re-initialize the cursor since callchain_append()
> @@ -808,7 +808,8 @@ iter_add_next_cumulative_entry(struct hist_entry_iter *iter,
> iter->he = he;
> he_cache[iter->curr++] = he;
>
> - callchain_append(he->callchain, &cursor, sample->period);
> + if (symbol_conf.use_callchain)
> + callchain_append(he->callchain, &cursor, sample->period);
> return 0;
> }
>
> --
> 2.1.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/