| xj | b04a402 | 2021-11-25 15:01:52 +0800 | [diff] [blame] | 1 | perf-config(1) | 
|  | 2 | ============== | 
|  | 3 |  | 
|  | 4 | NAME | 
|  | 5 | ---- | 
|  | 6 | perf-config - Get and set variables in a configuration file. | 
|  | 7 |  | 
|  | 8 | SYNOPSIS | 
|  | 9 | -------- | 
|  | 10 | [verse] | 
|  | 11 | 'perf config' [<file-option>] [section.name[=value] ...] | 
|  | 12 | or | 
|  | 13 | 'perf config' [<file-option>] -l | --list | 
|  | 14 |  | 
|  | 15 | DESCRIPTION | 
|  | 16 | ----------- | 
|  | 17 | You can manage variables in a configuration file with this command. | 
|  | 18 |  | 
|  | 19 | OPTIONS | 
|  | 20 | ------- | 
|  | 21 |  | 
|  | 22 | -l:: | 
|  | 23 | --list:: | 
|  | 24 | Show current config variables, name and value, for all sections. | 
|  | 25 |  | 
|  | 26 | --user:: | 
|  | 27 | For writing and reading options: write to user | 
|  | 28 | '$HOME/.perfconfig' file or read it. | 
|  | 29 |  | 
|  | 30 | --system:: | 
|  | 31 | For writing and reading options: write to system-wide | 
|  | 32 | '$(sysconfdir)/perfconfig' or read it. | 
|  | 33 |  | 
|  | 34 | CONFIGURATION FILE | 
|  | 35 | ------------------ | 
|  | 36 |  | 
|  | 37 | The perf configuration file contains many variables to change various | 
|  | 38 | aspects of each of its tools, including output, disk usage, etc. | 
|  | 39 | The '$HOME/.perfconfig' file is used to store a per-user configuration. | 
|  | 40 | The file '$(sysconfdir)/perfconfig' can be used to | 
|  | 41 | store a system-wide default configuration. | 
|  | 42 |  | 
|  | 43 | When reading or writing, the values are read from the system and user | 
|  | 44 | configuration files by default, and options '--system' and '--user' | 
|  | 45 | can be used to tell the command to read from or write to only that location. | 
|  | 46 |  | 
|  | 47 | Syntax | 
|  | 48 | ~~~~~~ | 
|  | 49 |  | 
|  | 50 | The file consist of sections. A section starts with its name | 
|  | 51 | surrounded by square brackets and continues till the next section | 
|  | 52 | begins. Each variable must be in a section, and have the form | 
|  | 53 | 'name = value', for example: | 
|  | 54 |  | 
|  | 55 | [section] | 
|  | 56 | name1 = value1 | 
|  | 57 | name2 = value2 | 
|  | 58 |  | 
|  | 59 | Section names are case sensitive and can contain any characters except | 
|  | 60 | newline (double quote `"` and backslash have to be escaped as `\"` and `\\`, | 
|  | 61 | respectively). Section headers can't span multiple lines. | 
|  | 62 |  | 
|  | 63 | Example | 
|  | 64 | ~~~~~~~ | 
|  | 65 |  | 
|  | 66 | Given a $HOME/.perfconfig like this: | 
|  | 67 |  | 
|  | 68 | # | 
|  | 69 | # This is the config file, and | 
|  | 70 | # a '#' and ';' character indicates a comment | 
|  | 71 | # | 
|  | 72 |  | 
|  | 73 | [colors] | 
|  | 74 | # Color variables | 
|  | 75 | top = red, default | 
|  | 76 | medium = green, default | 
|  | 77 | normal = lightgray, default | 
|  | 78 | selected = white, lightgray | 
|  | 79 | jump_arrows = blue, default | 
|  | 80 | addr = magenta, default | 
|  | 81 | root = white, blue | 
|  | 82 |  | 
|  | 83 | [tui] | 
|  | 84 | # Defaults if linked with libslang | 
|  | 85 | report = on | 
|  | 86 | annotate = on | 
|  | 87 | top = on | 
|  | 88 |  | 
|  | 89 | [buildid] | 
|  | 90 | # Default, disable using /dev/null | 
|  | 91 | dir = ~/.debug | 
|  | 92 |  | 
|  | 93 | [annotate] | 
|  | 94 | # Defaults | 
|  | 95 | hide_src_code = false | 
|  | 96 | use_offset = true | 
|  | 97 | jump_arrows = true | 
|  | 98 | show_nr_jumps = false | 
|  | 99 |  | 
|  | 100 | [help] | 
|  | 101 | # Format can be man, info, web or html | 
|  | 102 | format = man | 
|  | 103 | autocorrect = 0 | 
|  | 104 |  | 
|  | 105 | [ui] | 
|  | 106 | show-headers = true | 
|  | 107 |  | 
|  | 108 | [call-graph] | 
|  | 109 | # fp (framepointer), dwarf | 
|  | 110 | record-mode = fp | 
|  | 111 | print-type = graph | 
|  | 112 | order = caller | 
|  | 113 | sort-key = function | 
|  | 114 |  | 
|  | 115 | [report] | 
|  | 116 | # Defaults | 
|  | 117 | sort_order = comm,dso,symbol | 
|  | 118 | percent-limit = 0 | 
|  | 119 | queue-size = 0 | 
|  | 120 | children = true | 
|  | 121 | group = true | 
|  | 122 |  | 
|  | 123 | You can hide source code of annotate feature setting the config to false with | 
|  | 124 |  | 
|  | 125 | % perf config annotate.hide_src_code=true | 
|  | 126 |  | 
|  | 127 | If you want to add or modify several config items, you can do like | 
|  | 128 |  | 
|  | 129 | % perf config ui.show-headers=false kmem.default=slab | 
|  | 130 |  | 
|  | 131 | To modify the sort order of report functionality in user config file(i.e. `~/.perfconfig`), do | 
|  | 132 |  | 
|  | 133 | % perf config --user report sort-order=srcline | 
|  | 134 |  | 
|  | 135 | To change colors of selected line to other foreground and background colors | 
|  | 136 | in system config file (i.e. `$(sysconf)/perfconfig`), do | 
|  | 137 |  | 
|  | 138 | % perf config --system colors.selected=yellow,green | 
|  | 139 |  | 
|  | 140 | To query the record mode of call graph, do | 
|  | 141 |  | 
|  | 142 | % perf config call-graph.record-mode | 
|  | 143 |  | 
|  | 144 | If you want to know multiple config key/value pairs, you can do like | 
|  | 145 |  | 
|  | 146 | % perf config report.queue-size call-graph.order report.children | 
|  | 147 |  | 
|  | 148 | To query the config value of sort order of call graph in user config file (i.e. `~/.perfconfig`), do | 
|  | 149 |  | 
|  | 150 | % perf config --user call-graph.sort-order | 
|  | 151 |  | 
|  | 152 | To query the config value of buildid directory in system config file (i.e. `$(sysconf)/perfconfig`), do | 
|  | 153 |  | 
|  | 154 | % perf config --system buildid.dir | 
|  | 155 |  | 
|  | 156 | Variables | 
|  | 157 | ~~~~~~~~~ | 
|  | 158 |  | 
|  | 159 | colors.*:: | 
|  | 160 | The variables for customizing the colors used in the output for the | 
|  | 161 | 'report', 'top' and 'annotate' in the TUI. They should specify the | 
|  | 162 | foreground and background colors, separated by a comma, for example: | 
|  | 163 |  | 
|  | 164 | medium = green, lightgray | 
|  | 165 |  | 
|  | 166 | If you want to use the color configured for you terminal, just leave it | 
|  | 167 | as 'default', for example: | 
|  | 168 |  | 
|  | 169 | medium = default, lightgray | 
|  | 170 |  | 
|  | 171 | Available colors: | 
|  | 172 | red, yellow, green, cyan, gray, black, blue, | 
|  | 173 | white, default, magenta, lightgray | 
|  | 174 |  | 
|  | 175 | colors.top:: | 
|  | 176 | 'top' means a overhead percentage which is more than 5%. | 
|  | 177 | And values of this variable specify percentage colors. | 
|  | 178 | Basic key values are foreground-color 'red' and | 
|  | 179 | background-color 'default'. | 
|  | 180 | colors.medium:: | 
|  | 181 | 'medium' means a overhead percentage which has more than 0.5%. | 
|  | 182 | Default values are 'green' and 'default'. | 
|  | 183 | colors.normal:: | 
|  | 184 | 'normal' means the rest of overhead percentages | 
|  | 185 | except 'top', 'medium', 'selected'. | 
|  | 186 | Default values are 'lightgray' and 'default'. | 
|  | 187 | colors.selected:: | 
|  | 188 | This selects the colors for the current entry in a list of entries | 
|  | 189 | from sub-commands (top, report, annotate). | 
|  | 190 | Default values are 'black' and 'lightgray'. | 
|  | 191 | colors.jump_arrows:: | 
|  | 192 | Colors for jump arrows on assembly code listings | 
|  | 193 | such as 'jns', 'jmp', 'jane', etc. | 
|  | 194 | Default values are 'blue', 'default'. | 
|  | 195 | colors.addr:: | 
|  | 196 | This selects colors for addresses from 'annotate'. | 
|  | 197 | Default values are 'magenta', 'default'. | 
|  | 198 | colors.root:: | 
|  | 199 | Colors for headers in the output of a sub-commands (top, report). | 
|  | 200 | Default values are 'white', 'blue'. | 
|  | 201 |  | 
|  | 202 | tui.*, gtk.*:: | 
|  | 203 | Subcommands that can be configured here are 'top', 'report' and 'annotate'. | 
|  | 204 | These values are booleans, for example: | 
|  | 205 |  | 
|  | 206 | [tui] | 
|  | 207 | top = true | 
|  | 208 |  | 
|  | 209 | will make the TUI be the default for the 'top' subcommand. Those will be | 
|  | 210 | available if the required libs were detected at tool build time. | 
|  | 211 |  | 
|  | 212 | buildid.*:: | 
|  | 213 | buildid.dir:: | 
|  | 214 | Each executable and shared library in modern distributions comes with a | 
|  | 215 | content based identifier that, if available, will be inserted in a | 
|  | 216 | 'perf.data' file header to, at analysis time find what is needed to do | 
|  | 217 | symbol resolution, code annotation, etc. | 
|  | 218 |  | 
|  | 219 | The recording tools also stores a hard link or copy in a per-user | 
|  | 220 | directory, $HOME/.debug/, of binaries, shared libraries, /proc/kallsyms | 
|  | 221 | and /proc/kcore files to be used at analysis time. | 
|  | 222 |  | 
|  | 223 | The buildid.dir variable can be used to either change this directory | 
|  | 224 | cache location, or to disable it altogether. If you want to disable it, | 
|  | 225 | set buildid.dir to /dev/null. The default is $HOME/.debug | 
|  | 226 |  | 
|  | 227 | annotate.*:: | 
|  | 228 | These options work only for TUI. | 
|  | 229 | These are in control of addresses, jump function, source code | 
|  | 230 | in lines of assembly code from a specific program. | 
|  | 231 |  | 
|  | 232 | annotate.hide_src_code:: | 
|  | 233 | If a program which is analyzed has source code, | 
|  | 234 | this option lets 'annotate' print a list of assembly code with the source code. | 
|  | 235 | For example, let's see a part of a program. There're four lines. | 
|  | 236 | If this option is 'true', they can be printed | 
|  | 237 | without source code from a program as below. | 
|  | 238 |  | 
|  | 239 | │        push   %rbp | 
|  | 240 | │        mov    %rsp,%rbp | 
|  | 241 | │        sub    $0x10,%rsp | 
|  | 242 | │        mov    (%rdi),%rdx | 
|  | 243 |  | 
|  | 244 | But if this option is 'false', source code of the part | 
|  | 245 | can be also printed as below. Default is 'false'. | 
|  | 246 |  | 
|  | 247 | │      struct rb_node *rb_next(const struct rb_node *node) | 
|  | 248 | │      { | 
|  | 249 | │        push   %rbp | 
|  | 250 | │        mov    %rsp,%rbp | 
|  | 251 | │        sub    $0x10,%rsp | 
|  | 252 | │              struct rb_node *parent; | 
|  | 253 | │ | 
|  | 254 | │              if (RB_EMPTY_NODE(node)) | 
|  | 255 | │        mov    (%rdi),%rdx | 
|  | 256 | │              return n; | 
|  | 257 |  | 
|  | 258 | annotate.use_offset:: | 
|  | 259 | Basing on a first address of a loaded function, offset can be used. | 
|  | 260 | Instead of using original addresses of assembly code, | 
|  | 261 | addresses subtracted from a base address can be printed. | 
|  | 262 | Let's illustrate an example. | 
|  | 263 | If a base address is 0XFFFFFFFF81624d50 as below, | 
|  | 264 |  | 
|  | 265 | ffffffff81624d50 <load0> | 
|  | 266 |  | 
|  | 267 | an address on assembly code has a specific absolute address as below | 
|  | 268 |  | 
|  | 269 | ffffffff816250b8:│  mov    0x8(%r14),%rdi | 
|  | 270 |  | 
|  | 271 | but if use_offset is 'true', an address subtracted from a base address is printed. | 
|  | 272 | Default is true. This option is only applied to TUI. | 
|  | 273 |  | 
|  | 274 | 368:│  mov    0x8(%r14),%rdi | 
|  | 275 |  | 
|  | 276 | annotate.jump_arrows:: | 
|  | 277 | There can be jump instruction among assembly code. | 
|  | 278 | Depending on a boolean value of jump_arrows, | 
|  | 279 | arrows can be printed or not which represent | 
|  | 280 | where do the instruction jump into as below. | 
|  | 281 |  | 
|  | 282 | │     ┌──jmp    1333 | 
|  | 283 | │     │  xchg   %ax,%ax | 
|  | 284 | │1330:│  mov    %r15,%r10 | 
|  | 285 | │1333:└─→cmp    %r15,%r14 | 
|  | 286 |  | 
|  | 287 | If jump_arrow is 'false', the arrows isn't printed as below. | 
|  | 288 | Default is 'false'. | 
|  | 289 |  | 
|  | 290 | │      ↓ jmp    1333 | 
|  | 291 | │        xchg   %ax,%ax | 
|  | 292 | │1330:   mov    %r15,%r10 | 
|  | 293 | │1333:   cmp    %r15,%r14 | 
|  | 294 |  | 
|  | 295 | annotate.show_linenr:: | 
|  | 296 | When showing source code if this option is 'true', | 
|  | 297 | line numbers are printed as below. | 
|  | 298 |  | 
|  | 299 | │1628         if (type & PERF_SAMPLE_IDENTIFIER) { | 
|  | 300 | │     ↓ jne    508 | 
|  | 301 | │1628                 data->id = *array; | 
|  | 302 | │1629                 array++; | 
|  | 303 | │1630         } | 
|  | 304 |  | 
|  | 305 | However if this option is 'false', they aren't printed as below. | 
|  | 306 | Default is 'false'. | 
|  | 307 |  | 
|  | 308 | │             if (type & PERF_SAMPLE_IDENTIFIER) { | 
|  | 309 | │     ↓ jne    508 | 
|  | 310 | │                     data->id = *array; | 
|  | 311 | │                     array++; | 
|  | 312 | │             } | 
|  | 313 |  | 
|  | 314 | annotate.show_nr_jumps:: | 
|  | 315 | Let's see a part of assembly code. | 
|  | 316 |  | 
|  | 317 | │1382:   movb   $0x1,-0x270(%rbp) | 
|  | 318 |  | 
|  | 319 | If use this, the number of branches jumping to that address can be printed as below. | 
|  | 320 | Default is 'false'. | 
|  | 321 |  | 
|  | 322 | │1 1382:   movb   $0x1,-0x270(%rbp) | 
|  | 323 |  | 
|  | 324 | annotate.show_total_period:: | 
|  | 325 | To compare two records on an instruction base, with this option | 
|  | 326 | provided, display total number of samples that belong to a line | 
|  | 327 | in assembly code. If this option is 'true', total periods are printed | 
|  | 328 | instead of percent values as below. | 
|  | 329 |  | 
|  | 330 | 302 │      mov    %eax,%eax | 
|  | 331 |  | 
|  | 332 | But if this option is 'false', percent values for overhead are printed i.e. | 
|  | 333 | Default is 'false'. | 
|  | 334 |  | 
|  | 335 | 99.93 │      mov    %eax,%eax | 
|  | 336 |  | 
|  | 337 | annotate.offset_level:: | 
|  | 338 | Default is '1', meaning just jump targets will have offsets show right beside | 
|  | 339 | the instruction. When set to '2' 'call' instructions will also have its offsets | 
|  | 340 | shown, 3 or higher will show offsets for all instructions. | 
|  | 341 |  | 
|  | 342 | hist.*:: | 
|  | 343 | hist.percentage:: | 
|  | 344 | This option control the way to calculate overhead of filtered entries - | 
|  | 345 | that means the value of this option is effective only if there's a | 
|  | 346 | filter (by comm, dso or symbol name). Suppose a following example: | 
|  | 347 |  | 
|  | 348 | Overhead  Symbols | 
|  | 349 | ........  ....... | 
|  | 350 | 33.33%     foo | 
|  | 351 | 33.33%     bar | 
|  | 352 | 33.33%     baz | 
|  | 353 |  | 
|  | 354 | This is an original overhead and we'll filter out the first 'foo' | 
|  | 355 | entry. The value of 'relative' would increase the overhead of 'bar' | 
|  | 356 | and 'baz' to 50.00% for each, while 'absolute' would show their | 
|  | 357 | current overhead (33.33%). | 
|  | 358 |  | 
|  | 359 | ui.*:: | 
|  | 360 | ui.show-headers:: | 
|  | 361 | This option controls display of column headers (like 'Overhead' and 'Symbol') | 
|  | 362 | in 'report' and 'top'. If this option is false, they are hidden. | 
|  | 363 | This option is only applied to TUI. | 
|  | 364 |  | 
|  | 365 | call-graph.*:: | 
|  | 366 | When sub-commands 'top' and 'report' work with -g/—-children | 
|  | 367 | there're options in control of call-graph. | 
|  | 368 |  | 
|  | 369 | call-graph.record-mode:: | 
|  | 370 | The record-mode can be 'fp' (frame pointer), 'dwarf' and 'lbr'. | 
|  | 371 | The value of 'dwarf' is effective only if perf detect needed library | 
|  | 372 | (libunwind or a recent version of libdw). | 
|  | 373 | 'lbr' only work for cpus that support it. | 
|  | 374 |  | 
|  | 375 | call-graph.dump-size:: | 
|  | 376 | The size of stack to dump in order to do post-unwinding. Default is 8192 (byte). | 
|  | 377 | When using dwarf into record-mode, the default size will be used if omitted. | 
|  | 378 |  | 
|  | 379 | call-graph.print-type:: | 
|  | 380 | The print-types can be graph (graph absolute), fractal (graph relative), | 
|  | 381 | flat and folded. This option controls a way to show overhead for each callchain | 
|  | 382 | entry. Suppose a following example. | 
|  | 383 |  | 
|  | 384 | Overhead  Symbols | 
|  | 385 | ........  ....... | 
|  | 386 | 40.00%  foo | 
|  | 387 | | | 
|  | 388 | ---foo | 
|  | 389 | | | 
|  | 390 | |--50.00%--bar | 
|  | 391 | |          main | 
|  | 392 | | | 
|  | 393 | --50.00%--baz | 
|  | 394 | main | 
|  | 395 |  | 
|  | 396 | This output is a 'fractal' format. The 'foo' came from 'bar' and 'baz' exactly | 
|  | 397 | half and half so 'fractal' shows 50.00% for each | 
|  | 398 | (meaning that it assumes 100% total overhead of 'foo'). | 
|  | 399 |  | 
|  | 400 | The 'graph' uses absolute overhead value of 'foo' as total so each of | 
|  | 401 | 'bar' and 'baz' callchain will have 20.00% of overhead. | 
|  | 402 | If 'flat' is used, single column and linear exposure of call chains. | 
|  | 403 | 'folded' mean call chains are displayed in a line, separated by semicolons. | 
|  | 404 |  | 
|  | 405 | call-graph.order:: | 
|  | 406 | This option controls print order of callchains. The default is | 
|  | 407 | 'callee' which means callee is printed at top and then followed by its | 
|  | 408 | caller and so on. The 'caller' prints it in reverse order. | 
|  | 409 |  | 
|  | 410 | If this option is not set and report.children or top.children is | 
|  | 411 | set to true (or the equivalent command line option is given), | 
|  | 412 | the default value of this option is changed to 'caller' for the | 
|  | 413 | execution of 'perf report' or 'perf top'. Other commands will | 
|  | 414 | still default to 'callee'. | 
|  | 415 |  | 
|  | 416 | call-graph.sort-key:: | 
|  | 417 | The callchains are merged if they contain same information. | 
|  | 418 | The sort-key option determines a way to compare the callchains. | 
|  | 419 | A value of 'sort-key' can be 'function' or 'address'. | 
|  | 420 | The default is 'function'. | 
|  | 421 |  | 
|  | 422 | call-graph.threshold:: | 
|  | 423 | When there're many callchains it'd print tons of lines. So perf omits | 
|  | 424 | small callchains under a certain overhead (threshold) and this option | 
|  | 425 | control the threshold. Default is 0.5 (%). The overhead is calculated | 
|  | 426 | by value depends on call-graph.print-type. | 
|  | 427 |  | 
|  | 428 | call-graph.print-limit:: | 
|  | 429 | This is a maximum number of lines of callchain printed for a single | 
|  | 430 | histogram entry. Default is 0 which means no limitation. | 
|  | 431 |  | 
|  | 432 | report.*:: | 
|  | 433 | report.sort_order:: | 
|  | 434 | Allows changing the default sort order from "comm,dso,symbol" to | 
|  | 435 | some other default, for instance "sym,dso" may be more fitting for | 
|  | 436 | kernel developers. | 
|  | 437 | report.percent-limit:: | 
|  | 438 | This one is mostly the same as call-graph.threshold but works for | 
|  | 439 | histogram entries. Entries having an overhead lower than this | 
|  | 440 | percentage will not be printed. Default is '0'. If percent-limit | 
|  | 441 | is '10', only entries which have more than 10% of overhead will be | 
|  | 442 | printed. | 
|  | 443 |  | 
|  | 444 | report.queue-size:: | 
|  | 445 | This option sets up the maximum allocation size of the internal | 
|  | 446 | event queue for ordering events. Default is 0, meaning no limit. | 
|  | 447 |  | 
|  | 448 | report.children:: | 
|  | 449 | 'Children' means functions called from another function. | 
|  | 450 | If this option is true, 'perf report' cumulates callchains of children | 
|  | 451 | and show (accumulated) total overhead as well as 'Self' overhead. | 
|  | 452 | Please refer to the 'perf report' manual. The default is 'true'. | 
|  | 453 |  | 
|  | 454 | report.group:: | 
|  | 455 | This option is to show event group information together. | 
|  | 456 | Example output with this turned on, notice that there is one column | 
|  | 457 | per event in the group, ref-cycles and cycles: | 
|  | 458 |  | 
|  | 459 | # group: {ref-cycles,cycles} | 
|  | 460 | # ======== | 
|  | 461 | # | 
|  | 462 | # Samples: 7K of event 'anon group { ref-cycles, cycles }' | 
|  | 463 | # Event count (approx.): 6876107743 | 
|  | 464 | # | 
|  | 465 | #         Overhead  Command      Shared Object               Symbol | 
|  | 466 | # ................  .......  .................  ................... | 
|  | 467 | # | 
|  | 468 | 99.84%  99.76%  noploop  noploop            [.] main | 
|  | 469 | 0.07%   0.00%  noploop  ld-2.15.so         [.] strcmp | 
|  | 470 | 0.03%   0.00%  noploop  [kernel.kallsyms]  [k] timerqueue_del | 
|  | 471 |  | 
|  | 472 | top.*:: | 
|  | 473 | top.children:: | 
|  | 474 | Same as 'report.children'. So if it is enabled, the output of 'top' | 
|  | 475 | command will have 'Children' overhead column as well as 'Self' overhead | 
|  | 476 | column by default. | 
|  | 477 | The default is 'true'. | 
|  | 478 |  | 
|  | 479 | man.*:: | 
|  | 480 | man.viewer:: | 
|  | 481 | This option can assign a tool to view manual pages when 'help' | 
|  | 482 | subcommand was invoked. Supported tools are 'man', 'woman' | 
|  | 483 | (with emacs client) and 'konqueror'. Default is 'man'. | 
|  | 484 |  | 
|  | 485 | New man viewer tool can be also added using 'man.<tool>.cmd' | 
|  | 486 | or use different path using 'man.<tool>.path' config option. | 
|  | 487 |  | 
|  | 488 | pager.*:: | 
|  | 489 | pager.<subcommand>:: | 
|  | 490 | When the subcommand is run on stdio, determine whether it uses | 
|  | 491 | pager or not based on this value. Default is 'unspecified'. | 
|  | 492 |  | 
|  | 493 | kmem.*:: | 
|  | 494 | kmem.default:: | 
|  | 495 | This option decides which allocator is to be analyzed if neither | 
|  | 496 | '--slab' nor '--page' option is used. Default is 'slab'. | 
|  | 497 |  | 
|  | 498 | record.*:: | 
|  | 499 | record.build-id:: | 
|  | 500 | This option can be 'cache', 'no-cache' or 'skip'. | 
|  | 501 | 'cache' is to post-process data and save/update the binaries into | 
|  | 502 | the build-id cache (in ~/.debug). This is the default. | 
|  | 503 | But if this option is 'no-cache', it will not update the build-id cache. | 
|  | 504 | 'skip' skips post-processing and does not update the cache. | 
|  | 505 |  | 
|  | 506 | diff.*:: | 
|  | 507 | diff.order:: | 
|  | 508 | This option sets the number of columns to sort the result. | 
|  | 509 | The default is 0, which means sorting by baseline. | 
|  | 510 | Setting it to 1 will sort the result by delta (or other | 
|  | 511 | compute method selected). | 
|  | 512 |  | 
|  | 513 | diff.compute:: | 
|  | 514 | This options sets the method for computing the diff result. | 
|  | 515 | Possible values are 'delta', 'delta-abs', 'ratio' and | 
|  | 516 | 'wdiff'.  Default is 'delta'. | 
|  | 517 |  | 
|  | 518 | SEE ALSO | 
|  | 519 | -------- | 
|  | 520 | linkperf:perf[1] |