All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Namhyung Kim <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, peterz@infradead.org,
	wangnan0@huawei.com, fweisbec@gmail.com, andi@firstfloor.org,
	tglx@linutronix.de, hpa@zytor.com, jolsa@kernel.org,
	dsahern@gmail.com, namhyung@kernel.org, acme@redhat.com,
	mingo@kernel.org
Subject: [tip:perf/core] perf hists browser: Pass parent_total to callchain print functions
Date: Wed, 3 Feb 2016 02:23:38 -0800	[thread overview]
Message-ID: <tip-5eca104eee7edfe7155523849750ced539b16e94@git.kernel.org> (raw)
In-Reply-To: <1453909257-26015-9-git-send-email-namhyung@kernel.org>

Commit-ID:  5eca104eee7edfe7155523849750ced539b16e94
Gitweb:     http://git.kernel.org/tip/5eca104eee7edfe7155523849750ced539b16e94
Author:     Namhyung Kim <namhyung@kernel.org>
AuthorDate: Thu, 28 Jan 2016 00:40:55 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 1 Feb 2016 17:45:42 -0300

perf hists browser: Pass parent_total to callchain print functions

Pass parent node's total period to callchain print functions.  This info
is needed by later patch to determine whether it can omit percent or not
correctly.

No functional change intended.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1453909257-26015-9-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/ui/browsers/hists.c | 44 +++++++++++++++++++++++-------------------
 1 file changed, 24 insertions(+), 20 deletions(-)

diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index 6b22baf..41dbb79 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -660,6 +660,7 @@ static int hist_browser__show_callchain_list(struct hist_browser *browser,
 static int hist_browser__show_callchain_flat(struct hist_browser *browser,
 					     struct rb_root *root,
 					     unsigned short row, u64 total,
+					     u64 parent_total __maybe_unused,
 					     print_callchain_entry_fn print,
 					     struct callchain_print_arg *arg,
 					     check_output_full_fn is_output_full)
@@ -763,6 +764,7 @@ static char *hist_browser__folded_callchain_str(struct hist_browser *browser,
 static int hist_browser__show_callchain_folded(struct hist_browser *browser,
 					       struct rb_root *root,
 					       unsigned short row, u64 total,
+					       u64 parent_total __maybe_unused,
 					       print_callchain_entry_fn print,
 					       struct callchain_print_arg *arg,
 					       check_output_full_fn is_output_full)
@@ -847,14 +849,18 @@ next:
 static int hist_browser__show_callchain_graph(struct hist_browser *browser,
 					struct rb_root *root, int level,
 					unsigned short row, u64 total,
+					u64 parent_total,
 					print_callchain_entry_fn print,
 					struct callchain_print_arg *arg,
 					check_output_full_fn is_output_full)
 {
 	struct rb_node *node;
 	int first_row = row, offset = level * LEVEL_OFFSET_STEP;
-	u64 new_total;
 	bool need_percent;
+	u64 percent_total = total;
+
+	if (callchain_param.mode == CHAIN_GRAPH_REL)
+		percent_total = parent_total;
 
 	node = rb_first(root);
 	need_percent = node && rb_next(node);
@@ -878,7 +884,7 @@ static int hist_browser__show_callchain_graph(struct hist_browser *browser,
 			folded_sign = callchain_list__folded(chain);
 
 			row += hist_browser__show_callchain_list(browser, child,
-							chain, row, total,
+							chain, row, percent_total,
 							was_first && need_percent,
 							offset + extra_offset,
 							print, arg);
@@ -893,13 +899,9 @@ static int hist_browser__show_callchain_graph(struct hist_browser *browser,
 		if (folded_sign == '-') {
 			const int new_level = level + (extra_offset ? 2 : 1);
 
-			if (callchain_param.mode == CHAIN_GRAPH_REL)
-				new_total = child->children_hit;
-			else
-				new_total = total;
-
 			row += hist_browser__show_callchain_graph(browser, &child->rb_root,
-							    new_level, row, new_total,
+							    new_level, row, total,
+							    child->children_hit,
 							    print, arg, is_output_full);
 		}
 		if (is_output_full(browser, row))
@@ -918,27 +920,29 @@ static int hist_browser__show_callchain(struct hist_browser *browser,
 					check_output_full_fn is_output_full)
 {
 	u64 total = hists__total_period(entry->hists);
+	u64 parent_total;
 	int printed;
 
-	if (callchain_param.mode == CHAIN_GRAPH_REL) {
-		if (symbol_conf.cumulate_callchain)
-			total = entry->stat_acc->period;
-		else
-			total = entry->stat.period;
-	}
+	if (symbol_conf.cumulate_callchain)
+		parent_total = entry->stat_acc->period;
+	else
+		parent_total = entry->stat.period;
 
 	if (callchain_param.mode == CHAIN_FLAT) {
 		printed = hist_browser__show_callchain_flat(browser,
-						&entry->sorted_chain, row, total,
-						print, arg, is_output_full);
+						&entry->sorted_chain, row,
+						total, parent_total, print, arg,
+						is_output_full);
 	} else if (callchain_param.mode == CHAIN_FOLDED) {
 		printed = hist_browser__show_callchain_folded(browser,
-						&entry->sorted_chain, row, total,
-						print, arg, is_output_full);
+						&entry->sorted_chain, row,
+						total, parent_total, print, arg,
+						is_output_full);
 	} else {
 		printed = hist_browser__show_callchain_graph(browser,
-						&entry->sorted_chain, level, row, total,
-						print, arg, is_output_full);
+						&entry->sorted_chain, level, row,
+						total, parent_total, print, arg,
+						is_output_full);
 	}
 
 	if (arg->is_current_entry)

  reply	other threads:[~2016-02-03 10:24 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-27 15:40 [PATCHSET 00/10] perf tools: Apply percent-limit to callchains (v2) Namhyung Kim
2016-01-27 15:40 ` [PATCH 01/10] perf hists: Fix min callchain hits calculation Namhyung Kim
2016-02-03 10:21   ` [tip:perf/core] " tip-bot for Namhyung Kim
2016-01-27 15:40 ` [PATCH 02/10] perf hists: Update hists' total period when adding entries Namhyung Kim
2016-02-03 10:21   ` [tip:perf/core] " tip-bot for Namhyung Kim
2016-01-27 15:40 ` [PATCH 03/10] perf report: Apply --percent-limit to callchains also Namhyung Kim
2016-02-01 20:19   ` Arnaldo Carvalho de Melo
2016-02-02 13:05     ` Namhyung Kim
2016-02-02 13:55       ` Arnaldo Carvalho de Melo
2016-02-02 14:15         ` Namhyung Kim
2016-02-02 14:27           ` Arnaldo Carvalho de Melo
2016-02-02 14:35             ` Namhyung Kim
2016-02-02 14:57               ` Arnaldo Carvalho de Melo
2016-02-02 15:03                 ` Namhyung Kim
2016-02-03 10:22   ` [tip:perf/core] " tip-bot for Namhyung Kim
2016-01-27 15:40 ` [PATCH 04/10] perf report: Get rid of hist_entry__callchain_fprintf() Namhyung Kim
2016-02-03 10:22   ` [tip:perf/core] " tip-bot for Namhyung Kim
2016-01-27 15:40 ` [PATCH 05/10] perf tools: Pass parent_samples to __callchain__fprintf_graph() Namhyung Kim
2016-02-03 10:22   ` [tip:perf/core] perf callchain: " tip-bot for Namhyung Kim
2016-01-27 15:40 ` [PATCH 06/10] perf report: Fix percent display in callchains on --stdio Namhyung Kim
2016-02-03 10:22   ` [tip:perf/core] " tip-bot for Namhyung Kim
2016-01-27 15:40 ` [PATCH 07/10] perf hists browser: Fix dump to show correct callchain style Namhyung Kim
2016-02-03 10:23   ` [tip:perf/core] " tip-bot for Namhyung Kim
2016-01-27 15:40 ` [PATCH 08/10] perf hists browser: Pass parent_total to callchain print functions Namhyung Kim
2016-02-03 10:23   ` tip-bot for Namhyung Kim [this message]
2016-01-27 15:40 ` [PATCH 09/10] perf hists browser: Fix percent display in callchains Namhyung Kim
2016-02-03 10:24   ` [tip:perf/core] " tip-bot for Namhyung Kim
2016-01-27 15:40 ` [RFC/PATCH 10/10] perf tools: Change default calchain percent limit to 0.005% Namhyung Kim
2016-01-27 16:06   ` Andi Kleen
2016-01-27 23:34     ` Namhyung Kim
2016-01-28  8:14 ` [PATCHSET 00/10] perf tools: Apply percent-limit to callchains (v2) Jiri Olsa
2016-01-28  8:42   ` Namhyung Kim
2016-01-28  8:16 ` Jiri Olsa
2016-01-28 10:14   ` Namhyung Kim
2016-01-28 10:16     ` Namhyung Kim
2016-01-28 12:12       ` Jiri Olsa
2016-01-28 12:24         ` Namhyung Kim
2016-01-28 19:52           ` Jiri Olsa
2016-01-29 21:00             ` Arnaldo Carvalho de Melo
2016-01-30 13:52               ` Namhyung Kim
2016-02-03 10:24           ` [tip:perf/core] perf report: Don' t show blank lines if entry has no callchain tip-bot for 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=tip-5eca104eee7edfe7155523849750ced539b16e94@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=acme@redhat.com \
    --cc=andi@firstfloor.org \
    --cc=dsahern@gmail.com \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.