^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) perf-config(1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) ==============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) NAME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) perf-config - Get and set variables in a configuration file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) SYNOPSIS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) [verse]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 'perf config' [<file-option>] [section.name[=value] ...]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 'perf config' [<file-option>] -l | --list
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) DESCRIPTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) You can manage variables in a configuration file with this command.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) -------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) -l::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) --list::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) Show current config variables, name and value, for all sections.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) --user::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) For writing and reading options: write to user
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) '$HOME/.perfconfig' file or read it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) --system::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) For writing and reading options: write to system-wide
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) '$(sysconfdir)/perfconfig' or read it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) CONFIGURATION FILE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) ------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) The perf configuration file contains many variables to change various
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) aspects of each of its tools, including output, disk usage, etc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) The '$HOME/.perfconfig' file is used to store a per-user configuration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) The file '$(sysconfdir)/perfconfig' can be used to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) store a system-wide default configuration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) One an disable reading config files by setting the PERF_CONFIG environment
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) variable to /dev/null, or provide an alternate config file by setting that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) variable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) When reading or writing, the values are read from the system and user
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) configuration files by default, and options '--system' and '--user'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) can be used to tell the command to read from or write to only that location.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) Syntax
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) ~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) The file consist of sections. A section starts with its name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) surrounded by square brackets and continues till the next section
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) begins. Each variable must be in a section, and have the form
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 'name = value', for example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) [section]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) name1 = value1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) name2 = value2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) Section names are case sensitive and can contain any characters except
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) newline (double quote `"` and backslash have to be escaped as `\"` and `\\`,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) respectively). Section headers can't span multiple lines.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) Example
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) ~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) Given a $HOME/.perfconfig like this:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) # This is the config file, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) # a '#' and ';' character indicates a comment
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) [colors]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) # Color variables
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) top = red, default
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) medium = green, default
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) normal = lightgray, default
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) selected = white, lightgray
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) jump_arrows = blue, default
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) addr = magenta, default
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) root = white, blue
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) [tui]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) # Defaults if linked with libslang
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) report = on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) annotate = on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) top = on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) [buildid]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) # Default, disable using /dev/null
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) dir = ~/.debug
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) [annotate]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) # Defaults
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) hide_src_code = false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) use_offset = true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) jump_arrows = true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) show_nr_jumps = false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) [help]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) # Format can be man, info, web or html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) format = man
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) autocorrect = 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) [ui]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) show-headers = true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) [call-graph]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) # fp (framepointer), dwarf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) record-mode = fp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) print-type = graph
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) order = caller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) sort-key = function
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) [report]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) # Defaults
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) sort_order = comm,dso,symbol
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) percent-limit = 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) queue-size = 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) children = true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) group = true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) [llvm]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) dump-obj = true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) clang-opt = -g
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) You can hide source code of annotate feature setting the config to false with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) % perf config annotate.hide_src_code=true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) If you want to add or modify several config items, you can do like
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) % perf config ui.show-headers=false kmem.default=slab
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) To modify the sort order of report functionality in user config file(i.e. `~/.perfconfig`), do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) % perf config --user report sort-order=srcline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) To change colors of selected line to other foreground and background colors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) in system config file (i.e. `$(sysconf)/perfconfig`), do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) % perf config --system colors.selected=yellow,green
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) To query the record mode of call graph, do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) % perf config call-graph.record-mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) If you want to know multiple config key/value pairs, you can do like
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) % perf config report.queue-size call-graph.order report.children
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) To query the config value of sort order of call graph in user config file (i.e. `~/.perfconfig`), do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) % perf config --user call-graph.sort-order
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) To query the config value of buildid directory in system config file (i.e. `$(sysconf)/perfconfig`), do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) % perf config --system buildid.dir
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) Variables
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) ~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) colors.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) The variables for customizing the colors used in the output for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 'report', 'top' and 'annotate' in the TUI. They should specify the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) foreground and background colors, separated by a comma, for example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) medium = green, lightgray
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) If you want to use the color configured for you terminal, just leave it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) as 'default', for example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) medium = default, lightgray
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) Available colors:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) red, yellow, green, cyan, gray, black, blue,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) white, default, magenta, lightgray
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) colors.top::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 'top' means a overhead percentage which is more than 5%.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) And values of this variable specify percentage colors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) Basic key values are foreground-color 'red' and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) background-color 'default'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) colors.medium::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 'medium' means a overhead percentage which has more than 0.5%.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) Default values are 'green' and 'default'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) colors.normal::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 'normal' means the rest of overhead percentages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) except 'top', 'medium', 'selected'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) Default values are 'lightgray' and 'default'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) colors.selected::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) This selects the colors for the current entry in a list of entries
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) from sub-commands (top, report, annotate).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) Default values are 'black' and 'lightgray'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) colors.jump_arrows::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) Colors for jump arrows on assembly code listings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) such as 'jns', 'jmp', 'jane', etc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) Default values are 'blue', 'default'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) colors.addr::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) This selects colors for addresses from 'annotate'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) Default values are 'magenta', 'default'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) colors.root::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) Colors for headers in the output of a sub-commands (top, report).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) Default values are 'white', 'blue'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) core.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) core.proc-map-timeout::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) Sets a timeout (in milliseconds) for parsing /proc/<pid>/maps files.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) Can be overridden by the --proc-map-timeout option on supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) subcommands. The default timeout is 500ms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) tui.*, gtk.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) Subcommands that can be configured here are 'top', 'report' and 'annotate'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) These values are booleans, for example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) [tui]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) top = true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) will make the TUI be the default for the 'top' subcommand. Those will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) available if the required libs were detected at tool build time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) buildid.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) buildid.dir::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) Each executable and shared library in modern distributions comes with a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) content based identifier that, if available, will be inserted in a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 'perf.data' file header to, at analysis time find what is needed to do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) symbol resolution, code annotation, etc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) The recording tools also stores a hard link or copy in a per-user
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) directory, $HOME/.debug/, of binaries, shared libraries, /proc/kallsyms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) and /proc/kcore files to be used at analysis time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) The buildid.dir variable can be used to either change this directory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) cache location, or to disable it altogether. If you want to disable it,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) set buildid.dir to /dev/null. The default is $HOME/.debug
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) annotate.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) These are in control of addresses, jump function, source code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) in lines of assembly code from a specific program.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) annotate.disassembler_style:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) Use this to change the default disassembler style to some other value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) supported by binutils, such as "intel", see the '-M' option help in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 'objdump' man page.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) annotate.hide_src_code::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) If a program which is analyzed has source code,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) this option lets 'annotate' print a list of assembly code with the source code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) For example, let's see a part of a program. There're four lines.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) If this option is 'true', they can be printed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) without source code from a program as below.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) │ push %rbp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) │ mov %rsp,%rbp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) │ sub $0x10,%rsp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) │ mov (%rdi),%rdx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) But if this option is 'false', source code of the part
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) can be also printed as below. Default is 'false'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) │ struct rb_node *rb_next(const struct rb_node *node)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) │ {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) │ push %rbp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) │ mov %rsp,%rbp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) │ sub $0x10,%rsp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) │ struct rb_node *parent;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) │
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) │ if (RB_EMPTY_NODE(node))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) │ mov (%rdi),%rdx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) │ return n;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) This option works with tui, stdio2 browsers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) annotate.use_offset::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) Basing on a first address of a loaded function, offset can be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) Instead of using original addresses of assembly code,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) addresses subtracted from a base address can be printed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) Let's illustrate an example.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) If a base address is 0XFFFFFFFF81624d50 as below,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) ffffffff81624d50 <load0>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) an address on assembly code has a specific absolute address as below
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) ffffffff816250b8:│ mov 0x8(%r14),%rdi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) but if use_offset is 'true', an address subtracted from a base address is printed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) Default is true. This option is only applied to TUI.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) 368:│ mov 0x8(%r14),%rdi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) This option works with tui, stdio2 browsers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) annotate.jump_arrows::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) There can be jump instruction among assembly code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) Depending on a boolean value of jump_arrows,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) arrows can be printed or not which represent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) where do the instruction jump into as below.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) │ ┌──jmp 1333
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) │ │ xchg %ax,%ax
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) │1330:│ mov %r15,%r10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) │1333:└─→cmp %r15,%r14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) If jump_arrow is 'false', the arrows isn't printed as below.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) Default is 'false'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) │ ↓ jmp 1333
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) │ xchg %ax,%ax
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) │1330: mov %r15,%r10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) │1333: cmp %r15,%r14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) This option works with tui browser.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) annotate.show_linenr::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) When showing source code if this option is 'true',
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) line numbers are printed as below.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) │1628 if (type & PERF_SAMPLE_IDENTIFIER) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) │ ↓ jne 508
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) │1628 data->id = *array;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) │1629 array++;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) │1630 }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) However if this option is 'false', they aren't printed as below.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) Default is 'false'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) │ if (type & PERF_SAMPLE_IDENTIFIER) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) │ ↓ jne 508
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) │ data->id = *array;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) │ array++;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) │ }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) This option works with tui, stdio2 browsers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) annotate.show_nr_jumps::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) Let's see a part of assembly code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) │1382: movb $0x1,-0x270(%rbp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) If use this, the number of branches jumping to that address can be printed as below.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) Default is 'false'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) │1 1382: movb $0x1,-0x270(%rbp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) This option works with tui, stdio2 browsers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) annotate.show_total_period::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) To compare two records on an instruction base, with this option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) provided, display total number of samples that belong to a line
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) in assembly code. If this option is 'true', total periods are printed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) instead of percent values as below.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) 302 │ mov %eax,%eax
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) But if this option is 'false', percent values for overhead are printed i.e.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) Default is 'false'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) 99.93 │ mov %eax,%eax
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) This option works with tui, stdio2, stdio browsers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) annotate.show_nr_samples::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) By default perf annotate shows percentage of samples. This option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) can be used to print absolute number of samples. Ex, when set as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) false:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) Percent│
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) 74.03 │ mov %fs:0x28,%rax
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) When set as true:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) Samples│
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) 6 │ mov %fs:0x28,%rax
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) This option works with tui, stdio2, stdio browsers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) annotate.offset_level::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) Default is '1', meaning just jump targets will have offsets show right beside
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) the instruction. When set to '2' 'call' instructions will also have its offsets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) shown, 3 or higher will show offsets for all instructions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) This option works with tui, stdio2 browsers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) hist.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) hist.percentage::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) This option control the way to calculate overhead of filtered entries -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) that means the value of this option is effective only if there's a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) filter (by comm, dso or symbol name). Suppose a following example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) Overhead Symbols
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) ........ .......
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) 33.33% foo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) 33.33% bar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) 33.33% baz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) This is an original overhead and we'll filter out the first 'foo'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) entry. The value of 'relative' would increase the overhead of 'bar'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) and 'baz' to 50.00% for each, while 'absolute' would show their
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) current overhead (33.33%).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) ui.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) ui.show-headers::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) This option controls display of column headers (like 'Overhead' and 'Symbol')
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) in 'report' and 'top'. If this option is false, they are hidden.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) This option is only applied to TUI.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) call-graph.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) The following controls the handling of call-graphs (obtained via the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) -g/--call-graph options).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) call-graph.record-mode::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) The mode for user space can be 'fp' (frame pointer), 'dwarf'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) and 'lbr'. The value 'dwarf' is effective only if libunwind
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) (or a recent version of libdw) is present on the system;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) the value 'lbr' only works for certain cpus. The method for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) kernel space is controlled not by this option but by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) kernel config (CONFIG_UNWINDER_*).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) call-graph.dump-size::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) The size of stack to dump in order to do post-unwinding. Default is 8192 (byte).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) When using dwarf into record-mode, the default size will be used if omitted.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) call-graph.print-type::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) The print-types can be graph (graph absolute), fractal (graph relative),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) flat and folded. This option controls a way to show overhead for each callchain
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) entry. Suppose a following example.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) Overhead Symbols
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) ........ .......
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) 40.00% foo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) ---foo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) |--50.00%--bar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) | main
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) --50.00%--baz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) main
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) This output is a 'fractal' format. The 'foo' came from 'bar' and 'baz' exactly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) half and half so 'fractal' shows 50.00% for each
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) (meaning that it assumes 100% total overhead of 'foo').
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) The 'graph' uses absolute overhead value of 'foo' as total so each of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) 'bar' and 'baz' callchain will have 20.00% of overhead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) If 'flat' is used, single column and linear exposure of call chains.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) 'folded' mean call chains are displayed in a line, separated by semicolons.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) call-graph.order::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) This option controls print order of callchains. The default is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) 'callee' which means callee is printed at top and then followed by its
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) caller and so on. The 'caller' prints it in reverse order.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) If this option is not set and report.children or top.children is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) set to true (or the equivalent command line option is given),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) the default value of this option is changed to 'caller' for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) execution of 'perf report' or 'perf top'. Other commands will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) still default to 'callee'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) call-graph.sort-key::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) The callchains are merged if they contain same information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) The sort-key option determines a way to compare the callchains.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) A value of 'sort-key' can be 'function' or 'address'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) The default is 'function'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) call-graph.threshold::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) When there're many callchains it'd print tons of lines. So perf omits
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) small callchains under a certain overhead (threshold) and this option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) control the threshold. Default is 0.5 (%). The overhead is calculated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) by value depends on call-graph.print-type.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) call-graph.print-limit::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) This is a maximum number of lines of callchain printed for a single
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) histogram entry. Default is 0 which means no limitation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) report.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) report.sort_order::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) Allows changing the default sort order from "comm,dso,symbol" to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) some other default, for instance "sym,dso" may be more fitting for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) kernel developers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) report.percent-limit::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) This one is mostly the same as call-graph.threshold but works for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) histogram entries. Entries having an overhead lower than this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) percentage will not be printed. Default is '0'. If percent-limit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) is '10', only entries which have more than 10% of overhead will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) printed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) report.queue-size::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) This option sets up the maximum allocation size of the internal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) event queue for ordering events. Default is 0, meaning no limit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) report.children::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) 'Children' means functions called from another function.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) If this option is true, 'perf report' cumulates callchains of children
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) and show (accumulated) total overhead as well as 'Self' overhead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) Please refer to the 'perf report' manual. The default is 'true'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) report.group::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) This option is to show event group information together.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) Example output with this turned on, notice that there is one column
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) per event in the group, ref-cycles and cycles:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) # group: {ref-cycles,cycles}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) # ========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) # Samples: 7K of event 'anon group { ref-cycles, cycles }'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) # Event count (approx.): 6876107743
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) # Overhead Command Shared Object Symbol
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) # ................ ....... ................. ...................
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) 99.84% 99.76% noploop noploop [.] main
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) 0.07% 0.00% noploop ld-2.15.so [.] strcmp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) 0.03% 0.00% noploop [kernel.kallsyms] [k] timerqueue_del
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) top.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) top.children::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) Same as 'report.children'. So if it is enabled, the output of 'top'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) command will have 'Children' overhead column as well as 'Self' overhead
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) column by default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) The default is 'true'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) top.call-graph::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) This is identical to 'call-graph.record-mode', except it is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) applicable only for 'top' subcommand. This option ONLY setup
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) the unwind method. To enable 'perf top' to actually use it,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) the command line option -g must be specified.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) man.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) man.viewer::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) This option can assign a tool to view manual pages when 'help'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) subcommand was invoked. Supported tools are 'man', 'woman'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) (with emacs client) and 'konqueror'. Default is 'man'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) New man viewer tool can be also added using 'man.<tool>.cmd'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) or use different path using 'man.<tool>.path' config option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) pager.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) pager.<subcommand>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) When the subcommand is run on stdio, determine whether it uses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) pager or not based on this value. Default is 'unspecified'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) kmem.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) kmem.default::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) This option decides which allocator is to be analyzed if neither
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) '--slab' nor '--page' option is used. Default is 'slab'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) record.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) record.build-id::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) This option can be 'cache', 'no-cache' or 'skip'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) 'cache' is to post-process data and save/update the binaries into
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) the build-id cache (in ~/.debug). This is the default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) But if this option is 'no-cache', it will not update the build-id cache.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) 'skip' skips post-processing and does not update the cache.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) record.call-graph::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) This is identical to 'call-graph.record-mode', except it is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) applicable only for 'record' subcommand. This option ONLY setup
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) the unwind method. To enable 'perf record' to actually use it,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) the command line option -g must be specified.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) record.aio::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) Use 'n' control blocks in asynchronous (Posix AIO) trace writing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) mode ('n' default: 1, max: 4).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) diff.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) diff.order::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) This option sets the number of columns to sort the result.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) The default is 0, which means sorting by baseline.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) Setting it to 1 will sort the result by delta (or other
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) compute method selected).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) diff.compute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) This options sets the method for computing the diff result.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) Possible values are 'delta', 'delta-abs', 'ratio' and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) 'wdiff'. Default is 'delta'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) trace.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) trace.add_events::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) Allows adding a set of events to add to the ones specified
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) by the user, or use as a default one if none was specified.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) The initial use case is to add augmented_raw_syscalls.o to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) activate the 'perf trace' logic that looks for syscall
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) pointer contents after the normal tracepoint payload.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) trace.args_alignment::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) Number of columns to align the argument list, default is 70,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) use 40 for the strace default, zero to no alignment.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) trace.no_inherit::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) Do not follow children threads.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) trace.show_arg_names::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) Should syscall argument names be printed? If not then trace.show_zeros
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) will be set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) trace.show_duration::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) Show syscall duration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) trace.show_prefix::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) If set to 'yes' will show common string prefixes in tables. The default
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) is to remove the common prefix in things like "MAP_SHARED", showing just "SHARED".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) trace.show_timestamp::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) Show syscall start timestamp.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) trace.show_zeros::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) Do not suppress syscall arguments that are equal to zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) trace.tracepoint_beautifiers::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) Use "libtraceevent" to use that library to augment the tracepoint arguments,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) "libbeauty", the default, to use the same argument beautifiers used in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) strace-like sys_enter+sys_exit lines.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) ftrace.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) ftrace.tracer::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) Can be used to select the default tracer when neither -G nor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) -F option is not specified. Possible values are 'function' and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) 'function_graph'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) llvm.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) llvm.clang-path::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) Path to clang. If omit, search it from $PATH.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) llvm.clang-bpf-cmd-template::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) Cmdline template. Below lines show its default value. Environment
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) variable is used to pass options.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) "$CLANG_EXEC -D__KERNEL__ -D__NR_CPUS__=$NR_CPUS "\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) "-DLINUX_VERSION_CODE=$LINUX_VERSION_CODE " \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) "$CLANG_OPTIONS $PERF_BPF_INC_OPTIONS $KERNEL_INC_OPTIONS " \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) "-Wno-unused-value -Wno-pointer-sign " \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) "-working-directory $WORKING_DIR " \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) "-c \"$CLANG_SOURCE\" -target bpf $CLANG_EMIT_LLVM -O2 -o - $LLVM_OPTIONS_PIPE"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) llvm.clang-opt::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) Options passed to clang.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) llvm.kbuild-dir::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) kbuild directory. If not set, use /lib/modules/`uname -r`/build.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) If set to "" deliberately, skip kernel header auto-detector.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) llvm.kbuild-opts::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) Options passed to 'make' when detecting kernel header options.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) llvm.dump-obj::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) Enable perf dump BPF object files compiled by LLVM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) llvm.opts::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) Options passed to llc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) samples.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) samples.context::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) Define how many ns worth of time to show
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) around samples in perf report sample context browser.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) scripts.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) Any option defines a script that is added to the scripts menu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) in the interactive perf browser and whose output is displayed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) The name of the option is the name, the value is a script command line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) The script gets the same options passed as a full perf script,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668) in particular -i perfdata file, --cpu, --tid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) convert.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672) convert.queue-size::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) Limit the size of ordered_events queue, so we could control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) allocation size of perf data files without proper finished
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) round events.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) stat.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) stat.big-num::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) (boolean) Change the default for "--big-num". To make
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) "--no-big-num" the default, set "stat.big-num=false".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682) intel-pt.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684) intel-pt.cache-divisor::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686) intel-pt.mispred-all::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687) If set, Intel PT decoder will set the mispred flag on all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) branches.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) auxtrace.*::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692) auxtrace.dumpdir::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) s390 only. The directory to save the auxiliary trace buffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694) can be changed using this option. Ex, auxtrace.dumpdir=/tmp.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) If the directory does not exist or has the wrong file type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) the current directory is used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) SEE ALSO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) linkperf:perf[1]