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_ci │ 28362306a36Sopenharmony_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