From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752395AbdGEDk5 (ORCPT ); Tue, 4 Jul 2017 23:40:57 -0400 Received: from mga05.intel.com ([192.55.52.43]:52431 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752285AbdGEDk4 (ORCPT ); Tue, 4 Jul 2017 23:40:56 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,310,1496127600"; d="scan'208";a="1147810643" From: changbin.du@intel.com To: jolsa@kernel.org Cc: peterz@infradead.org, mingo@redhat.com, alexander.shishkin@linux.intel.com, linux-kernel@vger.kernel.org, changbin.du@intel.com Subject: [PATCH v3] perf sort: only insert overhead && overhead_children when no overhead* field given Date: Wed, 5 Jul 2017 11:35:52 +0800 Message-Id: <1499225752-2959-1-git-send-email-changbin.du@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1496307801-24134-1-git-send-email-changbin.du@intel.com> References: <1496307801-24134-1-git-send-email-changbin.du@intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Changbin Du If we always insert 'overhead' and 'overhead_children' as sort keys, this make it impossible to sort as overhead (which displayed as Self) first.Ths will be a problem if the data is collected with call-graph enabled. Then we never can sort the result as self-overhead on this data. And sometimes the data is hard to collect. > perf record -ag > perf report -s overhead,sym Samples: 7K of event 'cycles', Event count (approx.): 865138253 Children Self Symbol + 26.41% 0.00% [k] verify_cpu + 26.37% 0.04% [k] cpu_startup_entry + 25.93% 0.27% [k] do_idle + 19.88% 0.00% [k] start_secondary .... I intend to sort as 'Self', but actually it sort as 'Children'. This patch fix this by only insert overhead && overhead_children when no overhead* field given. Signed-off-by: Changbin Du --- v3: Add comment in code from Jiri v2: Add the example in commit message. --- tools/perf/util/sort.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c index 8b327c9..9e087fb 100644 --- a/tools/perf/util/sort.c +++ b/tools/perf/util/sort.c @@ -2635,6 +2635,13 @@ static char *setup_overhead(char *keys) if (sort__mode == SORT_MODE__DIFF) return keys; + /** + * User already stated overhead within -s option, + * do not mangle with that. + */ + if (strstr(keys, "overhead")) + return keys; + keys = prefix_if_not_in("overhead", keys); if (symbol_conf.cumulate_callchain) -- 2.7.4