[PATCH v14 04/23] perf config: Document variables for 'annotate' section in man page
From: Taeung Song
Date: Mon Jan 11 2016 - 09:36:52 EST
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@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Signed-off-by: Taeung Song <treeze.taeung@xxxxxxxxx>
---
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