From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934896AbbIVVcC (ORCPT ); Tue, 22 Sep 2015 17:32:02 -0400 Received: from mga11.intel.com ([192.55.52.93]:25758 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934902AbbIVVaJ (ORCPT ); Tue, 22 Sep 2015 17:30:09 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,574,1437462000"; d="scan'208";a="810764289" From: kan.liang@intel.com To: acme@kernel.org Cc: jolsa@kernel.org, a.p.zijlstra@chello.nl, mingo@redhat.com, namhyung@kernel.org, ak@linux.intel.com, linux-kernel@vger.kernel.org, Kan Liang Subject: [PATCH RFC 10/10] perf,tools: show counter read result in tui browser title Date: Tue, 22 Sep 2015 10:13:43 -0400 Message-Id: <1442931223-51708-11-git-send-email-kan.liang@intel.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1442931223-51708-1-git-send-email-kan.liang@intel.com> References: <1442931223-51708-1-git-send-email-kan.liang@intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kan Liang There is no sampling for counter read event, so only show its value on the browser title in tui mode. Signed-off-by: Kan Liang --- tools/perf/ui/browsers/hists.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c index e1f28f4..1900363 100644 --- a/tools/perf/ui/browsers/hists.c +++ b/tools/perf/ui/browsers/hists.c @@ -1270,12 +1270,22 @@ static int hists__browser_title(struct hists *hists, size_t buflen = sizeof(buf); char ref[30] = " show reference callgraph, "; bool enable_ref = false; + int i, idx = 1; + struct perf_env *env = evsel->evlist->env; + u64 *counter_val = zalloc(evsel->nr_members * sizeof(u64)); if (symbol_conf.filter_relative) { nr_samples = hists->stats.nr_non_filtered_samples; nr_events = hists->stats.total_non_filtered_period; } + if (hists->stats.counter_val != NULL) { + for (i = 0; i < env->nr_cpus_online; i++) { + if ((socket_id < 0) || (env->cpu[i].socket_id == socket_id)) + counter_val[0] += hists->stats.counter_val[i]; + } + } + if (perf_evsel__is_group_event(evsel)) { struct perf_evsel *pos; @@ -1292,6 +1302,13 @@ static int hists__browser_title(struct hists *hists, nr_samples += pos_hists->stats.nr_events[PERF_RECORD_SAMPLE]; nr_events += pos_hists->stats.total_period; } + if (pos_hists->stats.counter_val != NULL) { + for (i = 0; i < env->nr_cpus_online; i++) { + if ((socket_id < 0) || (env->cpu[i].socket_id == socket_id)) + counter_val[idx] += pos_hists->stats.counter_val[i]; + } + } + idx++; } } @@ -1318,6 +1335,26 @@ static int hists__browser_title(struct hists *hists, if (socket_id > -1) printed += scnprintf(bf + printed, size - printed, ", Processor Socket: %d", socket_id); + + if (hists->stats.counter_val != NULL) + printed += scnprintf(bf + printed, size - printed, + ", %s: %" PRIu64, evsel->name, counter_val[0]); + + if (perf_evsel__is_group_event(evsel)) { + struct perf_evsel *pos; + + idx = 1; + for_each_group_member(pos, evsel) { + const struct hists *pos_hists = evsel__hists(pos); + + if (pos_hists->stats.counter_val != NULL) + printed += scnprintf(bf + printed, size - printed, + ", %s: %" PRIu64, pos->name, counter_val[idx]); + idx++; + } + } + free(counter_val); + if (!is_report_browser(hbt)) { struct perf_top *top = hbt->arg; -- 1.8.3.1