From: Frederic Weisbecker <fweisbec@gmail.com>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Paul Mackerras <paulus@samba.org>, Ingo Molnar <mingo@kernel.org>,
Namhyung Kim <namhyung.kim@lge.com>,
LKML <linux-kernel@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Jiri Olsa <jolsa@redhat.com>
Subject: Re: [PATCH 0/3] perf tools: Fix scalability problem on callchain merging
Date: Tue, 10 Sep 2013 13:58:43 +0200 [thread overview]
Message-ID: <20130910115841.GC28268@somewhere> (raw)
In-Reply-To: <1378801458-2515-1-git-send-email-namhyung@kernel.org>
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
>
prev parent reply other threads:[~2013-09-10 11:58 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-10 8:24 [PATCH 0/3] perf tools: Fix scalability problem on callchain merging Namhyung Kim
2013-09-10 8:24 ` [PATCH 1/3] perf callchain: Convert children list to rbtree Namhyung Kim
2013-09-10 9:02 ` Namhyung Kim
2013-09-10 9:52 ` Jiri Olsa
2013-09-10 10:25 ` Ingo Molnar
2013-09-10 11:34 ` Frederic Weisbecker
2013-09-22 11:15 ` Jiri Olsa
2013-09-23 9:29 ` Namhyung Kim
2013-09-23 9:36 ` Jiri Olsa
2013-09-10 8:24 ` [PATCH 2/3] perf ui/progress: Add new helper functions for progress bar Namhyung Kim
2013-09-10 8:24 ` [PATCH 3/3] perf tools: Show progress on histogram collapsing Namhyung Kim
2013-09-10 11:58 ` Frederic Weisbecker [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130910115841.GC28268@somewhere \
--to=fweisbec@gmail.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@ghostprotocols.net \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung.kim@lge.com \
--cc=namhyung@kernel.org \
--cc=paulus@samba.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox