From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754344AbcKNQfS (ORCPT ); Mon, 14 Nov 2016 11:35:18 -0500 Received: from mail.kernel.org ([198.145.29.136]:53620 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753998AbcKNQfP (ORCPT ); Mon, 14 Nov 2016 11:35:15 -0500 Date: Mon, 14 Nov 2016 13:34:48 -0300 From: Arnaldo Carvalho de Melo To: Jin Yao Cc: jolsa@kernel.org, Linux-kernel@vger.kernel.org, ak@linux.intel.com, kan.liang@intel.com Subject: Re: [PATCH v4 4/6] perf report: Show branch info in callchain entry for stdio mode Message-ID: <20161114163448.GE26543@kernel.org> References: <1477876794-30749-1-git-send-email-yao.jin@linux.intel.com> <1477876794-30749-5-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-5-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:52AM +0800, Jin Yao escreveu: > If the branch is 100% predicated then the "predicated" is hide. "predicated"? Changing this to "predicted". Also changing "is hide" to "is hidden". - Arnaldo > Similarly, if there is no branch tsx abort, the "abort" is hide. > There is only cycles shown (cycle is supported on skylake platform, > older platform would be 0). > > If no iterations, the "iterations" is hide. > > For example: > > |--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) > | 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:6) > > Signed-off-by: Jin Yao > --- > tools/perf/ui/stdio/hist.c | 35 +++++++++++++++++++++++++++++++---- > 1 file changed, 31 insertions(+), 4 deletions(-) > > diff --git a/tools/perf/ui/stdio/hist.c b/tools/perf/ui/stdio/hist.c > index 89d8441..668f4ae 100644 > --- a/tools/perf/ui/stdio/hist.c > +++ b/tools/perf/ui/stdio/hist.c > @@ -41,7 +41,9 @@ static size_t ipchain__fprintf_graph(FILE *fp, struct callchain_node *node, > { > int i; > size_t ret = 0; > - char bf[1024]; > + char bf[1024], *alloc_str = NULL; > + char buf[64]; > + const char *str; > > ret += callchain__fprintf_left_margin(fp, left_margin); > for (i = 0; i < depth; i++) { > @@ -56,8 +58,26 @@ static size_t ipchain__fprintf_graph(FILE *fp, struct callchain_node *node, > } else > ret += fprintf(fp, "%s", " "); > } > - fputs(callchain_list__sym_name(chain, bf, sizeof(bf), false), fp); > + > + str = callchain_list__sym_name(chain, bf, sizeof(bf), false); > + > + if (symbol_conf.show_branchflag_count) { > + if (!period) > + callchain_list_counts__printf_value(node, chain, NULL, > + buf, sizeof(buf)); > + else > + callchain_list_counts__printf_value(NULL, chain, NULL, > + buf, sizeof(buf)); > + > + if (asprintf(&alloc_str, "%s%s", str, buf) < 0) > + str = "Not enough memory!"; > + else > + str = alloc_str; > + } > + > + fputs(str, fp); q> fputc('\n', fp); > + free(alloc_str); > return ret; > } > > @@ -219,8 +239,15 @@ static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root, > } else > ret += callchain__fprintf_left_margin(fp, left_margin); > > - ret += fprintf(fp, "%s\n", callchain_list__sym_name(chain, bf, sizeof(bf), > - false)); > + ret += fprintf(fp, "%s", > + callchain_list__sym_name(chain, bf, > + sizeof(bf), > + false)); > + > + if (symbol_conf.show_branchflag_count) > + ret += callchain_list_counts__printf_value( > + NULL, chain, fp, NULL, 0); > + ret += fprintf(fp, "\n"); > > if (++entries_printed == callchain_param.print_limit) > break; > -- > 2.7.4