Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1304434

[PATCH v13 04/23] perf config: Document variables for 'annotate' section in man page

Path csiph.com!aioe.org!bofh.it!news.nic.it!robomod
From Taeung Song <treeze.taeung@gmail.com>
Newsgroups linux.kernel
Subject [PATCH v13 04/23] perf config: Document variables for 'annotate' section in man page
Date Fri, 08 Jan 2016 12:50:03 +0100
Message-ID <qODIn-67Q-47@gated-at.bofh.it> (permalink)
References <qODIl-67Q-3@gated-at.bofh.it>
X-Original-To Arnaldo Carvalho de Melo <acme@kernel.org>
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=tHNpsq2V+dl1Ipukg0+TxQBRsaRdLq+78n3v+eN4vkU=; b=Heoi9KgRCaM28czwUAStp09CuH6yiOl3HvrBj3prNZ+Ena8ZaTHQWzlIDbKeQCmKdd mGAwDe/cwb5bcd0ue80NHfi3XXSsI1WvuhUrAM26s15vH0KF9f25e1ZaE8AnRR3p+G9z A/cqDRiGEtRnAHi2x8P4USVhQk8C0t0tNeafS3MT8Ddmgi1vzrgQt/kKMSZageAy3rNH 5pLMEBszJnv08hAN2iVTuMXTWudqGj6doUofJvnuMr1EJzCpCDZtdxI87dWNWephhjcl mGNc6cGxyIT+brqWMEavQ0Yu+uFCLyMtu2sJYwFCrLCrQlsT1JvKL/kWsOJMksPRUMd2 fwug==
X-Received by 10.66.254.99 with SMTP id ah3mr21557014pad.71.1452253208148; Fri, 08 Jan 2016 03:40:08 -0800 (PST)
X-Mailer git-send-email 2.5.0
MIME-Version 1.0
Content-Type text/plain; charset=UTF-8
Content-Transfer-Encoding 8bit
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 135
Organization linux.* mail to news gateway
X-Original-Cc linux-kernel@vger.kernel.org, Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>, Ingo Molnar <mingo@kernel.org>, Taeung Song <treeze.taeung@gmail.com>
X-Original-Date Fri, 8 Jan 2016 20:39:34 +0900
X-Original-Message-ID <1452253193-30502-5-git-send-email-treeze.taeung@gmail.com>
X-Original-References <1452253193-30502-1-git-send-email-treeze.taeung@gmail.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1304434

Show key headers only | View raw


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
 
+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

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v13 00/22] perf config: Add functionalities into perf-config and document config info Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 16/23] perf config: Collect configs to handle config variables Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 18/23] perf config: Add a option 'skel' to perf-config Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 20/23] perf config: Add 'get' functionality Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 01/23] perf config: Document variables for 'colors' section in man page Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 11/23] perf config: Document 'man.viewer' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 17/23] perf config: Add 'list-all' option to perf-config Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 04/23] perf config: Document variables for 'annotate' section in man page Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 06/23] perf config: Document 'hist.percentage' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 19/23] perf config: Add --verbose option for showing config description Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 13/23] perf config: Document 'kmem.default' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 23/23] perf config: Add a option 'remove' to perf-config Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 05/23] perf config: Document variables for 'help' section in man page Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 10/23] perf config: Document 'top.children' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 21/23] perf config: Add 'set' feature Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 03/23] perf config: Document 'buildid.dir' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100
  [PATCH v13 07/23] perf config: Document 'ui.show-headers' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2016-01-08 12:50 +0100

csiph-web