[PATCH 0/3] perf tools: Fix scalability problem on callchain merging

From: Namhyung Kim
Date: Tue Sep 10 2013 - 04:24:31 EST


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.

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/