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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/