From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753754AbaAVX3M (ORCPT ); Wed, 22 Jan 2014 18:29:12 -0500 Received: from lgeamrelo01.lge.com ([156.147.1.125]:52673 "EHLO LGEAMRELO01.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753631AbaAVX3K (ORCPT ); Wed, 22 Jan 2014 18:29:10 -0500 X-AuditID: 9c93017d-b7b51ae000000e33-37-52e054385455 From: Namhyung Kim To: Arnaldo Carvalho de Melo Cc: Peter Zijlstra , Ingo Molnar , Paul Mackerras , Namhyung Kim , LKML , Jiri Olsa , David Ahern , Andi Kleen Subject: [PATCH 2/5] perf ui/tui: Add support for showing relative percentage Date: Thu, 23 Jan 2014 08:28:50 +0900 Message-Id: <1390433333-15350-3-git-send-email-namhyung@kernel.org> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1390433333-15350-1-git-send-email-namhyung@kernel.org> References: <1390433333-15350-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 When filtering by thread, dso or symbol on TUI it also update total period so that the output shows different result than no filter - the percentage changed to relative to filtered entries only. Sometimes (always?) this is not desired since users might expect same results with filter. So change this behavior depends on symbol_conf.filter_relative value. Signed-off-by: Namhyung Kim --- tools/perf/util/hist.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c index 73b999448932..61131ce9234b 100644 --- a/tools/perf/util/hist.c +++ b/tools/perf/util/hist.c @@ -696,10 +696,11 @@ static void hists__remove_entry_filter(struct hists *hists, struct hist_entry *h return; ++hists->nr_entries; + if (symbol_conf.filter_relative) + hists->stats.total_period += h->stat.period; if (h->ms.unfolded) hists->nr_entries += h->nr_rows; h->row_offset = 0; - hists->stats.total_period += h->stat.period; hists->stats.nr_events[PERF_RECORD_SAMPLE] += h->stat.nr_events; hists__calc_col_len(hists, h); @@ -722,7 +723,9 @@ void hists__filter_by_dso(struct hists *hists) { struct rb_node *nd; - hists->nr_entries = hists->stats.total_period = 0; + hists->nr_entries = 0; + if (symbol_conf.filter_relative) + hists->stats.total_period = 0; hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0; hists__reset_col_len(hists); @@ -755,7 +758,9 @@ void hists__filter_by_thread(struct hists *hists) { struct rb_node *nd; - hists->nr_entries = hists->stats.total_period = 0; + hists->nr_entries = 0; + if (symbol_conf.filter_relative) + hists->stats.total_period = 0; hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0; hists__reset_col_len(hists); @@ -786,7 +791,9 @@ void hists__filter_by_symbol(struct hists *hists) { struct rb_node *nd; - hists->nr_entries = hists->stats.total_period = 0; + hists->nr_entries = 0; + if (symbol_conf.filter_relative) + hists->stats.total_period = 0; hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0; hists__reset_col_len(hists); -- 1.7.11.7