linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Jiri Olsa <jolsa@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Jiri Olsa <jolsa@kernel.org>, LKML <linux-kernel@vger.kernel.org>,
	Andi Kleen <andi@firstfloor.org>, David Ahern <dsahern@gmail.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Wang Nan <wangnan0@huawei.com>
Subject: Re: [PATCHSET 00/12] perf tools: Apply percent-limit to callchains
Date: Tue, 26 Jan 2016 21:51:59 +0900	[thread overview]
Message-ID: <20160126125159.GB24496@danjae.kornet> (raw)
In-Reply-To: <20160126121447.GA19017@krava.brq.redhat.com>

On Tue, Jan 26, 2016 at 01:14:47PM +0100, Jiri Olsa wrote:
> On Sun, Jan 24, 2016 at 10:53:23PM +0900, Namhyung Kim wrote:
> > Hello,
> > 
> > This patchset tries to implement percent limit to callchains which was
> > requested by Andi Kleen.  For some reason, limiting callchains by
> > (overhead) percentage didn't work well.  This patch fixes it and make
> > --percent-limit also works for callchains as well as hist entries.
> > 
> > This is available on 'perf/callchain-limit-v1' branch in my tree:
> > 
> >   git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
> > 
> > Any comments are welcome,
> > 
> > Thanks,
> > Namhyung
> > 
> > 
> > Namhyung Kim (12):
> >   perf report: Apply --percent-limit to callchains also
> >   perf report: Apply callchain percent limit on --stdio
> >   perf report: Get rid of hist_entry__callchain_fprintf()
> >   perf report: Fix percent calculation on --stdio
> >   perf report: Hide output pipe for percent-limited callchains on stdio
> >   perf hists browser: Fix dump to show correct callchain style
> >   perf hists browser: Fix callchain_node__count_rows()
> >   perf hists browser: Apply callchain percent limit
> >   perf hists browser: Fix callchain counting when press ENTER key
> >   perf hists browser: Fix counting callchains when expand/collapse all
> >   perf hists browser: Update percent base for fractal callchain mode
> >   perf report: Fix callchain percent limit on --gtk
> 
> is 0.5 the default or one has to use the --percent-limit 0.5
> for the limit to be effective?

Yes, it's effective now.  I also think we need to change the default
limit of 0.5.  It was set for 'fractal' mode initially AFAIK so its
percentage is relative to each node.  In this case 0.5% of limit makes
sense because it'll be a very small (absolute) value.

But With 'graph' mode (now default), there're many entries under 0.5
overhead and they silently won't show callchains anymore.  Actually I
was confused by it when working with this patchset.

What about 0.005% for the new default?


> 
> without the option I'm getting empty callchains that are below 0.5
> but only in TUI mode (attached).. --stdio shows them all unfolded

It should not show them all.  But I found that I missed a check for
a stdio case.  Could you please test below?


>From 9026b85537cf31af43124c957867f42b34262f2e Mon Sep 17 00:00:00 2001
From: Namhyung Kim <namhyung@kernel.org>
Date: Tue, 26 Jan 2016 21:40:39 +0900
Subject: [PATCH] perf report: Check percent limit of single callchain on stdio

While previous commit ("perf report: Apply callchain percent limit
on --stdio") checked percent limit of callchain, it missed to check a
single-path callchains.  It resulted in showing callchains under the
limit if an entry has only single path of call graph.

Reported-by: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/ui/stdio/hist.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tools/perf/ui/stdio/hist.c b/tools/perf/ui/stdio/hist.c
index eae25efa684e..35964579627b 100644
--- a/tools/perf/ui/stdio/hist.c
+++ b/tools/perf/ui/stdio/hist.c
@@ -199,6 +199,7 @@ static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root,
 	int i = 0;
 	int ret = 0;
 	char bf[1024];
+	double percent;
 
 	/*
 	 * If have one single callchain root, don't bother printing
@@ -208,6 +209,11 @@ static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root,
 	node = rb_first(root);
 	if (node && !rb_next(node)) {
 		cnode = rb_entry(node, struct callchain_node, rb_node);
+
+		percent = 100.0 * callchain_cumul_hits(cnode) / total_samples;
+		if (percent < callchain_param.min_percent)
+			return 0;
+
 		list_for_each_entry(chain, &cnode->val, list) {
 			/*
 			 * If we sort by symbol, the first entry is the same than
-- 
2.6.4

  reply	other threads:[~2016-01-26 12:53 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-24 13:53 [PATCHSET 00/12] perf tools: Apply percent-limit to callchains Namhyung Kim
2016-01-24 13:53 ` [PATCH 01/12] perf report: Apply --percent-limit to callchains also Namhyung Kim
2016-01-24 13:53 ` [PATCH 02/12] perf report: Apply callchain percent limit on --stdio Namhyung Kim
2016-01-24 13:53 ` [PATCH 03/12] perf report: Get rid of hist_entry__callchain_fprintf() Namhyung Kim
2016-01-24 13:53 ` [PATCH 04/12] perf report: Fix percent calculation on --stdio Namhyung Kim
2016-01-24 13:53 ` [PATCH 05/12] perf report: Hide output pipe for percent-limited callchains on stdio Namhyung Kim
2016-01-24 13:53 ` [PATCH 06/12] perf hists browser: Fix dump to show correct callchain style Namhyung Kim
2016-01-24 13:53 ` [PATCH 07/12] perf hists browser: Fix callchain_node__count_rows() Namhyung Kim
2016-01-26 11:46   ` Jiri Olsa
2016-01-26 12:32     ` Namhyung Kim
2016-01-24 13:53 ` [PATCH 08/12] perf hists browser: Apply callchain percent limit Namhyung Kim
2016-01-24 13:53 ` [PATCH 09/12] perf hists browser: Fix callchain counting when press ENTER key Namhyung Kim
2016-01-24 13:53 ` [PATCH 10/12] perf hists browser: Fix counting callchains when expand/collapse all Namhyung Kim
2016-01-24 13:53 ` [PATCH 11/12] perf hists browser: Update percent base for fractal callchain mode Namhyung Kim
2016-01-24 13:53 ` [PATCH 12/12] perf report: Fix callchain percent limit on --gtk Namhyung Kim
2016-01-25  2:16 ` [PATCHSET 00/12] perf tools: Apply percent-limit to callchains Andi Kleen
2016-01-26 12:14 ` Jiri Olsa
2016-01-26 12:51   ` Namhyung Kim [this message]
2016-01-26 13:27     ` Jiri Olsa
2016-01-26 14:10       ` Namhyung Kim
2016-01-26 14:41         ` Jiri Olsa
2016-01-26 14:49           ` Namhyung Kim
2016-01-26 15:18             ` Jiri Olsa
2016-01-26 15:30               ` Arnaldo Carvalho de Melo
2016-01-26 15:41                 ` Jiri Olsa
2016-01-26 15:54                   ` Namhyung Kim
2016-01-26 16:15                     ` Jiri Olsa
2016-01-27 13:21                       ` Namhyung Kim

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=20160126125159.GB24496@danjae.kornet \
    --to=namhyung@kernel.org \
    --cc=acme@kernel.org \
    --cc=andi@firstfloor.org \
    --cc=dsahern@gmail.com \
    --cc=fweisbec@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=wangnan0@huawei.com \
    /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;
as well as URLs for NNTP newsgroup(s).