| .. | .. |
|---|
| 40 | 40 | The file '$(sysconfdir)/perfconfig' can be used to |
|---|
| 41 | 41 | store a system-wide default configuration. |
|---|
| 42 | 42 | |
|---|
| 43 | +One an disable reading config files by setting the PERF_CONFIG environment |
|---|
| 44 | +variable to /dev/null, or provide an alternate config file by setting that |
|---|
| 45 | +variable. |
|---|
| 46 | + |
|---|
| 43 | 47 | When reading or writing, the values are read from the system and user |
|---|
| 44 | 48 | configuration files by default, and options '--system' and '--user' |
|---|
| 45 | 49 | can be used to tell the command to read from or write to only that location. |
|---|
| .. | .. |
|---|
| 120 | 124 | children = true |
|---|
| 121 | 125 | group = true |
|---|
| 122 | 126 | |
|---|
| 127 | + [llvm] |
|---|
| 128 | + dump-obj = true |
|---|
| 129 | + clang-opt = -g |
|---|
| 130 | + |
|---|
| 123 | 131 | You can hide source code of annotate feature setting the config to false with |
|---|
| 124 | 132 | |
|---|
| 125 | 133 | % perf config annotate.hide_src_code=true |
|---|
| .. | .. |
|---|
| 199 | 207 | Colors for headers in the output of a sub-commands (top, report). |
|---|
| 200 | 208 | Default values are 'white', 'blue'. |
|---|
| 201 | 209 | |
|---|
| 210 | +core.*:: |
|---|
| 211 | + core.proc-map-timeout:: |
|---|
| 212 | + Sets a timeout (in milliseconds) for parsing /proc/<pid>/maps files. |
|---|
| 213 | + Can be overridden by the --proc-map-timeout option on supported |
|---|
| 214 | + subcommands. The default timeout is 500ms. |
|---|
| 215 | + |
|---|
| 202 | 216 | tui.*, gtk.*:: |
|---|
| 203 | 217 | Subcommands that can be configured here are 'top', 'report' and 'annotate'. |
|---|
| 204 | 218 | These values are booleans, for example: |
|---|
| .. | .. |
|---|
| 225 | 239 | set buildid.dir to /dev/null. The default is $HOME/.debug |
|---|
| 226 | 240 | |
|---|
| 227 | 241 | annotate.*:: |
|---|
| 228 | | - These options work only for TUI. |
|---|
| 229 | 242 | These are in control of addresses, jump function, source code |
|---|
| 230 | 243 | in lines of assembly code from a specific program. |
|---|
| 244 | + |
|---|
| 245 | + annotate.disassembler_style: |
|---|
| 246 | + Use this to change the default disassembler style to some other value |
|---|
| 247 | + supported by binutils, such as "intel", see the '-M' option help in the |
|---|
| 248 | + 'objdump' man page. |
|---|
| 231 | 249 | |
|---|
| 232 | 250 | annotate.hide_src_code:: |
|---|
| 233 | 251 | If a program which is analyzed has source code, |
|---|
| .. | .. |
|---|
| 255 | 273 | │ mov (%rdi),%rdx |
|---|
| 256 | 274 | │ return n; |
|---|
| 257 | 275 | |
|---|
| 276 | + This option works with tui, stdio2 browsers. |
|---|
| 277 | + |
|---|
| 258 | 278 | annotate.use_offset:: |
|---|
| 259 | 279 | Basing on a first address of a loaded function, offset can be used. |
|---|
| 260 | 280 | Instead of using original addresses of assembly code, |
|---|
| .. | .. |
|---|
| 272 | 292 | Default is true. This option is only applied to TUI. |
|---|
| 273 | 293 | |
|---|
| 274 | 294 | 368:│ mov 0x8(%r14),%rdi |
|---|
| 295 | + |
|---|
| 296 | + This option works with tui, stdio2 browsers. |
|---|
| 275 | 297 | |
|---|
| 276 | 298 | annotate.jump_arrows:: |
|---|
| 277 | 299 | There can be jump instruction among assembly code. |
|---|
| .. | .. |
|---|
| 292 | 314 | │1330: mov %r15,%r10 |
|---|
| 293 | 315 | │1333: cmp %r15,%r14 |
|---|
| 294 | 316 | |
|---|
| 317 | + This option works with tui browser. |
|---|
| 318 | + |
|---|
| 295 | 319 | annotate.show_linenr:: |
|---|
| 296 | 320 | When showing source code if this option is 'true', |
|---|
| 297 | 321 | line numbers are printed as below. |
|---|
| .. | .. |
|---|
| 311 | 335 | │ array++; |
|---|
| 312 | 336 | │ } |
|---|
| 313 | 337 | |
|---|
| 338 | + This option works with tui, stdio2 browsers. |
|---|
| 339 | + |
|---|
| 314 | 340 | annotate.show_nr_jumps:: |
|---|
| 315 | 341 | Let's see a part of assembly code. |
|---|
| 316 | 342 | |
|---|
| .. | .. |
|---|
| 320 | 346 | Default is 'false'. |
|---|
| 321 | 347 | |
|---|
| 322 | 348 | │1 1382: movb $0x1,-0x270(%rbp) |
|---|
| 349 | + |
|---|
| 350 | + This option works with tui, stdio2 browsers. |
|---|
| 323 | 351 | |
|---|
| 324 | 352 | annotate.show_total_period:: |
|---|
| 325 | 353 | To compare two records on an instruction base, with this option |
|---|
| .. | .. |
|---|
| 334 | 362 | |
|---|
| 335 | 363 | 99.93 │ mov %eax,%eax |
|---|
| 336 | 364 | |
|---|
| 365 | + This option works with tui, stdio2, stdio browsers. |
|---|
| 366 | + |
|---|
| 367 | + annotate.show_nr_samples:: |
|---|
| 368 | + By default perf annotate shows percentage of samples. This option |
|---|
| 369 | + can be used to print absolute number of samples. Ex, when set as |
|---|
| 370 | + false: |
|---|
| 371 | + |
|---|
| 372 | + Percent│ |
|---|
| 373 | + 74.03 │ mov %fs:0x28,%rax |
|---|
| 374 | + |
|---|
| 375 | + When set as true: |
|---|
| 376 | + |
|---|
| 377 | + Samples│ |
|---|
| 378 | + 6 │ mov %fs:0x28,%rax |
|---|
| 379 | + |
|---|
| 380 | + This option works with tui, stdio2, stdio browsers. |
|---|
| 381 | + |
|---|
| 337 | 382 | annotate.offset_level:: |
|---|
| 338 | 383 | Default is '1', meaning just jump targets will have offsets show right beside |
|---|
| 339 | 384 | the instruction. When set to '2' 'call' instructions will also have its offsets |
|---|
| 340 | 385 | shown, 3 or higher will show offsets for all instructions. |
|---|
| 386 | + |
|---|
| 387 | + This option works with tui, stdio2 browsers. |
|---|
| 341 | 388 | |
|---|
| 342 | 389 | hist.*:: |
|---|
| 343 | 390 | hist.percentage:: |
|---|
| .. | .. |
|---|
| 363 | 410 | This option is only applied to TUI. |
|---|
| 364 | 411 | |
|---|
| 365 | 412 | call-graph.*:: |
|---|
| 366 | | - When sub-commands 'top' and 'report' work with -g/—-children |
|---|
| 367 | | - there're options in control of call-graph. |
|---|
| 413 | + The following controls the handling of call-graphs (obtained via the |
|---|
| 414 | + -g/--call-graph options). |
|---|
| 368 | 415 | |
|---|
| 369 | 416 | 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. |
|---|
| 417 | + The mode for user space can be 'fp' (frame pointer), 'dwarf' |
|---|
| 418 | + and 'lbr'. The value 'dwarf' is effective only if libunwind |
|---|
| 419 | + (or a recent version of libdw) is present on the system; |
|---|
| 420 | + the value 'lbr' only works for certain cpus. The method for |
|---|
| 421 | + kernel space is controlled not by this option but by the |
|---|
| 422 | + kernel config (CONFIG_UNWINDER_*). |
|---|
| 374 | 423 | |
|---|
| 375 | 424 | call-graph.dump-size:: |
|---|
| 376 | 425 | The size of stack to dump in order to do post-unwinding. Default is 8192 (byte). |
|---|
| .. | .. |
|---|
| 476 | 525 | column by default. |
|---|
| 477 | 526 | The default is 'true'. |
|---|
| 478 | 527 | |
|---|
| 528 | + top.call-graph:: |
|---|
| 529 | + This is identical to 'call-graph.record-mode', except it is |
|---|
| 530 | + applicable only for 'top' subcommand. This option ONLY setup |
|---|
| 531 | + the unwind method. To enable 'perf top' to actually use it, |
|---|
| 532 | + the command line option -g must be specified. |
|---|
| 533 | + |
|---|
| 479 | 534 | man.*:: |
|---|
| 480 | 535 | man.viewer:: |
|---|
| 481 | 536 | This option can assign a tool to view manual pages when 'help' |
|---|
| .. | .. |
|---|
| 503 | 558 | But if this option is 'no-cache', it will not update the build-id cache. |
|---|
| 504 | 559 | 'skip' skips post-processing and does not update the cache. |
|---|
| 505 | 560 | |
|---|
| 561 | + record.call-graph:: |
|---|
| 562 | + This is identical to 'call-graph.record-mode', except it is |
|---|
| 563 | + applicable only for 'record' subcommand. This option ONLY setup |
|---|
| 564 | + the unwind method. To enable 'perf record' to actually use it, |
|---|
| 565 | + the command line option -g must be specified. |
|---|
| 566 | + |
|---|
| 567 | + record.aio:: |
|---|
| 568 | + Use 'n' control blocks in asynchronous (Posix AIO) trace writing |
|---|
| 569 | + mode ('n' default: 1, max: 4). |
|---|
| 570 | + |
|---|
| 506 | 571 | diff.*:: |
|---|
| 507 | 572 | diff.order:: |
|---|
| 508 | 573 | This option sets the number of columns to sort the result. |
|---|
| .. | .. |
|---|
| 515 | 580 | Possible values are 'delta', 'delta-abs', 'ratio' and |
|---|
| 516 | 581 | 'wdiff'. Default is 'delta'. |
|---|
| 517 | 582 | |
|---|
| 583 | +trace.*:: |
|---|
| 584 | + trace.add_events:: |
|---|
| 585 | + Allows adding a set of events to add to the ones specified |
|---|
| 586 | + by the user, or use as a default one if none was specified. |
|---|
| 587 | + The initial use case is to add augmented_raw_syscalls.o to |
|---|
| 588 | + activate the 'perf trace' logic that looks for syscall |
|---|
| 589 | + pointer contents after the normal tracepoint payload. |
|---|
| 590 | + |
|---|
| 591 | + trace.args_alignment:: |
|---|
| 592 | + Number of columns to align the argument list, default is 70, |
|---|
| 593 | + use 40 for the strace default, zero to no alignment. |
|---|
| 594 | + |
|---|
| 595 | + trace.no_inherit:: |
|---|
| 596 | + Do not follow children threads. |
|---|
| 597 | + |
|---|
| 598 | + trace.show_arg_names:: |
|---|
| 599 | + Should syscall argument names be printed? If not then trace.show_zeros |
|---|
| 600 | + will be set. |
|---|
| 601 | + |
|---|
| 602 | + trace.show_duration:: |
|---|
| 603 | + Show syscall duration. |
|---|
| 604 | + |
|---|
| 605 | + trace.show_prefix:: |
|---|
| 606 | + If set to 'yes' will show common string prefixes in tables. The default |
|---|
| 607 | + is to remove the common prefix in things like "MAP_SHARED", showing just "SHARED". |
|---|
| 608 | + |
|---|
| 609 | + trace.show_timestamp:: |
|---|
| 610 | + Show syscall start timestamp. |
|---|
| 611 | + |
|---|
| 612 | + trace.show_zeros:: |
|---|
| 613 | + Do not suppress syscall arguments that are equal to zero. |
|---|
| 614 | + |
|---|
| 615 | + trace.tracepoint_beautifiers:: |
|---|
| 616 | + Use "libtraceevent" to use that library to augment the tracepoint arguments, |
|---|
| 617 | + "libbeauty", the default, to use the same argument beautifiers used in the |
|---|
| 618 | + strace-like sys_enter+sys_exit lines. |
|---|
| 619 | + |
|---|
| 620 | +ftrace.*:: |
|---|
| 621 | + ftrace.tracer:: |
|---|
| 622 | + Can be used to select the default tracer when neither -G nor |
|---|
| 623 | + -F option is not specified. Possible values are 'function' and |
|---|
| 624 | + 'function_graph'. |
|---|
| 625 | + |
|---|
| 626 | +llvm.*:: |
|---|
| 627 | + llvm.clang-path:: |
|---|
| 628 | + Path to clang. If omit, search it from $PATH. |
|---|
| 629 | + |
|---|
| 630 | + llvm.clang-bpf-cmd-template:: |
|---|
| 631 | + Cmdline template. Below lines show its default value. Environment |
|---|
| 632 | + variable is used to pass options. |
|---|
| 633 | + "$CLANG_EXEC -D__KERNEL__ -D__NR_CPUS__=$NR_CPUS "\ |
|---|
| 634 | + "-DLINUX_VERSION_CODE=$LINUX_VERSION_CODE " \ |
|---|
| 635 | + "$CLANG_OPTIONS $PERF_BPF_INC_OPTIONS $KERNEL_INC_OPTIONS " \ |
|---|
| 636 | + "-Wno-unused-value -Wno-pointer-sign " \ |
|---|
| 637 | + "-working-directory $WORKING_DIR " \ |
|---|
| 638 | + "-c \"$CLANG_SOURCE\" -target bpf $CLANG_EMIT_LLVM -O2 -o - $LLVM_OPTIONS_PIPE" |
|---|
| 639 | + |
|---|
| 640 | + llvm.clang-opt:: |
|---|
| 641 | + Options passed to clang. |
|---|
| 642 | + |
|---|
| 643 | + llvm.kbuild-dir:: |
|---|
| 644 | + kbuild directory. If not set, use /lib/modules/`uname -r`/build. |
|---|
| 645 | + If set to "" deliberately, skip kernel header auto-detector. |
|---|
| 646 | + |
|---|
| 647 | + llvm.kbuild-opts:: |
|---|
| 648 | + Options passed to 'make' when detecting kernel header options. |
|---|
| 649 | + |
|---|
| 650 | + llvm.dump-obj:: |
|---|
| 651 | + Enable perf dump BPF object files compiled by LLVM. |
|---|
| 652 | + |
|---|
| 653 | + llvm.opts:: |
|---|
| 654 | + Options passed to llc. |
|---|
| 655 | + |
|---|
| 656 | +samples.*:: |
|---|
| 657 | + |
|---|
| 658 | + samples.context:: |
|---|
| 659 | + Define how many ns worth of time to show |
|---|
| 660 | + around samples in perf report sample context browser. |
|---|
| 661 | + |
|---|
| 662 | +scripts.*:: |
|---|
| 663 | + |
|---|
| 664 | + Any option defines a script that is added to the scripts menu |
|---|
| 665 | + in the interactive perf browser and whose output is displayed. |
|---|
| 666 | + The name of the option is the name, the value is a script command line. |
|---|
| 667 | + The script gets the same options passed as a full perf script, |
|---|
| 668 | + in particular -i perfdata file, --cpu, --tid |
|---|
| 669 | + |
|---|
| 670 | +convert.*:: |
|---|
| 671 | + |
|---|
| 672 | + convert.queue-size:: |
|---|
| 673 | + Limit the size of ordered_events queue, so we could control |
|---|
| 674 | + allocation size of perf data files without proper finished |
|---|
| 675 | + round events. |
|---|
| 676 | +stat.*:: |
|---|
| 677 | + |
|---|
| 678 | + stat.big-num:: |
|---|
| 679 | + (boolean) Change the default for "--big-num". To make |
|---|
| 680 | + "--no-big-num" the default, set "stat.big-num=false". |
|---|
| 681 | + |
|---|
| 682 | +intel-pt.*:: |
|---|
| 683 | + |
|---|
| 684 | + intel-pt.cache-divisor:: |
|---|
| 685 | + |
|---|
| 686 | + intel-pt.mispred-all:: |
|---|
| 687 | + If set, Intel PT decoder will set the mispred flag on all |
|---|
| 688 | + branches. |
|---|
| 689 | + |
|---|
| 690 | +auxtrace.*:: |
|---|
| 691 | + |
|---|
| 692 | + auxtrace.dumpdir:: |
|---|
| 693 | + s390 only. The directory to save the auxiliary trace buffer |
|---|
| 694 | + can be changed using this option. Ex, auxtrace.dumpdir=/tmp. |
|---|
| 695 | + If the directory does not exist or has the wrong file type, |
|---|
| 696 | + the current directory is used. |
|---|
| 697 | + |
|---|
| 518 | 698 | SEE ALSO |
|---|
| 519 | 699 | -------- |
|---|
| 520 | 700 | linkperf:perf[1] |
|---|