162306a36Sopenharmony_ciperf-config(1)
262306a36Sopenharmony_ci==============
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciNAME
562306a36Sopenharmony_ci----
662306a36Sopenharmony_ciperf-config - Get and set variables in a configuration file.
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciSYNOPSIS
962306a36Sopenharmony_ci--------
1062306a36Sopenharmony_ci[verse]
1162306a36Sopenharmony_ci'perf config' [<file-option>] [section.name[=value] ...]
1262306a36Sopenharmony_cior
1362306a36Sopenharmony_ci'perf config' [<file-option>] -l | --list
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciDESCRIPTION
1662306a36Sopenharmony_ci-----------
1762306a36Sopenharmony_ciYou can manage variables in a configuration file with this command.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciOPTIONS
2062306a36Sopenharmony_ci-------
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci-l::
2362306a36Sopenharmony_ci--list::
2462306a36Sopenharmony_ci	Show current config variables, name and value, for all sections.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci--user::
2762306a36Sopenharmony_ci	For writing and reading options: write to user
2862306a36Sopenharmony_ci	'$HOME/.perfconfig' file or read it.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci--system::
3162306a36Sopenharmony_ci	For writing and reading options: write to system-wide
3262306a36Sopenharmony_ci	'$(sysconfdir)/perfconfig' or read it.
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciCONFIGURATION FILE
3562306a36Sopenharmony_ci------------------
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciThe perf configuration file contains many variables to change various
3862306a36Sopenharmony_ciaspects of each of its tools, including output, disk usage, etc.
3962306a36Sopenharmony_ciThe '$HOME/.perfconfig' file is used to store a per-user configuration.
4062306a36Sopenharmony_ciThe file '$(sysconfdir)/perfconfig' can be used to
4162306a36Sopenharmony_cistore a system-wide default configuration.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciOne an disable reading config files by setting the PERF_CONFIG environment
4462306a36Sopenharmony_civariable to /dev/null, or provide an alternate config file by setting that
4562306a36Sopenharmony_civariable.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciWhen reading or writing, the values are read from the system and user
4862306a36Sopenharmony_ciconfiguration files by default, and options '--system' and '--user'
4962306a36Sopenharmony_cican be used to tell the command to read from or write to only that location.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciSyntax
5262306a36Sopenharmony_ci~~~~~~
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciThe file consist of sections. A section starts with its name
5562306a36Sopenharmony_cisurrounded by square brackets and continues till the next section
5662306a36Sopenharmony_cibegins. Each variable must be in a section, and have the form
5762306a36Sopenharmony_ci'name = value', for example:
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci	[section]
6062306a36Sopenharmony_ci		name1 = value1
6162306a36Sopenharmony_ci		name2 = value2
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciSection names are case sensitive and can contain any characters except
6462306a36Sopenharmony_cinewline (double quote `"` and backslash have to be escaped as `\"` and `\\`,
6562306a36Sopenharmony_cirespectively). Section headers can't span multiple lines.
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciExample
6862306a36Sopenharmony_ci~~~~~~~
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciGiven a $HOME/.perfconfig like this:
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci#
7362306a36Sopenharmony_ci# This is the config file, and
7462306a36Sopenharmony_ci# a '#' and ';' character indicates a comment
7562306a36Sopenharmony_ci#
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci	[colors]
7862306a36Sopenharmony_ci		# Color variables
7962306a36Sopenharmony_ci		top = red, default
8062306a36Sopenharmony_ci		medium = green, default
8162306a36Sopenharmony_ci		normal = lightgray, default
8262306a36Sopenharmony_ci		selected = white, lightgray
8362306a36Sopenharmony_ci		jump_arrows = blue, default
8462306a36Sopenharmony_ci		addr = magenta, default
8562306a36Sopenharmony_ci		root = white, blue
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci	[tui]
8862306a36Sopenharmony_ci		# Defaults if linked with libslang
8962306a36Sopenharmony_ci		report = on
9062306a36Sopenharmony_ci		annotate = on
9162306a36Sopenharmony_ci		top = on
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci	[buildid]
9462306a36Sopenharmony_ci		# Default, disable using /dev/null
9562306a36Sopenharmony_ci		dir = ~/.debug
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci	[annotate]
9862306a36Sopenharmony_ci		# Defaults
9962306a36Sopenharmony_ci		hide_src_code = false
10062306a36Sopenharmony_ci		use_offset = true
10162306a36Sopenharmony_ci		jump_arrows = true
10262306a36Sopenharmony_ci		show_nr_jumps = false
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci	[help]
10562306a36Sopenharmony_ci		# Format can be man, info, web or html
10662306a36Sopenharmony_ci		format = man
10762306a36Sopenharmony_ci		autocorrect = 0
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci	[ui]
11062306a36Sopenharmony_ci		show-headers = true
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci	[call-graph]
11362306a36Sopenharmony_ci		# fp (framepointer), dwarf
11462306a36Sopenharmony_ci		record-mode = fp
11562306a36Sopenharmony_ci		print-type = graph
11662306a36Sopenharmony_ci		order = caller
11762306a36Sopenharmony_ci		sort-key = function
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci	[report]
12062306a36Sopenharmony_ci		# Defaults
12162306a36Sopenharmony_ci		sort_order = comm,dso,symbol
12262306a36Sopenharmony_ci		percent-limit = 0
12362306a36Sopenharmony_ci		queue-size = 0
12462306a36Sopenharmony_ci		children = true
12562306a36Sopenharmony_ci		group = true
12662306a36Sopenharmony_ci		skip-empty = true
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ciYou can hide source code of annotate feature setting the config to false with
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci	% perf config annotate.hide_src_code=true
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ciIf you want to add or modify several config items, you can do like
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci	% perf config ui.show-headers=false kmem.default=slab
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ciTo modify the sort order of report functionality in user config file(i.e. `~/.perfconfig`), do
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci	% perf config --user report.sort-order=srcline
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ciTo change colors of selected line to other foreground and background colors
14262306a36Sopenharmony_ciin system config file (i.e. `$(sysconf)/perfconfig`), do
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci	% perf config --system colors.selected=yellow,green
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ciTo query the record mode of call graph, do
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci	% perf config call-graph.record-mode
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ciIf you want to know multiple config key/value pairs, you can do like
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci	% perf config report.queue-size call-graph.order report.children
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ciTo query the config value of sort order of call graph in user config file (i.e. `~/.perfconfig`), do
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci	% perf config --user call-graph.sort-order
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ciTo query the config value of buildid directory in system config file (i.e. `$(sysconf)/perfconfig`), do
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci	% perf config --system buildid.dir
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ciVariables
16362306a36Sopenharmony_ci~~~~~~~~~
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_cicolors.*::
16662306a36Sopenharmony_ci	The variables for customizing the colors used in the output for the
16762306a36Sopenharmony_ci	'report', 'top' and 'annotate' in the TUI. They should specify the
16862306a36Sopenharmony_ci	foreground and background colors, separated by a comma, for example:
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci		medium = green, lightgray
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci	If you want to use the color configured for you terminal, just leave it
17362306a36Sopenharmony_ci	as 'default', for example:
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci		medium = default, lightgray
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ci	Available colors:
17862306a36Sopenharmony_ci	red, yellow, green, cyan, gray, black, blue,
17962306a36Sopenharmony_ci	white, default, magenta, lightgray
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci	colors.top::
18262306a36Sopenharmony_ci		'top' means a overhead percentage which is more than 5%.
18362306a36Sopenharmony_ci		And values of this variable specify percentage colors.
18462306a36Sopenharmony_ci		Basic key values are foreground-color 'red' and
18562306a36Sopenharmony_ci		background-color 'default'.
18662306a36Sopenharmony_ci	colors.medium::
18762306a36Sopenharmony_ci		'medium' means a overhead percentage which has more than 0.5%.
18862306a36Sopenharmony_ci		Default values are 'green' and 'default'.
18962306a36Sopenharmony_ci	colors.normal::
19062306a36Sopenharmony_ci		'normal' means the rest of overhead percentages
19162306a36Sopenharmony_ci		except 'top', 'medium', 'selected'.
19262306a36Sopenharmony_ci		Default values are 'lightgray' and 'default'.
19362306a36Sopenharmony_ci	colors.selected::
19462306a36Sopenharmony_ci		This selects the colors for the current entry in a list of entries
19562306a36Sopenharmony_ci		from sub-commands (top, report, annotate).
19662306a36Sopenharmony_ci		Default values are 'black' and 'lightgray'.
19762306a36Sopenharmony_ci	colors.jump_arrows::
19862306a36Sopenharmony_ci		Colors for jump arrows on assembly code listings
19962306a36Sopenharmony_ci		such as 'jns', 'jmp', 'jane', etc.
20062306a36Sopenharmony_ci		Default values are 'blue', 'default'.
20162306a36Sopenharmony_ci	colors.addr::
20262306a36Sopenharmony_ci		This selects colors for addresses from 'annotate'.
20362306a36Sopenharmony_ci		Default values are 'magenta', 'default'.
20462306a36Sopenharmony_ci	colors.root::
20562306a36Sopenharmony_ci		Colors for headers in the output of a sub-commands (top, report).
20662306a36Sopenharmony_ci		Default values are 'white', 'blue'.
20762306a36Sopenharmony_ci
20862306a36Sopenharmony_cicore.*::
20962306a36Sopenharmony_ci	core.proc-map-timeout::
21062306a36Sopenharmony_ci		Sets a timeout (in milliseconds) for parsing /proc/<pid>/maps files.
21162306a36Sopenharmony_ci		Can be overridden by the --proc-map-timeout option on supported
21262306a36Sopenharmony_ci		subcommands. The default timeout is 500ms.
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_citui.*, gtk.*::
21562306a36Sopenharmony_ci	Subcommands that can be configured here are 'top', 'report' and 'annotate'.
21662306a36Sopenharmony_ci	These values are booleans, for example:
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci	[tui]
21962306a36Sopenharmony_ci		top = true
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci	will make the TUI be the default for the 'top' subcommand. Those will be
22262306a36Sopenharmony_ci	available if the required libs were detected at tool build time.
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_cibuildid.*::
22562306a36Sopenharmony_ci	buildid.dir::
22662306a36Sopenharmony_ci		Each executable and shared library in modern distributions comes with a
22762306a36Sopenharmony_ci		content based identifier that, if available, will be inserted in a
22862306a36Sopenharmony_ci		'perf.data' file header to, at analysis time find what is needed to do
22962306a36Sopenharmony_ci		symbol resolution, code annotation, etc.
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ci		The recording tools also stores a hard link or copy in a per-user
23262306a36Sopenharmony_ci		directory, $HOME/.debug/, of binaries, shared libraries, /proc/kallsyms
23362306a36Sopenharmony_ci		and /proc/kcore files to be used at analysis time.
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_ci		The buildid.dir variable can be used to either change this directory
23662306a36Sopenharmony_ci		cache location, or to disable it altogether. If you want to disable it,
23762306a36Sopenharmony_ci		set buildid.dir to /dev/null. The default is $HOME/.debug
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_cibuildid-cache.*::
24062306a36Sopenharmony_ci	buildid-cache.debuginfod=URLs
24162306a36Sopenharmony_ci		Specify debuginfod URLs to be used when retrieving perf.data binaries,
24262306a36Sopenharmony_ci		it follows the same syntax as the DEBUGINFOD_URLS variable, like:
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ci		  buildid-cache.debuginfod=http://192.168.122.174:8002
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ciannotate.*::
24762306a36Sopenharmony_ci	These are in control of addresses, jump function, source code
24862306a36Sopenharmony_ci	in lines of assembly code from a specific program.
24962306a36Sopenharmony_ci
25062306a36Sopenharmony_ci	annotate.addr2line::
25162306a36Sopenharmony_ci		addr2line binary to use for file names and line numbers.
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_ci	annotate.objdump::
25462306a36Sopenharmony_ci		objdump binary to use for disassembly and annotations.
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_ci	annotate.disassembler_style::
25762306a36Sopenharmony_ci		Use this to change the default disassembler style to some other value
25862306a36Sopenharmony_ci		supported by binutils, such as "intel", see the '-M' option help in the
25962306a36Sopenharmony_ci		'objdump' man page.
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ci	annotate.hide_src_code::
26262306a36Sopenharmony_ci		If a program which is analyzed has source code,
26362306a36Sopenharmony_ci		this option lets 'annotate' print a list of assembly code with the source code.
26462306a36Sopenharmony_ci		For example, let's see a part of a program. There're four lines.
26562306a36Sopenharmony_ci		If this option is 'true', they can be printed
26662306a36Sopenharmony_ci		without source code from a program as below.
26762306a36Sopenharmony_ci
26862306a36Sopenharmony_ci		│        push   %rbp
26962306a36Sopenharmony_ci		│        mov    %rsp,%rbp
27062306a36Sopenharmony_ci		│        sub    $0x10,%rsp
27162306a36Sopenharmony_ci		│        mov    (%rdi),%rdx
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci		But if this option is 'false', source code of the part
27462306a36Sopenharmony_ci		can be also printed as below. Default is 'false'.
27562306a36Sopenharmony_ci
27662306a36Sopenharmony_ci		│      struct rb_node *rb_next(const struct rb_node *node)
27762306a36Sopenharmony_ci		│      {
27862306a36Sopenharmony_ci		│        push   %rbp
27962306a36Sopenharmony_ci		│        mov    %rsp,%rbp
28062306a36Sopenharmony_ci		│        sub    $0x10,%rsp
28162306a36Sopenharmony_ci		│              struct rb_node *parent;
28262306a36Sopenharmony_ci28362306a36Sopenharmony_ci		│              if (RB_EMPTY_NODE(node))
28462306a36Sopenharmony_ci		│        mov    (%rdi),%rdx
28562306a36Sopenharmony_ci		│              return n;
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ci		This option works with tui, stdio2 browsers.
28862306a36Sopenharmony_ci
28962306a36Sopenharmony_ci        annotate.use_offset::
29062306a36Sopenharmony_ci		Basing on a first address of a loaded function, offset can be used.
29162306a36Sopenharmony_ci		Instead of using original addresses of assembly code,
29262306a36Sopenharmony_ci		addresses subtracted from a base address can be printed.
29362306a36Sopenharmony_ci		Let's illustrate an example.
29462306a36Sopenharmony_ci		If a base address is 0XFFFFFFFF81624d50 as below,
29562306a36Sopenharmony_ci
29662306a36Sopenharmony_ci		ffffffff81624d50 <load0>
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_ci		an address on assembly code has a specific absolute address as below
29962306a36Sopenharmony_ci
30062306a36Sopenharmony_ci		ffffffff816250b8:│  mov    0x8(%r14),%rdi
30162306a36Sopenharmony_ci
30262306a36Sopenharmony_ci		but if use_offset is 'true', an address subtracted from a base address is printed.
30362306a36Sopenharmony_ci		Default is true. This option is only applied to TUI.
30462306a36Sopenharmony_ci
30562306a36Sopenharmony_ci		             368:│  mov    0x8(%r14),%rdi
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_ci		This option works with tui, stdio2 browsers.
30862306a36Sopenharmony_ci
30962306a36Sopenharmony_ci	annotate.jump_arrows::
31062306a36Sopenharmony_ci		There can be jump instruction among assembly code.
31162306a36Sopenharmony_ci		Depending on a boolean value of jump_arrows,
31262306a36Sopenharmony_ci		arrows can be printed or not which represent
31362306a36Sopenharmony_ci		where do the instruction jump into as below.
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ci		│     ┌──jmp    1333
31662306a36Sopenharmony_ci		│     │  xchg   %ax,%ax
31762306a36Sopenharmony_ci		│1330:│  mov    %r15,%r10
31862306a36Sopenharmony_ci		│1333:└─→cmp    %r15,%r14
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_ci		If jump_arrow is 'false', the arrows isn't printed as below.
32162306a36Sopenharmony_ci		Default is 'false'.
32262306a36Sopenharmony_ci
32362306a36Sopenharmony_ci		│      ↓ jmp    1333
32462306a36Sopenharmony_ci		│        xchg   %ax,%ax
32562306a36Sopenharmony_ci		│1330:   mov    %r15,%r10
32662306a36Sopenharmony_ci		│1333:   cmp    %r15,%r14
32762306a36Sopenharmony_ci
32862306a36Sopenharmony_ci		This option works with tui browser.
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_ci        annotate.show_linenr::
33162306a36Sopenharmony_ci		When showing source code if this option is 'true',
33262306a36Sopenharmony_ci		line numbers are printed as below.
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_ci		│1628         if (type & PERF_SAMPLE_IDENTIFIER) {
33562306a36Sopenharmony_ci		│     ↓ jne    508
33662306a36Sopenharmony_ci		│1628                 data->id = *array;
33762306a36Sopenharmony_ci		│1629                 array++;
33862306a36Sopenharmony_ci		│1630         }
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_ci		However if this option is 'false', they aren't printed as below.
34162306a36Sopenharmony_ci		Default is 'false'.
34262306a36Sopenharmony_ci
34362306a36Sopenharmony_ci		│             if (type & PERF_SAMPLE_IDENTIFIER) {
34462306a36Sopenharmony_ci		│     ↓ jne    508
34562306a36Sopenharmony_ci		│                     data->id = *array;
34662306a36Sopenharmony_ci		│                     array++;
34762306a36Sopenharmony_ci		│             }
34862306a36Sopenharmony_ci
34962306a36Sopenharmony_ci		This option works with tui, stdio2 browsers.
35062306a36Sopenharmony_ci
35162306a36Sopenharmony_ci        annotate.show_nr_jumps::
35262306a36Sopenharmony_ci		Let's see a part of assembly code.
35362306a36Sopenharmony_ci
35462306a36Sopenharmony_ci		│1382:   movb   $0x1,-0x270(%rbp)
35562306a36Sopenharmony_ci
35662306a36Sopenharmony_ci		If use this, the number of branches jumping to that address can be printed as below.
35762306a36Sopenharmony_ci		Default is 'false'.
35862306a36Sopenharmony_ci
35962306a36Sopenharmony_ci		│1 1382:   movb   $0x1,-0x270(%rbp)
36062306a36Sopenharmony_ci
36162306a36Sopenharmony_ci		This option works with tui, stdio2 browsers.
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_ci        annotate.show_total_period::
36462306a36Sopenharmony_ci		To compare two records on an instruction base, with this option
36562306a36Sopenharmony_ci		provided, display total number of samples that belong to a line
36662306a36Sopenharmony_ci		in assembly code. If this option is 'true', total periods are printed
36762306a36Sopenharmony_ci		instead of percent values as below.
36862306a36Sopenharmony_ci
36962306a36Sopenharmony_ci		  302 │      mov    %eax,%eax
37062306a36Sopenharmony_ci
37162306a36Sopenharmony_ci		But if this option is 'false', percent values for overhead are printed i.e.
37262306a36Sopenharmony_ci		Default is 'false'.
37362306a36Sopenharmony_ci
37462306a36Sopenharmony_ci		99.93 │      mov    %eax,%eax
37562306a36Sopenharmony_ci
37662306a36Sopenharmony_ci		This option works with tui, stdio2, stdio browsers.
37762306a36Sopenharmony_ci
37862306a36Sopenharmony_ci	annotate.show_nr_samples::
37962306a36Sopenharmony_ci		By default perf annotate shows percentage of samples. This option
38062306a36Sopenharmony_ci		can be used to print absolute number of samples. Ex, when set as
38162306a36Sopenharmony_ci		false:
38262306a36Sopenharmony_ci
38362306a36Sopenharmony_ci		Percent│
38462306a36Sopenharmony_ci		 74.03 │      mov    %fs:0x28,%rax
38562306a36Sopenharmony_ci
38662306a36Sopenharmony_ci		When set as true:
38762306a36Sopenharmony_ci
38862306a36Sopenharmony_ci		Samples│
38962306a36Sopenharmony_ci		     6 │      mov    %fs:0x28,%rax
39062306a36Sopenharmony_ci
39162306a36Sopenharmony_ci		This option works with tui, stdio2, stdio browsers.
39262306a36Sopenharmony_ci
39362306a36Sopenharmony_ci	annotate.offset_level::
39462306a36Sopenharmony_ci		Default is '1', meaning just jump targets will have offsets show right beside
39562306a36Sopenharmony_ci		the instruction. When set to '2' 'call' instructions will also have its offsets
39662306a36Sopenharmony_ci		shown, 3 or higher will show offsets for all instructions.
39762306a36Sopenharmony_ci
39862306a36Sopenharmony_ci		This option works with tui, stdio2 browsers.
39962306a36Sopenharmony_ci
40062306a36Sopenharmony_ci	annotate.demangle::
40162306a36Sopenharmony_ci		Demangle symbol names to human readable form. Default is 'true'.
40262306a36Sopenharmony_ci
40362306a36Sopenharmony_ci	annotate.demangle_kernel::
40462306a36Sopenharmony_ci		Demangle kernel symbol names to human readable form. Default is 'true'.
40562306a36Sopenharmony_ci
40662306a36Sopenharmony_cihist.*::
40762306a36Sopenharmony_ci	hist.percentage::
40862306a36Sopenharmony_ci		This option control the way to calculate overhead of filtered entries -
40962306a36Sopenharmony_ci		that means the value of this option is effective only if there's a
41062306a36Sopenharmony_ci		filter (by comm, dso or symbol name). Suppose a following example:
41162306a36Sopenharmony_ci
41262306a36Sopenharmony_ci		       Overhead  Symbols
41362306a36Sopenharmony_ci		       ........  .......
41462306a36Sopenharmony_ci		        33.33%     foo
41562306a36Sopenharmony_ci		        33.33%     bar
41662306a36Sopenharmony_ci		        33.33%     baz
41762306a36Sopenharmony_ci
41862306a36Sopenharmony_ci	       This is an original overhead and we'll filter out the first 'foo'
41962306a36Sopenharmony_ci	       entry. The value of 'relative' would increase the overhead of 'bar'
42062306a36Sopenharmony_ci	       and 'baz' to 50.00% for each, while 'absolute' would show their
42162306a36Sopenharmony_ci	       current overhead (33.33%).
42262306a36Sopenharmony_ci
42362306a36Sopenharmony_ciui.*::
42462306a36Sopenharmony_ci	ui.show-headers::
42562306a36Sopenharmony_ci		This option controls display of column headers (like 'Overhead' and 'Symbol')
42662306a36Sopenharmony_ci		in 'report' and 'top'. If this option is false, they are hidden.
42762306a36Sopenharmony_ci		This option is only applied to TUI.
42862306a36Sopenharmony_ci
42962306a36Sopenharmony_cicall-graph.*::
43062306a36Sopenharmony_ci	The following controls the handling of call-graphs (obtained via the
43162306a36Sopenharmony_ci	-g/--call-graph options).
43262306a36Sopenharmony_ci
43362306a36Sopenharmony_ci	call-graph.record-mode::
43462306a36Sopenharmony_ci		The mode for user space can be 'fp' (frame pointer), 'dwarf'
43562306a36Sopenharmony_ci		and 'lbr'.  The value 'dwarf' is effective only if libunwind
43662306a36Sopenharmony_ci		(or a recent version of libdw) is present on the system;
43762306a36Sopenharmony_ci		the value 'lbr' only works for certain cpus. The method for
43862306a36Sopenharmony_ci		kernel space is controlled not by this option but by the
43962306a36Sopenharmony_ci		kernel config (CONFIG_UNWINDER_*).
44062306a36Sopenharmony_ci
44162306a36Sopenharmony_ci	call-graph.dump-size::
44262306a36Sopenharmony_ci		The size of stack to dump in order to do post-unwinding. Default is 8192 (byte).
44362306a36Sopenharmony_ci		When using dwarf into record-mode, the default size will be used if omitted.
44462306a36Sopenharmony_ci
44562306a36Sopenharmony_ci	call-graph.print-type::
44662306a36Sopenharmony_ci		The print-types can be graph (graph absolute), fractal (graph relative),
44762306a36Sopenharmony_ci		flat and folded. This option controls a way to show overhead for each callchain
44862306a36Sopenharmony_ci		entry. Suppose a following example.
44962306a36Sopenharmony_ci
45062306a36Sopenharmony_ci                Overhead  Symbols
45162306a36Sopenharmony_ci                ........  .......
45262306a36Sopenharmony_ci                  40.00%  foo
45362306a36Sopenharmony_ci                          |
45462306a36Sopenharmony_ci                          ---foo
45562306a36Sopenharmony_ci                             |
45662306a36Sopenharmony_ci                             |--50.00%--bar
45762306a36Sopenharmony_ci                             |          main
45862306a36Sopenharmony_ci                             |
45962306a36Sopenharmony_ci                              --50.00%--baz
46062306a36Sopenharmony_ci                                        main
46162306a36Sopenharmony_ci
46262306a36Sopenharmony_ci		This output is a 'fractal' format. The 'foo' came from 'bar' and 'baz' exactly
46362306a36Sopenharmony_ci		half and half so 'fractal' shows 50.00% for each
46462306a36Sopenharmony_ci		(meaning that it assumes 100% total overhead of 'foo').
46562306a36Sopenharmony_ci
46662306a36Sopenharmony_ci		The 'graph' uses absolute overhead value of 'foo' as total so each of
46762306a36Sopenharmony_ci		'bar' and 'baz' callchain will have 20.00% of overhead.
46862306a36Sopenharmony_ci		If 'flat' is used, single column and linear exposure of call chains.
46962306a36Sopenharmony_ci		'folded' mean call chains are displayed in a line, separated by semicolons.
47062306a36Sopenharmony_ci
47162306a36Sopenharmony_ci	call-graph.order::
47262306a36Sopenharmony_ci		This option controls print order of callchains. The default is
47362306a36Sopenharmony_ci		'callee' which means callee is printed at top and then followed by its
47462306a36Sopenharmony_ci		caller and so on. The 'caller' prints it in reverse order.
47562306a36Sopenharmony_ci
47662306a36Sopenharmony_ci		If this option is not set and report.children or top.children is
47762306a36Sopenharmony_ci		set to true (or the equivalent command line option is given),
47862306a36Sopenharmony_ci		the default value of this option is changed to 'caller' for the
47962306a36Sopenharmony_ci		execution of 'perf report' or 'perf top'. Other commands will
48062306a36Sopenharmony_ci		still default to 'callee'.
48162306a36Sopenharmony_ci
48262306a36Sopenharmony_ci	call-graph.sort-key::
48362306a36Sopenharmony_ci		The callchains are merged if they contain same information.
48462306a36Sopenharmony_ci		The sort-key option determines a way to compare the callchains.
48562306a36Sopenharmony_ci		A value of 'sort-key' can be 'function' or 'address'.
48662306a36Sopenharmony_ci		The default is 'function'.
48762306a36Sopenharmony_ci
48862306a36Sopenharmony_ci	call-graph.threshold::
48962306a36Sopenharmony_ci		When there're many callchains it'd print tons of lines. So perf omits
49062306a36Sopenharmony_ci		small callchains under a certain overhead (threshold) and this option
49162306a36Sopenharmony_ci		control the threshold. Default is 0.5 (%). The overhead is calculated
49262306a36Sopenharmony_ci		by value depends on call-graph.print-type.
49362306a36Sopenharmony_ci
49462306a36Sopenharmony_ci	call-graph.print-limit::
49562306a36Sopenharmony_ci		This is a maximum number of lines of callchain printed for a single
49662306a36Sopenharmony_ci		histogram entry. Default is 0 which means no limitation.
49762306a36Sopenharmony_ci
49862306a36Sopenharmony_cireport.*::
49962306a36Sopenharmony_ci	report.sort_order::
50062306a36Sopenharmony_ci		Allows changing the default sort order from "comm,dso,symbol" to
50162306a36Sopenharmony_ci		some other default, for instance "sym,dso" may be more fitting for
50262306a36Sopenharmony_ci		kernel developers.
50362306a36Sopenharmony_ci	report.percent-limit::
50462306a36Sopenharmony_ci		This one is mostly the same as call-graph.threshold but works for
50562306a36Sopenharmony_ci		histogram entries. Entries having an overhead lower than this
50662306a36Sopenharmony_ci		percentage will not be printed. Default is '0'. If percent-limit
50762306a36Sopenharmony_ci		is '10', only entries which have more than 10% of overhead will be
50862306a36Sopenharmony_ci		printed.
50962306a36Sopenharmony_ci
51062306a36Sopenharmony_ci	report.queue-size::
51162306a36Sopenharmony_ci		This option sets up the maximum allocation size of the internal
51262306a36Sopenharmony_ci		event queue for ordering events. Default is 0, meaning no limit.
51362306a36Sopenharmony_ci
51462306a36Sopenharmony_ci	report.children::
51562306a36Sopenharmony_ci		'Children' means functions called from another function.
51662306a36Sopenharmony_ci		If this option is true, 'perf report' cumulates callchains of children
51762306a36Sopenharmony_ci		and show (accumulated) total overhead as well as 'Self' overhead.
51862306a36Sopenharmony_ci		Please refer to the 'perf report' manual. The default is 'true'.
51962306a36Sopenharmony_ci
52062306a36Sopenharmony_ci	report.group::
52162306a36Sopenharmony_ci		This option is to show event group information together.
52262306a36Sopenharmony_ci		Example output with this turned on, notice that there is one column
52362306a36Sopenharmony_ci		per event in the group, ref-cycles and cycles:
52462306a36Sopenharmony_ci
52562306a36Sopenharmony_ci		# group: {ref-cycles,cycles}
52662306a36Sopenharmony_ci		# ========
52762306a36Sopenharmony_ci		#
52862306a36Sopenharmony_ci		# Samples: 7K of event 'anon group { ref-cycles, cycles }'
52962306a36Sopenharmony_ci		# Event count (approx.): 6876107743
53062306a36Sopenharmony_ci		#
53162306a36Sopenharmony_ci		#         Overhead  Command      Shared Object               Symbol
53262306a36Sopenharmony_ci		# ................  .......  .................  ...................
53362306a36Sopenharmony_ci		#
53462306a36Sopenharmony_ci		    99.84%  99.76%  noploop  noploop            [.] main
53562306a36Sopenharmony_ci		     0.07%   0.00%  noploop  ld-2.15.so         [.] strcmp
53662306a36Sopenharmony_ci		     0.03%   0.00%  noploop  [kernel.kallsyms]  [k] timerqueue_del
53762306a36Sopenharmony_ci
53862306a36Sopenharmony_ci	report.skip-empty::
53962306a36Sopenharmony_ci		This option can change default stat behavior with empty results.
54062306a36Sopenharmony_ci		If it's set true, 'perf report --stat' will not show 0 stats.
54162306a36Sopenharmony_ci
54262306a36Sopenharmony_citop.*::
54362306a36Sopenharmony_ci	top.children::
54462306a36Sopenharmony_ci		Same as 'report.children'. So if it is enabled, the output of 'top'
54562306a36Sopenharmony_ci		command will have 'Children' overhead column as well as 'Self' overhead
54662306a36Sopenharmony_ci		column by default.
54762306a36Sopenharmony_ci		The default is 'true'.
54862306a36Sopenharmony_ci
54962306a36Sopenharmony_ci	top.call-graph::
55062306a36Sopenharmony_ci		This is identical to 'call-graph.record-mode', except it is
55162306a36Sopenharmony_ci		applicable only for 'top' subcommand. This option ONLY setup
55262306a36Sopenharmony_ci		the unwind method. To enable 'perf top' to actually use it,
55362306a36Sopenharmony_ci		the command line option -g must be specified.
55462306a36Sopenharmony_ci
55562306a36Sopenharmony_ciman.*::
55662306a36Sopenharmony_ci	man.viewer::
55762306a36Sopenharmony_ci		This option can assign a tool to view manual pages when 'help'
55862306a36Sopenharmony_ci		subcommand was invoked. Supported tools are 'man', 'woman'
55962306a36Sopenharmony_ci		(with emacs client) and 'konqueror'. Default is 'man'.
56062306a36Sopenharmony_ci
56162306a36Sopenharmony_ci		New man viewer tool can be also added using 'man.<tool>.cmd'
56262306a36Sopenharmony_ci		or use different path using 'man.<tool>.path' config option.
56362306a36Sopenharmony_ci
56462306a36Sopenharmony_cipager.*::
56562306a36Sopenharmony_ci	pager.<subcommand>::
56662306a36Sopenharmony_ci		When the subcommand is run on stdio, determine whether it uses
56762306a36Sopenharmony_ci		pager or not based on this value. Default is 'unspecified'.
56862306a36Sopenharmony_ci
56962306a36Sopenharmony_cikmem.*::
57062306a36Sopenharmony_ci	kmem.default::
57162306a36Sopenharmony_ci		This option decides which allocator is to be analyzed if neither
57262306a36Sopenharmony_ci		'--slab' nor '--page' option is used. Default is 'slab'.
57362306a36Sopenharmony_ci
57462306a36Sopenharmony_cirecord.*::
57562306a36Sopenharmony_ci	record.build-id::
57662306a36Sopenharmony_ci		This option can be 'cache', 'no-cache', 'skip' or 'mmap'.
57762306a36Sopenharmony_ci		'cache' is to post-process data and save/update the binaries into
57862306a36Sopenharmony_ci		the build-id cache (in ~/.debug). This is the default.
57962306a36Sopenharmony_ci		But if this option is 'no-cache', it will not update the build-id cache.
58062306a36Sopenharmony_ci		'skip' skips post-processing and does not update the cache.
58162306a36Sopenharmony_ci		'mmap' skips post-processing and reads build-ids from MMAP events.
58262306a36Sopenharmony_ci
58362306a36Sopenharmony_ci	record.call-graph::
58462306a36Sopenharmony_ci		This is identical to 'call-graph.record-mode', except it is
58562306a36Sopenharmony_ci		applicable only for 'record' subcommand. This option ONLY setup
58662306a36Sopenharmony_ci		the unwind method. To enable 'perf record' to actually use it,
58762306a36Sopenharmony_ci		the command line option -g must be specified.
58862306a36Sopenharmony_ci
58962306a36Sopenharmony_ci	record.aio::
59062306a36Sopenharmony_ci		Use 'n' control blocks in asynchronous (Posix AIO) trace writing
59162306a36Sopenharmony_ci		mode ('n' default: 1, max: 4).
59262306a36Sopenharmony_ci
59362306a36Sopenharmony_ci	record.debuginfod::
59462306a36Sopenharmony_ci		Specify debuginfod URL to be used when cacheing perf.data binaries,
59562306a36Sopenharmony_ci		it follows the same syntax as the DEBUGINFOD_URLS variable, like:
59662306a36Sopenharmony_ci
59762306a36Sopenharmony_ci		  http://192.168.122.174:8002
59862306a36Sopenharmony_ci
59962306a36Sopenharmony_ci		If the URLs is 'system', the value of DEBUGINFOD_URLS system environment
60062306a36Sopenharmony_ci		variable is used.
60162306a36Sopenharmony_ci
60262306a36Sopenharmony_cidiff.*::
60362306a36Sopenharmony_ci	diff.order::
60462306a36Sopenharmony_ci		This option sets the number of columns to sort the result.
60562306a36Sopenharmony_ci		The default is 0, which means sorting by baseline.
60662306a36Sopenharmony_ci		Setting it to 1 will sort the result by delta (or other
60762306a36Sopenharmony_ci		compute method selected).
60862306a36Sopenharmony_ci
60962306a36Sopenharmony_ci	diff.compute::
61062306a36Sopenharmony_ci		This options sets the method for computing the diff result.
61162306a36Sopenharmony_ci		Possible values are 'delta', 'delta-abs', 'ratio' and
61262306a36Sopenharmony_ci		'wdiff'.  Default is 'delta'.
61362306a36Sopenharmony_ci
61462306a36Sopenharmony_citrace.*::
61562306a36Sopenharmony_ci	trace.add_events::
61662306a36Sopenharmony_ci		Allows adding a set of events to add to the ones specified
61762306a36Sopenharmony_ci		by the user, or use as a default one if none was specified.
61862306a36Sopenharmony_ci		The initial use case is to add augmented_raw_syscalls.o to
61962306a36Sopenharmony_ci		activate the 'perf trace' logic that looks for syscall
62062306a36Sopenharmony_ci		pointer contents after the normal tracepoint payload.
62162306a36Sopenharmony_ci
62262306a36Sopenharmony_ci	trace.args_alignment::
62362306a36Sopenharmony_ci		Number of columns to align the argument list, default is 70,
62462306a36Sopenharmony_ci		use 40 for the strace default, zero to no alignment.
62562306a36Sopenharmony_ci
62662306a36Sopenharmony_ci	trace.no_inherit::
62762306a36Sopenharmony_ci		Do not follow children threads.
62862306a36Sopenharmony_ci
62962306a36Sopenharmony_ci	trace.show_arg_names::
63062306a36Sopenharmony_ci		Should syscall argument names be printed? If not then trace.show_zeros
63162306a36Sopenharmony_ci		will be set.
63262306a36Sopenharmony_ci
63362306a36Sopenharmony_ci	trace.show_duration::
63462306a36Sopenharmony_ci		Show syscall duration.
63562306a36Sopenharmony_ci
63662306a36Sopenharmony_ci	trace.show_prefix::
63762306a36Sopenharmony_ci		If set to 'yes' will show common string prefixes in tables. The default
63862306a36Sopenharmony_ci		is to remove the common prefix in things like "MAP_SHARED", showing just "SHARED".
63962306a36Sopenharmony_ci
64062306a36Sopenharmony_ci	trace.show_timestamp::
64162306a36Sopenharmony_ci		Show syscall start timestamp.
64262306a36Sopenharmony_ci
64362306a36Sopenharmony_ci	trace.show_zeros::
64462306a36Sopenharmony_ci		Do not suppress syscall arguments that are equal to zero.
64562306a36Sopenharmony_ci
64662306a36Sopenharmony_ci	trace.tracepoint_beautifiers::
64762306a36Sopenharmony_ci		Use "libtraceevent" to use that library to augment the tracepoint arguments,
64862306a36Sopenharmony_ci		"libbeauty", the default, to use the same argument beautifiers used in the
64962306a36Sopenharmony_ci		strace-like sys_enter+sys_exit lines.
65062306a36Sopenharmony_ci
65162306a36Sopenharmony_ciftrace.*::
65262306a36Sopenharmony_ci	ftrace.tracer::
65362306a36Sopenharmony_ci		Can be used to select the default tracer when neither -G nor
65462306a36Sopenharmony_ci		-F option is not specified. Possible values are 'function' and
65562306a36Sopenharmony_ci		'function_graph'.
65662306a36Sopenharmony_ci
65762306a36Sopenharmony_cisamples.*::
65862306a36Sopenharmony_ci
65962306a36Sopenharmony_ci	samples.context::
66062306a36Sopenharmony_ci		Define how many ns worth of time to show
66162306a36Sopenharmony_ci		around samples in perf report sample context browser.
66262306a36Sopenharmony_ci
66362306a36Sopenharmony_ciscripts.*::
66462306a36Sopenharmony_ci
66562306a36Sopenharmony_ci	Any option defines a script that is added to the scripts menu
66662306a36Sopenharmony_ci	in the interactive perf browser and whose output is displayed.
66762306a36Sopenharmony_ci	The name of the option is the name, the value is a script command line.
66862306a36Sopenharmony_ci	The script gets the same options passed as a full perf script,
66962306a36Sopenharmony_ci	in particular -i perfdata file, --cpu, --tid
67062306a36Sopenharmony_ci
67162306a36Sopenharmony_ciconvert.*::
67262306a36Sopenharmony_ci
67362306a36Sopenharmony_ci	convert.queue-size::
67462306a36Sopenharmony_ci		Limit the size of ordered_events queue, so we could control
67562306a36Sopenharmony_ci		allocation size of perf data files without proper finished
67662306a36Sopenharmony_ci		round events.
67762306a36Sopenharmony_cistat.*::
67862306a36Sopenharmony_ci
67962306a36Sopenharmony_ci	stat.big-num::
68062306a36Sopenharmony_ci		(boolean) Change the default for "--big-num". To make
68162306a36Sopenharmony_ci		"--no-big-num" the default, set "stat.big-num=false".
68262306a36Sopenharmony_ci
68362306a36Sopenharmony_ciintel-pt.*::
68462306a36Sopenharmony_ci
68562306a36Sopenharmony_ci	intel-pt.cache-divisor::
68662306a36Sopenharmony_ci
68762306a36Sopenharmony_ci	intel-pt.mispred-all::
68862306a36Sopenharmony_ci		If set, Intel PT decoder will set the mispred flag on all
68962306a36Sopenharmony_ci		branches.
69062306a36Sopenharmony_ci
69162306a36Sopenharmony_ci	intel-pt.max-loops::
69262306a36Sopenharmony_ci		If set and non-zero, the maximum number of unconditional
69362306a36Sopenharmony_ci		branches decoded without consuming any trace packets. If
69462306a36Sopenharmony_ci		the maximum is exceeded there will be a "Never-ending loop"
69562306a36Sopenharmony_ci		error. The default is 100000.
69662306a36Sopenharmony_ci
69762306a36Sopenharmony_ciauxtrace.*::
69862306a36Sopenharmony_ci
69962306a36Sopenharmony_ci	auxtrace.dumpdir::
70062306a36Sopenharmony_ci		s390 only. The directory to save the auxiliary trace buffer
70162306a36Sopenharmony_ci		can be changed using this option. Ex, auxtrace.dumpdir=/tmp.
70262306a36Sopenharmony_ci		If the directory does not exist or has the wrong file type,
70362306a36Sopenharmony_ci		the current directory is used.
70462306a36Sopenharmony_ci
70562306a36Sopenharmony_ciitrace.*::
70662306a36Sopenharmony_ci
70762306a36Sopenharmony_ci	debug-log-buffer-size::
70862306a36Sopenharmony_ci		Log size in bytes to output when using the option --itrace=d+e
70962306a36Sopenharmony_ci		Refer 'itrace' option of linkperf:perf-script[1] or
71062306a36Sopenharmony_ci		linkperf:perf-report[1]. The default is 16384.
71162306a36Sopenharmony_ci
71262306a36Sopenharmony_cidaemon.*::
71362306a36Sopenharmony_ci
71462306a36Sopenharmony_ci	daemon.base::
71562306a36Sopenharmony_ci		Base path for daemon data. All sessions data are stored under
71662306a36Sopenharmony_ci		this path.
71762306a36Sopenharmony_ci
71862306a36Sopenharmony_cisession-<NAME>.*::
71962306a36Sopenharmony_ci
72062306a36Sopenharmony_ci	session-<NAME>.run::
72162306a36Sopenharmony_ci
72262306a36Sopenharmony_ci		Defines new record session for daemon. The value is record's
72362306a36Sopenharmony_ci		command line without the 'record' keyword.
72462306a36Sopenharmony_ci
72562306a36Sopenharmony_ci
72662306a36Sopenharmony_ciSEE ALSO
72762306a36Sopenharmony_ci--------
72862306a36Sopenharmony_cilinkperf:perf[1]
729