From: tip-bot for Namhyung Kim <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: mingo@kernel.org, linux-kernel@vger.kernel.org,
dsahern@gmail.com, wangnan0@huawei.com, acme@redhat.com,
jolsa@kernel.org, tglx@linutronix.de, namhyung@kernel.org,
peterz@infradead.org, fweisbec@gmail.com, hpa@zytor.com,
andi@firstfloor.org
Subject: [tip:perf/core] perf hists browser: Fix dump to show correct callchain style
Date: Wed, 3 Feb 2016 02:23:19 -0800 [thread overview]
Message-ID: <tip-0c841c6c16f320704f75970bbe6a9800c53e6cf5@git.kernel.org> (raw)
In-Reply-To: <1453909257-26015-8-git-send-email-namhyung@kernel.org>
Commit-ID: 0c841c6c16f320704f75970bbe6a9800c53e6cf5
Gitweb: http://git.kernel.org/tip/0c841c6c16f320704f75970bbe6a9800c53e6cf5
Author: Namhyung Kim <namhyung@kernel.org>
AuthorDate: Thu, 28 Jan 2016 00:40:54 +0900
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 1 Feb 2016 17:44:30 -0300
perf hists browser: Fix dump to show correct callchain style
The commit 8c430a348699 ("perf hists browser: Support folded
callchains") missed to update hist_browser__dump() so it always shows
graph-style callchains regardless of current setting.
To fix that, factor out callchain printing code and rename the existing
function which prints graph-style callchain.
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>
Fixes: 8c430a348699 ("perf hists browser: Support folded callchains")
Link: http://lkml.kernel.org/r/1453909257-26015-8-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/ui/browsers/hists.c | 73 ++++++++++++++++++++++++------------------
1 file changed, 41 insertions(+), 32 deletions(-)
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index 1da30f8..6b22baf 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -844,7 +844,7 @@ next:
return row - first_row;
}
-static int hist_browser__show_callchain(struct hist_browser *browser,
+static int hist_browser__show_callchain_graph(struct hist_browser *browser,
struct rb_root *root, int level,
unsigned short row, u64 total,
print_callchain_entry_fn print,
@@ -898,7 +898,7 @@ static int hist_browser__show_callchain(struct hist_browser *browser,
else
new_total = total;
- row += hist_browser__show_callchain(browser, &child->rb_root,
+ row += hist_browser__show_callchain_graph(browser, &child->rb_root,
new_level, row, new_total,
print, arg, is_output_full);
}
@@ -910,6 +910,43 @@ out:
return row - first_row;
}
+static int hist_browser__show_callchain(struct hist_browser *browser,
+ struct hist_entry *entry, int level,
+ unsigned short row,
+ print_callchain_entry_fn print,
+ struct callchain_print_arg *arg,
+ check_output_full_fn is_output_full)
+{
+ u64 total = hists__total_period(entry->hists);
+ 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 (callchain_param.mode == CHAIN_FLAT) {
+ printed = hist_browser__show_callchain_flat(browser,
+ &entry->sorted_chain, row, 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);
+ } else {
+ printed = hist_browser__show_callchain_graph(browser,
+ &entry->sorted_chain, level, row, total,
+ print, arg, is_output_full);
+ }
+
+ if (arg->is_current_entry)
+ browser->he_selection = entry;
+
+ return printed;
+}
+
struct hpp_arg {
struct ui_browser *b;
char folded_sign;
@@ -1084,38 +1121,14 @@ static int hist_browser__show_entry(struct hist_browser *browser,
--row_offset;
if (folded_sign == '-' && row != browser->b.rows) {
- u64 total = hists__total_period(entry->hists);
struct callchain_print_arg arg = {
.row_offset = row_offset,
.is_current_entry = current_entry,
};
- if (callchain_param.mode == CHAIN_GRAPH_REL) {
- if (symbol_conf.cumulate_callchain)
- total = entry->stat_acc->period;
- else
- total = entry->stat.period;
- }
-
- if (callchain_param.mode == CHAIN_FLAT) {
- printed += hist_browser__show_callchain_flat(browser,
- &entry->sorted_chain, row, total,
+ printed += hist_browser__show_callchain(browser, entry, 1, row,
hist_browser__show_callchain_entry, &arg,
hist_browser__check_output_full);
- } else if (callchain_param.mode == CHAIN_FOLDED) {
- printed += hist_browser__show_callchain_folded(browser,
- &entry->sorted_chain, row, total,
- hist_browser__show_callchain_entry, &arg,
- hist_browser__check_output_full);
- } else {
- printed += hist_browser__show_callchain(browser,
- &entry->sorted_chain, 1, row, total,
- hist_browser__show_callchain_entry, &arg,
- hist_browser__check_output_full);
- }
-
- if (arg.is_current_entry)
- browser->he_selection = entry;
}
return printed;
@@ -1380,15 +1393,11 @@ do_offset:
static int hist_browser__fprintf_callchain(struct hist_browser *browser,
struct hist_entry *he, FILE *fp)
{
- u64 total = hists__total_period(he->hists);
struct callchain_print_arg arg = {
.fp = fp,
};
- if (symbol_conf.cumulate_callchain)
- total = he->stat_acc->period;
-
- hist_browser__show_callchain(browser, &he->sorted_chain, 1, 0, total,
+ hist_browser__show_callchain(browser, he, 1, 0,
hist_browser__fprintf_callchain_entry, &arg,
hist_browser__check_dump_full);
return arg.printed;
next prev parent 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-bot for Namhyung Kim [this message]
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:perf/core] " tip-bot for Namhyung Kim
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-0c841c6c16f320704f75970bbe6a9800c53e6cf5@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 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).