From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753100Ab2GXJJC (ORCPT ); Tue, 24 Jul 2012 05:09:02 -0400 Received: from LGEMRELSE6Q.lge.com ([156.147.1.121]:53057 "EHLO LGEMRELSE6Q.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753019Ab2GXJHC (ORCPT ); Tue, 24 Jul 2012 05:07:02 -0400 X-AuditID: 9c930179-b7bdcae000003d91-07-500e65b2f35d From: Namhyung Kim To: Arnaldo Carvalho de Melo Cc: Peter Zijlstra , Paul Mackerras , Ingo Molnar , LKML , Stephane Eranian , Jiri Olsa , Ulrich Drepper , Andi Kleen , Namhyung Kim , Pekka Enberg Subject: [PATCH 09/12] perf ui/gtk: Add support to group viewing Date: Tue, 24 Jul 2012 18:01:30 +0900 Message-Id: <1343120493-23059-10-git-send-email-namhyung@kernel.org> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1343120493-23059-1-git-send-email-namhyung@kernel.org> References: <1343120493-23059-1-git-send-email-namhyung@kernel.org> X-Brightmail-Tracker: AAAAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Namhyung Kim Show group members' overhead also when showing the leader's. Cc: Stephane Eranian Cc: Jiri Olsa Cc: Pekka Enberg Signed-off-by: Namhyung Kim --- tools/perf/ui/gtk/browser.c | 57 +++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/tools/perf/ui/gtk/browser.c b/tools/perf/ui/gtk/browser.c index 91e11f7bffbf..e39c83cd5ac5 100644 --- a/tools/perf/ui/gtk/browser.c +++ b/tools/perf/ui/gtk/browser.c @@ -44,25 +44,56 @@ static const char *perf_gtk__get_percent_color(double percent) return NULL; } +static int perf_gtk__percent_color_snprintf(char *s, size_t size, + u64 period, u64 total_period) +{ + double percent = 100.0 * period / total_period; + const char *markup; + int ret = 0; + + markup = perf_gtk__get_percent_color(percent); + if (markup) + ret += scnprintf(s, size, "%s", markup); + + ret += scnprintf(s + ret, size - ret, "%5.2f%%", percent); + + if (markup) + ret += scnprintf(s + ret, size - ret, ""); + + return ret; +} + +static int perf_gtk__hpp_color_overhead(struct hist_print_context *ctx, + struct hist_entry *he) +{ + int ret; + + ret = perf_gtk__percent_color_snprintf(ctx->s, ctx->size, + he->stat.period, ctx->total_period); + + if (symbol_conf.report_group) { + int i; + struct perf_evsel *evsel = hists_2_evsel(ctx->hists); + + for (i = 0; i < evsel->nr_children; i++) { + ret += scnprintf(ctx->s + ret, ctx->size - ret, " "); + ret += perf_gtk__percent_color_snprintf(ctx->s + ret, + ctx->size - ret, + he->group_stats[i].period, + ctx->hists->group_stats[i].total_period); + } + } + return ret; +} + #define HPP_COLOR_FN(_name, _field) \ static int perf_gtk__hpp_color_ ## _name(struct hist_print_context *ctx, \ struct hist_entry *he) \ { \ - double percent = 100.0 * he->stat._field / ctx->total_period; \ - const char *markup; \ - int ret = 0; \ - \ - markup = perf_gtk__get_percent_color(percent); \ - if (markup) \ - ret += scnprintf(ctx->s, ctx->size, "%s", markup); \ - ret += scnprintf(ctx->s + ret, ctx->size - ret, "%5.2f%%", percent); \ - if (markup) \ - ret += scnprintf(ctx->s + ret, ctx->size - ret, ""); \ - \ - return ret; \ + return perf_gtk__percent_color_snprintf(ctx->s, ctx->size, \ + he->stat._field, ctx->total_period); \ } -HPP_COLOR_FN(overhead, period) HPP_COLOR_FN(overhead_sys, period_sys) HPP_COLOR_FN(overhead_us, period_us) HPP_COLOR_FN(overhead_guest_sys, period_guest_sys) -- 1.7.10.4