From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753240AbcKNObD (ORCPT ); Mon, 14 Nov 2016 09:31:03 -0500 Received: from mail.kernel.org ([198.145.29.136]:55160 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751750AbcKNObC (ORCPT ); Mon, 14 Nov 2016 09:31:02 -0500 Date: Mon, 14 Nov 2016 11:30:56 -0300 From: Arnaldo Carvalho de Melo To: Andi Kleen Cc: Jin Yao , jolsa@kernel.org, Linux-kernel@vger.kernel.org, ak@linux.intel.com, kan.liang@intel.com Subject: Re: [PATCH v4 0/6] perf report: Show branch flags/cycles in --branch-history callgraph view Message-ID: <20161114143056.GD27058@kernel.org> References: <1477876794-30749-1-git-send-email-yao.jin@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1477876794-30749-1-git-send-email-yao.jin@linux.intel.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Mon, Oct 31, 2016 at 09:19:48AM +0800, Jin Yao escreveu: > v4: Update according to Andi's comments. The requirement is not displaying > the number of removed loops. It needs to display the average number of > iterations. It computes out the number of iterations by counting > the removed loops. > > v3: 1. Display the count for tsx abort, remove the abort percentage. > > 2. Since the branch history code has a loop detection that removes > small loops in util/machine.c:remove_loops(). It would be nice to > note how many loops were removed. So it adds the note on some > callchain entries. > > v2: Just a rebase to Arnaldo's perf/core branch, no functional changes. Andi, are you ok with this now? Can I have your Acked-by or Tested-by? Thanks, - Arnaldo > Initial post > > perf record -g -b ... > perf report --branch-history > > Currently it only shows the branches from the LBR in the callgraph view. > It would be useful to annotate branch predictions and TSX aborts and > also timed LBR cycles also in the callgraph view. > > This would allow a quick overview where branch predictions are and how > costly basic blocks are. > > For example: > > # Overhead Source:Line Symbol Shared Object Predicted Abort Cycles > # ........ ........................... ........................... ................. ......... ..... ...... > # > 38.25% div.c:45 [.] main div 97.6% 0 3 > | > ---main div.c:42 (cycles:2) > compute_flag div.c:28 (cycles:2) > compute_flag div.c:27 (cycles:1) > rand rand.c:28 (cycles:1) > rand rand.c:28 (cycles:1) > __random random.c:298 (cycles:1) > __random random.c:297 (cycles:1) > __random random.c:295 (cycles:1) > __random random.c:295 (cycles:1) > __random random.c:295 (cycles:1) > __random random.c:295 (cycles:9) > | > |--36.73%--__random_r random_r.c:392 (cycles:9) > | __random_r random_r.c:357 (cycles:1) > | __random random.c:293 (cycles:1) > | __random random.c:293 (cycles:1) > | __random random.c:291 (cycles:1) > | __random random.c:291 (cycles:1) > | __random random.c:291 (cycles:1) > | __random random.c:288 (cycles:1) > | rand rand.c:27 (cycles:1) > | rand rand.c:26 (cycles:1) > | rand@plt +4194304 (cycles:1) > | rand@plt +4194304 (cycles:1) > | compute_flag div.c:25 (cycles:1) > | compute_flag div.c:22 (cycles:1) > | main div.c:40 (cycles:1) > | main div.c:40 (cycles:16) > | main div.c:39 (cycles:16) > | | > | |--29.93%--main div.c:39 (predicted:50.6%, cycles:1, iterations:18) > | | main div.c:44 (predicted:50.6%, cycles:1) > | | | > | | --22.69%--main div.c:42 (cycles:2, iterations:17) > | | compute_flag div.c:28 (cycles:2) > | | | > | | --10.52%--compute_flag div.c:27 (cycles:1) > | | rand rand.c:28 (cycles:1) > > Jin Yao (6): > perf report: Add branch flag to callchain cursor node > perf report: Create a symbol_conf flag for showing branch flag > counting > perf report: Caculate and return the branch flag counting > perf report: Show branch info in callchain entry for stdio mode > perf report: Show branch info in callchain entry for browser mode > perf report: Display columns Predicted/Abort/Cycles in > --branch-history > > tools/perf/Documentation/perf-report.txt | 9 ++ > tools/perf/builtin-report.c | 9 +- > tools/perf/ui/browsers/hists.c | 20 ++- > tools/perf/ui/stdio/hist.c | 35 +++++- > tools/perf/util/callchain.c | 203 ++++++++++++++++++++++++++++++- > tools/perf/util/callchain.h | 22 +++- > tools/perf/util/hist.c | 3 + > tools/perf/util/hist.h | 3 + > tools/perf/util/machine.c | 82 ++++++++++--- > tools/perf/util/sort.c | 113 ++++++++++++++++- > tools/perf/util/sort.h | 3 + > tools/perf/util/symbol.h | 1 + > 12 files changed, 476 insertions(+), 27 deletions(-) > > -- > 2.7.4