linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Taeung Song <treeze.taeung@gmail.com>
Cc: linux-kernel@vger.kernel.org, Jiri Olsa <jolsa@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Ingo Molnar <mingo@kernel.org>
Subject: Re: [PATCH v13 04/23] perf config: Document variables for 'annotate' section in man page
Date: Thu, 21 Jan 2016 11:45:22 -0300	[thread overview]
Message-ID: <20160121144521.GA4034@kernel.org> (raw)
In-Reply-To: <1452253193-30502-5-git-send-email-treeze.taeung@gmail.com>

Em Fri, Jan 08, 2016 at 08:39:34PM +0900, Taeung Song escreveu:
> Explain 'annotate' section and its variables.
> 
> 'hide_src_code', 'use_offset', 'jump_arrows',
> 'show_linenr', 'show_nr_jump' and 'show_total_period'.
> 
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Jiri Olsa <jolsa@kernel.org>
> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
> ---
>  tools/perf/Documentation/perf-config.txt | 110 +++++++++++++++++++++++++++++++
>  1 file changed, 110 insertions(+)
> 
> diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt
> index 8835215..85b811f 100644
> --- a/tools/perf/Documentation/perf-config.txt
> +++ b/tools/perf/Documentation/perf-config.txt
> @@ -168,6 +168,116 @@ 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

I suggest you document here also the hotkeys that are available in the
TUI to toggle those knobs, i.e. please go to the annotate browser and
press 'h', you'll get the list of hotkeys, this way, for someone reading
the man page the information will know that this can be done
interactively, not just by changing a config file.

Also it would be interesting to change the annotate/top/report man page
to point to this documentation.

But this can be done on top, I'm doing quick text flowing/grammar fixes
and applying as much as I can from this patchkit, thanks for continuing
work on it.

- Arnaldo
  
> +annotate.*::
> +	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. Default is 'false'.
> +
> +		│      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 an example.
> +		If a base address is 0XFFFFFFFF81624d50 as below,
> +
> +		ffffffff81624d50 <load0>
> +
> +		an address on assembly code has a specific absolute address as below
> +
> +		ffffffff816250b8:│  mov    0x8(%r14),%rdi
> +
> +		but if use_offset is 'true', an address subtracted from a base address is printed.
> +		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.
> +		Default is 'false'.
> +
> +		│      ↓ jmp    1333
> +		│        xchg   %ax,%ax
> +		│1330:   mov    %r15,%r10
> +		│1333:   cmp    %r15,%r14
> +
> +        annotate.show_linenr::
> +		When showing source code if this option is 'true',
> +		line numbers are printed as below.
> +
> +		│1628         if (type & PERF_SAMPLE_IDENTIFIER) {
> +		│     ↓ jne    508
> +		│1628                 data->id = *array;
> +		│1629                 array++;
> +		│1630         }
> +
> +		However if this option is 'false', they aren't printed as below.
> +		Default is 'false'.
> +
> +		│             if (type & PERF_SAMPLE_IDENTIFIER) {
> +		│     ↓ jne    508
> +		│                     data->id = *array;
> +		│                     array++;
> +		│             }
> +
> +        annotate.show_nr_jumps::
> +		Let's see a part of assembly code.
> +
> +		│1382:   movb   $0x1,-0x270(%rbp)
> +
> +		If use this, the number of branches jumping to that address can be printed as below.
> +		Default is 'false'.
> +
> +		│1 1382:   movb   $0x1,-0x270(%rbp)
> +
> +        annotate.show_total_period::
> +		To compare two records on an instruction base, with this option
> +		provided, display total number of samples that belong to a line
> +		in assembly code. If this option is 'true', total periods are printed
> +		instead of percent values as below.
> +
> +		  302 │      mov    %eax,%eax
> +
> +		But if this option is 'false', percent values for overhead are printed i.e.
> +		Default is 'false'.
> +
> +		99.93 │      mov    %eax,%eax
> +
>  SEE ALSO
>  --------
>  linkperf:perf[1]
> -- 
> 2.5.0

  reply	other threads:[~2016-01-21 14:45 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-08 11:39 [PATCH v13 00/22] perf config: Add functionalities into perf-config and document config info Taeung Song
2016-01-08 11:39 ` [PATCH v13 01/23] perf config: Document variables for 'colors' section in man page Taeung Song
2016-02-03 10:09   ` [tip:perf/core] " tip-bot for Taeung Song
2016-01-08 11:39 ` [PATCH v13 02/23] perf config: Document variables for 'tui' and 'gtk' sections " Taeung Song
2016-02-03 10:09   ` [tip:perf/core] perf config: Document variables for 'tui' and ' gtk' " tip-bot for Taeung Song
2016-01-08 11:39 ` [PATCH v13 03/23] perf config: Document 'buildid.dir' variable " Taeung Song
2016-02-03 10:09   ` [tip:perf/core] " tip-bot for Taeung Song
2016-01-08 11:39 ` [PATCH v13 04/23] perf config: Document variables for 'annotate' section " Taeung Song
2016-01-21 14:45   ` Arnaldo Carvalho de Melo [this message]
2016-01-22  7:11     ` Taeung Song
2016-02-03 10:10   ` [tip:perf/core] " tip-bot for Taeung Song
2016-01-08 11:39 ` [PATCH v13 05/23] perf config: Document variables for 'help' " Taeung Song
2016-01-21 14:46   ` Arnaldo Carvalho de Melo
2016-01-22  8:00     ` Taeung Song
2016-01-08 11:39 ` [PATCH v13 06/23] perf config: Document 'hist.percentage' variable " Taeung Song
2016-01-21 14:54   ` Arnaldo Carvalho de Melo
2016-01-22  8:03     ` Taeung Song
2016-02-03 10:10   ` [tip:perf/core] " tip-bot for Taeung Song
2016-01-08 11:39 ` [PATCH v13 07/23] perf config: Document 'ui.show-headers' " Taeung Song
2016-01-08 11:39 ` [PATCH v13 08/23] perf config: Document variables for 'call-graph' section " Taeung Song
2016-01-08 11:39 ` [PATCH v13 09/23] perf config: Document variables for 'report' " Taeung Song
2016-01-08 11:39 ` [PATCH v13 10/23] perf config: Document 'top.children' variable " Taeung Song
2016-01-08 11:39 ` [PATCH v13 11/23] perf config: Document 'man.viewer' " Taeung Song
2016-01-08 11:39 ` [PATCH v13 12/23] perf config: Document 'pager.<subcommand>' variables " Taeung Song
2016-01-08 11:39 ` [PATCH v13 13/23] perf config: Document 'kmem.default' variable " Taeung Song
2016-01-08 11:39 ` [PATCH v13 14/23] perf config: Document 'record.build-id' " Taeung Song
2016-01-08 11:39 ` [PATCH v13 15/23] perf config: Add '--system' and '--user' options to select which config file is used Taeung Song
2016-01-08 11:39 ` [PATCH v13 16/23] perf config: Collect configs to handle config variables Taeung Song
2016-01-08 11:39 ` [PATCH v13 17/23] perf config: Add 'list-all' option to perf-config Taeung Song
2016-01-08 11:39 ` [PATCH v13 18/23] perf config: Add a option 'skel' " Taeung Song
2016-01-08 11:39 ` [PATCH v13 19/23] perf config: Add --verbose option for showing config description Taeung Song
2016-01-08 11:39 ` [PATCH v13 20/23] perf config: Add 'get' functionality Taeung Song
2016-01-08 11:39 ` [PATCH v13 21/23] perf config: Add 'set' feature Taeung Song
2016-01-08 11:39 ` [PATCH v13 22/23] perf config: normalize a value depending on default type of it Taeung Song
2016-01-08 11:39 ` [PATCH v13 23/23] perf config: Add a option 'remove' to perf-config Taeung Song

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160121144521.GA4034@kernel.org \
    --to=acme@kernel.org \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=treeze.taeung@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).