Re: [PATCH 0/3] perf tools: Fix scalability problem on callchainmerging

From: Frederic Weisbecker
Date: Tue Sep 10 2013 - 07:58:51 EST


On Tue, Sep 10, 2013 at 05:24:15PM +0900, Namhyung Kim wrote:
> Hello,
>
> Linus reported that perf report was stuck in after "processing time
> ordered events". It turned out that merging/collapsing the callchain
> takes most of time to look up a matching callchain. Since it did a
> linear search for the lookup, it took more than 95% of time during the
> processing huge file that contains callchains.
>
> This patchset tries to fix the problem by
>
> 1. converting children list to a rbtree
> 2. add UI progress window to inform user
>
> With this patch, processing time of 400MB perf.data file went down
> from 380s to 20s.

Even if we get rid of hists collapsing, this may still bring value on
performance. One way to test is to sort by pid or by sym and compare
before and after the patchset. pid/sym shouldn't make use of collapses.

Thanks.

>
> Thanks,
> Namhyung
>
>
> Namhyung Kim (3):
> perf callchain: Convert children list to rbtree
> perf ui/progress: Add new helper functions for progress bar
> perf tools: Show progress on histogram collapsing
>
> tools/perf/builtin-annotate.c | 2 +-
> tools/perf/builtin-diff.c | 2 +-
> tools/perf/builtin-report.c | 10 ++-
> tools/perf/builtin-top.c | 4 +-
> tools/perf/tests/hists_link.c | 2 +-
> tools/perf/ui/progress.c | 18 +++++
> tools/perf/ui/progress.h | 10 +++
> tools/perf/util/callchain.c | 151 ++++++++++++++++++++++++++++++++----------
> tools/perf/util/callchain.h | 5 +-
> tools/perf/util/hist.c | 5 +-
> tools/perf/util/hist.h | 3 +-
> tools/perf/util/session.c | 22 +++---
> 12 files changed, 173 insertions(+), 61 deletions(-)
>
> --
> 1.7.11.7
>
--
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/