Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755108AbbKRAYj (ORCPT ); Tue, 17 Nov 2015 19:24:39 -0500 Received: from LGEAMRELO13.lge.com ([156.147.23.53]:57023 "EHLO lgeamrelo13.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752859AbbKRAYi convert rfc822-to-8bit (ORCPT ); Tue, 17 Nov 2015 19:24:38 -0500 X-Original-SENDERIP: 156.147.1.151 X-Original-MAILFROM: namhyung@kernel.org X-Original-SENDERIP: 165.244.98.203 X-Original-MAILFROM: namhyung@kernel.org X-Original-SENDERIP: 10.177.227.17 X-Original-MAILFROM: namhyung@kernel.org Date: Wed, 18 Nov 2015 09:24:29 +0900 From: Namhyung Kim To: Taeung Song CC: Arnaldo Carvalho de Melo , linux-kernel@vger.kernel.org, Ingo Molnar , Jiri Olsa Subject: Re: [PATCH v11 06/24] perf config: Document variables for 'annotate' section in man page Message-ID: <20151118002429.GE7062@sejong> References: <1447768424-17327-1-git-send-email-treeze.taeung@gmail.com> <1447768424-17327-6-git-send-email-treeze.taeung@gmail.com> MIME-Version: 1.0 In-Reply-To: <1447768424-17327-6-git-send-email-treeze.taeung@gmail.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-MIMETrack: Itemize by SMTP Server on LGEKRMHUB05/LGE/LG Group(Release 8.5.3FP6|November 21, 2013) at 2015/11/18 09:24:34, Serialize by Router on LGEKRMHUB05/LGE/LG Group(Release 8.5.3FP6|November 21, 2013) at 2015/11/18 09:24:34 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4227 Lines: 137 On Tue, Nov 17, 2015 at 10:53:26PM +0900, Taeung Song wrote: > Explain 'annotate' section and its variables. > > 'hide_src_code', 'use_offset', 'jump_arrows' and 'show_nr_jumps'. The 'show_linenr' and 'show_total_period' are missing. Also you'd better to mention the default values for each option. And some nitpicks below.. > > Cc: Namhyung Kim > Cc: Jiri Olsa > Signed-off-by: Taeung Song > --- > tools/perf/Documentation/perf-config.txt | 76 ++++++++++++++++++++++++++++++++ > 1 file changed, 76 insertions(+) > > diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt > index b4ee205..bfbeb34 100644 > --- a/tools/perf/Documentation/perf-config.txt > +++ b/tools/perf/Documentation/perf-config.txt > @@ -166,6 +166,82 @@ buildid.*:: > cache location, or to disable it altogether. If you want to disable it, > set buildid.dir to /dev/null. The default is $HOME/.debug > > +annotate.*:: > + There're options which work with a 'annotate' sub-command. AFAIK these options work only for TUI. > + These are in control of addresses, jump function, source code > + in lines of assembly code from a specific program. > + > + annotate.hide_src_code:: > + If a program which is analyzed has source code, > + this option lets 'annotate' print a list of assembly code with the source code. > + For example, let's see a part of a program. There're four lines. > + If this option is 'true', they can be printed > + without source code from a program as below. > + > + │ push %rbp > + │ mov %rsp,%rbp > + │ sub $0x10,%rsp > + │ mov (%rdi),%rdx > + > + But if this option is 'false', source code of the part > + can be also printed as below. > + > + │ struct rb_node *rb_next(const struct rb_node *node) > + │ { > + │ push %rbp > + │ mov %rsp,%rbp > + │ sub $0x10,%rsp > + │ struct rb_node *parent; > + │ > + │ if (RB_EMPTY_NODE(node)) > + │ mov (%rdi),%rdx > + │ return n; > + > + annotate.use_offset:: > + Basing on a first address of a loaded function, offset can be used. > + Instead of using original addresses of assembly code, > + addresses subtracted from a base address can be printed. > + Let's illustrate a example. s/a example/an example/ > + If a base address is 0XFFFFFFFF81624d50 as below, > + > + ffffffff81624d50 > + > + a address on assembly code has a specific absolute address as below s/a address/an address/ > + > + ffffffff816250b8:│ mov 0x8(%r14),%rdi > + > + but if use_offset is 'true', a address subtracted from a base address is printed. Ditto. > + The default is true. This option is only applied to TUI. > + > + 368:│ mov 0x8(%r14),%rdi > + > + annotate.jump_arrows:: > + There can be jump instruction among assembly code. > + Depending on a boolean value of jump_arrows, > + arrows can be printed or not which represent > + where do the instruction jump into as below. > + > + │ ┌──jmp 1333 > + │ │ xchg %ax,%ax > + │1330:│ mov %r15,%r10 > + │1333:└─→cmp %r15,%r14 > + > + If jump_arrow is 'false', the arrows isn't printed as below. > + > + │ ↓ jmp 1333 > + │ xchg %ax,%ax > + │1330: mov %r15,%r10 > + │1333: cmp %r15,%r14 > + > + annotate.show_nr_jumps:: > + Let's see a part of assembly code. > + > + │1382: movb $0x1,-0x270(%rbp) > + > + If use this, the number of branches branching to that address can be printed as below. I think it'd be better to avoid using similar words in a row. How about "number of branches jumping to that address" instead? Thanks, Namhyung > + > + │1 1382: movb $0x1,-0x270(%rbp) > + > SEE ALSO > -------- > linkperf:perf[1] > -- > 1.9.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/