From: tip-bot for Namhyung Kim <namhyung.kim@lge.com>
To: linux-tip-commits@vger.kernel.org
Cc: acme@redhat.com, linux-kernel@vger.kernel.org, paulus@samba.org,
hpa@zytor.com, mingo@kernel.org, a.p.zijlstra@chello.nl,
penberg@kernel.org, eranina@google.com, namhyung.kim@lge.com,
namhyung@kernel.org, jolsa@redhat.com, tglx@linutronix.de
Subject: [tip:perf/core] perf gtk/browser: Add support for event group view
Date: Fri, 1 Feb 2013 02:51:03 -0800 [thread overview]
Message-ID: <tip-cb16008bcc6ea53617ca06c9eb4ab0ecafe04585@git.kernel.org> (raw)
In-Reply-To: <1358845787-1350-13-git-send-email-namhyung@kernel.org>
Commit-ID: cb16008bcc6ea53617ca06c9eb4ab0ecafe04585
Gitweb: http://git.kernel.org/tip/cb16008bcc6ea53617ca06c9eb4ab0ecafe04585
Author: Namhyung Kim <namhyung.kim@lge.com>
AuthorDate: Tue, 22 Jan 2013 18:09:40 +0900
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Thu, 31 Jan 2013 13:07:47 -0300
perf gtk/browser: Add support for event group view
Show group members's overhead also when showing leader's if event
group is enabled.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranina@google.com>
Link: http://lkml.kernel.org/r/1358845787-1350-13-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/ui/gtk/hists.c | 56 +++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 52 insertions(+), 4 deletions(-)
diff --git a/tools/perf/ui/gtk/hists.c b/tools/perf/ui/gtk/hists.c
index 38be79d..c87a98c 100644
--- a/tools/perf/ui/gtk/hists.c
+++ b/tools/perf/ui/gtk/hists.c
@@ -8,8 +8,7 @@
#define MAX_COLUMNS 32
-static int perf_gtk__percent_color_snprintf(char *buf, size_t size,
- double percent)
+static int __percent_color_snprintf(char *buf, size_t size, double percent)
{
int ret = 0;
const char *markup;
@@ -18,7 +17,7 @@ static int perf_gtk__percent_color_snprintf(char *buf, size_t size,
if (markup)
ret += scnprintf(buf, size, markup);
- ret += scnprintf(buf + ret, size - ret, "%6.2f%%", percent);
+ ret += scnprintf(buf + ret, size - ret, " %6.2f%%", percent);
if (markup)
ret += scnprintf(buf + ret, size - ret, "</span>");
@@ -37,7 +36,55 @@ static int __hpp__color_fmt(struct perf_hpp *hpp, struct hist_entry *he,
if (hists->stats.total_period)
percent = 100.0 * get_field(he) / hists->stats.total_period;
- ret = perf_gtk__percent_color_snprintf(hpp->buf, hpp->size, percent);
+ ret = __percent_color_snprintf(hpp->buf, hpp->size, percent);
+
+ if (symbol_conf.event_group) {
+ int prev_idx, idx_delta;
+ struct perf_evsel *evsel = hists_to_evsel(hists);
+ struct hist_entry *pair;
+ int nr_members = evsel->nr_members;
+
+ if (nr_members <= 1)
+ return ret;
+
+ prev_idx = perf_evsel__group_idx(evsel);
+
+ list_for_each_entry(pair, &he->pairs.head, pairs.node) {
+ u64 period = get_field(pair);
+ u64 total = pair->hists->stats.total_period;
+
+ evsel = hists_to_evsel(pair->hists);
+ idx_delta = perf_evsel__group_idx(evsel) - prev_idx - 1;
+
+ while (idx_delta--) {
+ /*
+ * zero-fill group members in the middle which
+ * have no sample
+ */
+ ret += __percent_color_snprintf(hpp->buf + ret,
+ hpp->size - ret,
+ 0.0);
+ }
+
+ percent = 100.0 * period / total;
+ ret += __percent_color_snprintf(hpp->buf + ret,
+ hpp->size - ret,
+ percent);
+
+ prev_idx = perf_evsel__group_idx(evsel);
+ }
+
+ idx_delta = nr_members - prev_idx - 1;
+
+ while (idx_delta--) {
+ /*
+ * zero-fill group members at last which have no sample
+ */
+ ret += __percent_color_snprintf(hpp->buf + ret,
+ hpp->size - ret,
+ 0.0);
+ }
+ }
return ret;
}
@@ -96,6 +143,7 @@ static void perf_gtk__show_hists(GtkWidget *window, struct hists *hists)
struct perf_hpp hpp = {
.buf = s,
.size = sizeof(s),
+ .ptr = hists_to_evsel(hists),
};
nr_cols = 0;
next prev parent reply other threads:[~2013-02-01 10:51 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-22 9:09 [PATCH 00/19] perf report: Add support for event group view (v9) Namhyung Kim
2013-01-22 9:09 ` [PATCH 01/19] perf tools: Keep group information Namhyung Kim
2013-02-01 10:38 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 02/19] perf tests: Add group test conditions Namhyung Kim
2013-02-01 10:39 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 03/19] perf header: Add HEADER_GROUP_DESC feature Namhyung Kim
2013-02-01 10:40 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 04/19] perf report: Make another loop for linking group hists Namhyung Kim
2013-02-01 10:41 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 05/19] perf hists: Resort hist entries using group members for output Namhyung Kim
2013-02-01 10:42 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 06/19] perf ui/hist: Consolidate hpp helpers Namhyung Kim
2013-02-01 10:43 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 07/19] perf hist browser: Convert hpp helpers to a function Namhyung Kim
2013-02-01 10:45 ` [tip:perf/core] perf hists " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 08/19] perf gtk/browser: " Namhyung Kim
2013-02-01 10:46 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 09/19] perf ui/hist: Add support for event group view Namhyung Kim
2013-02-01 10:47 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 10/19] perf hist browser: Move coloring logic to hpp functions Namhyung Kim
2013-02-01 10:48 ` [tip:perf/core] perf hists " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 11/19] perf hist browser: Add suppport for event group view Namhyung Kim
2013-02-01 10:49 ` [tip:perf/core] perf hists " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 12/19] perf gtk/browser: Add support " Namhyung Kim
2013-02-01 10:51 ` tip-bot for Namhyung Kim [this message]
2013-01-22 9:09 ` [PATCH 13/19] perf tools: Move ltrim() to util/string.c Namhyung Kim
2013-01-25 11:58 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 14/19] perf gtk/browser: Trim column header string when event group enabled Namhyung Kim
2013-02-01 10:52 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 15/19] perf report: Bypass non-leader events when event group is enabled Namhyung Kim
2013-02-01 10:53 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 16/19] perf report: Show group description " Namhyung Kim
2013-02-01 10:54 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 17/19] perf report: Add --group option Namhyung Kim
2013-02-01 10:55 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 18/19] perf report: Add report.group config option Namhyung Kim
2013-02-01 10:56 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-01-22 9:09 ` [PATCH 19/19] perf evlist: Add --group option Namhyung Kim
2013-02-01 10:58 ` [tip:perf/core] " 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-cb16008bcc6ea53617ca06c9eb4ab0ecafe04585@git.kernel.org \
--to=namhyung.kim@lge.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@redhat.com \
--cc=eranina@google.com \
--cc=hpa@zytor.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=paulus@samba.org \
--cc=penberg@kernel.org \
--cc=tglx@linutronix.de \
/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.