Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) perf-script(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-script - Read perf.data (created by perf record) and display trace output
^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 script' [<options>]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 'perf script' [<options>] record <script> [<record-options>] <command>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 'perf script' [<options>] report <script> [script-args]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 'perf script' [<options>] <script> <required-script-args> [<record-options>] <command>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 'perf script' [<options>] <top-script> [script-args]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) DESCRIPTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) This command reads the input file and displays the trace recorded.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) There are several variants of perf script:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23)   'perf script' to see a detailed trace of the workload that was
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24)   recorded.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)   You can also run a set of pre-canned scripts that aggregate and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27)   summarize the raw trace data in various ways (the list of scripts is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)   available via 'perf script -l').  The following variants allow you to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)   record and run those scripts:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31)   'perf script record <script> <command>' to record the events required
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)   for 'perf script report'.  <script> is the name displayed in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33)   output of 'perf script --list' i.e. the actual script name minus any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)   language extension.  If <command> is not specified, the events are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35)   recorded using the -a (system-wide) 'perf record' option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37)   'perf script report <script> [args]' to run and display the results
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38)   of <script>.  <script> is the name displayed in the output of 'perf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39)   script --list' i.e. the actual script name minus any language
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)   extension.  The perf.data output from a previous run of 'perf script
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41)   record <script>' is used and should be present for this command to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)   succeed.  [args] refers to the (mainly optional) args expected by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43)   the script.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45)   'perf script <script> <required-script-args> <command>' to both
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46)   record the events required for <script> and to run the <script>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47)   using 'live-mode' i.e. without writing anything to disk.  <script>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48)   is the name displayed in the output of 'perf script --list' i.e. the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)   actual script name minus any language extension.  If <command> is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50)   not specified, the events are recorded using the -a (system-wide)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51)   'perf record' option.  If <script> has any required args, they
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52)   should be specified before <command>.  This mode doesn't allow for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53)   optional script args to be specified; if optional script args are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54)   desired, they can be specified using separate 'perf script record'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55)   and 'perf script report' commands, with the stdout of the record step
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)   piped to the stdin of the report script, using the '-o -' and '-i -'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57)   options of the corresponding commands.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59)   'perf script <top-script>' to both record the events required for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)   <top-script> and to run the <top-script> using 'live-mode'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61)   i.e. without writing anything to disk.  <top-script> is the name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)   displayed in the output of 'perf script --list' i.e. the actual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63)   script name minus any language extension; a <top-script> is defined
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64)   as any script name ending with the string 'top'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66)   [<record-options>] can be passed to the record steps of 'perf script
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67)   record' and 'live-mode' variants; this isn't possible however for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68)   <top-script> 'live-mode' or 'perf script report' variants.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)   See the 'SEE ALSO' section for links to language-specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71)   information on how to write and run your own trace scripts.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) -------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) <command>...::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	Any command you can specify in a shell.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) -D::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) --dump-raw-trace=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80)         Display verbose dump of the trace data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) -L::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) --Latency=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)         Show latency attributes (irqs/preemption disabled, etc).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) -l::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) --list=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88)         Display a list of available trace scripts.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) -s ['lang']::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) --script=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92)         Process trace data with the given script ([lang]:script[.ext]).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	If the string 'lang' is specified in place of a script name, a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94)         list of supported languages will be displayed instead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) -g::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) --gen-script=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98)         Generate perf-script.[ext] starter script for given language,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99)         using current perf.data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) -a::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)         Force system-wide collection.  Scripts run without a <command>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)         normally use -a by default, while scripts run with a <command>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)         normally don't - this option allows the latter to be run in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)         system-wide mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) -i::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) --input=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)         Input file name. (default: perf.data unless stdin is a fifo)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) -d::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) --debug-mode::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)         Do various checks like samples ordering and lost events.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) -F::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) --fields::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)         Comma separated list of fields to print. Options are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)         comm, tid, pid, time, cpu, event, trace, ip, sym, dso, addr, symoff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)         srcline, period, iregs, uregs, brstack, brstacksym, flags, bpf-output, brstackinsn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)         brstackoff, callindent, insn, insnlen, synth, phys_addr, metric, misc, srccode, ipc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)         Field list can be prepended with the type, trace, sw or hw,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)         to indicate to which event type the field list applies.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)         e.g., -F sw:comm,tid,time,ip,sym  and -F trace:time,cpu,trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 		perf script -F <fields>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 	is equivalent to:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 		perf script -F trace:<fields> -F sw:<fields> -F hw:<fields>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 	i.e., the specified fields apply to all event types if the type string
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 	is not given.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 	In addition to overriding fields, it is also possible to add or remove
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 	fields from the defaults. For example
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 		-F -cpu,+insn
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 	removes the cpu field and adds the insn field. Adding/removing fields
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 	cannot be mixed with normal overriding.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 	The arguments are processed in the order received. A later usage can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 	reset a prior request. e.g.:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 		-F trace: -F comm,tid,time,ip,sym
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 	The first -F suppresses trace events (field list is ""), but then the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 	second invocation sets the fields to comm,tid,time,ip,sym. In this case a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 	warning is given to the user:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 		"Overriding previous field request for all events."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 	Alternatively, consider the order:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 		-F comm,tid,time,ip,sym -F trace:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 	The first -F sets the fields for all events and the second -F
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 	suppresses trace events. The user is given a warning message about
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 	the override, and the result of the above is that only S/W and H/W
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 	events are displayed with the given fields.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 	It's possible tp add/remove fields only for specific event type:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 		-Fsw:-cpu,-period
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 	removes cpu and period from software events.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 	For the 'wildcard' option if a user selected field is invalid for an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 	event type, a message is displayed to the user that the option is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) 	ignored for that type. For example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 		$ perf script -F comm,tid,trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 		'trace' not valid for hardware events. Ignoring.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 		'trace' not valid for software events. Ignoring.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 	Alternatively, if the type is given an invalid field is specified it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 	is an error. For example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)         perf script -v -F sw:comm,tid,trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)         'trace' not valid for software events.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 	At this point usage is displayed, and perf-script exits.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 	The flags field is synthesized and may have a value when Instruction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 	Trace decoding. The flags are "bcrosyiABEx" which stand for branch,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 	call, return, conditional, system, asynchronous, interrupt,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 	transaction abort, trace begin, trace end, and in transaction,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 	respectively. Known combinations of flags are printed more nicely e.g.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 	"call" for "bc", "return" for "br", "jcc" for "bo", "jmp" for "b",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 	"int" for "bci", "iret" for "bri", "syscall" for "bcs", "sysret" for "brs",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 	"async" for "by", "hw int" for "bcyi", "tx abrt" for "bA", "tr strt" for "bB",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 	"tr end" for "bE". However the "x" flag will be display separately in those
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 	cases e.g. "jcc     (x)" for a condition branch within a transaction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 	The callindent field is synthesized and may have a value when
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 	Instruction Trace decoding. For calls and returns, it will display the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 	name of the symbol indented with spaces to reflect the stack depth.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 	When doing instruction trace decoding insn and insnlen give the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 	instruction bytes and the instruction length of the current
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 	instruction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 	The synth field is used by synthesized events which may be created when
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 	Instruction Trace decoding.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 	The ipc (instructions per cycle) field is synthesized and may have a value when
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 	Instruction Trace decoding.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 	Finally, a user may not set fields to none for all event types.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 	i.e., -F "" is not allowed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 	The brstack output includes branch related information with raw addresses using the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 	/v/v/v/v/cycles syntax in the following order:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 	FROM: branch source instruction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 	TO  : branch target instruction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216)         M/P/-: M=branch target mispredicted or branch direction was mispredicted, P=target predicted or direction predicted, -=not supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 	X/- : X=branch inside a transactional region, -=not in transaction region or not supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 	A/- : A=TSX abort entry, -=not aborted region or not supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 	cycles
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 	The brstacksym is identical to brstack, except that the FROM and TO addresses are printed in a symbolic form if possible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 	When brstackinsn is specified the full assembler sequences of branch sequences for each sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 	is printed. This is the full execution path leading to the sample. This is only supported when the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 	sample was recorded with perf record -b or -j any.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 	The brstackoff field will print an offset into a specific dso/binary.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 	With the metric option perf script can compute metrics for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 	sampling periods, similar to perf stat. This requires
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 	specifying a group with multiple events defining metrics with the :S option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) 	for perf record. perf will sample on the first event, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 	print computed metrics for all the events in the group. Please note
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 	that the metric computed is averaged over the whole sampling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 	period (since the last sample), not just for the sample point.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 	For sample events it's possible to display misc field with -F +misc option,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 	following letters are displayed for each bit:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 	  PERF_RECORD_MISC_KERNEL               K
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) 	  PERF_RECORD_MISC_USER                 U
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 	  PERF_RECORD_MISC_HYPERVISOR           H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 	  PERF_RECORD_MISC_GUEST_KERNEL         G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 	  PERF_RECORD_MISC_GUEST_USER           g
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 	  PERF_RECORD_MISC_MMAP_DATA*           M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) 	  PERF_RECORD_MISC_COMM_EXEC            E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 	  PERF_RECORD_MISC_SWITCH_OUT           S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 	  PERF_RECORD_MISC_SWITCH_OUT_PREEMPT   Sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 	  $ perf script -F +misc ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 	   sched-messaging  1414 K     28690.636582:       4590 cycles ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 	   sched-messaging  1407 U     28690.636600:     325620 cycles ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 	   sched-messaging  1414 K     28690.636608:      19473 cycles ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) 	  misc field ___________/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) -k::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) --vmlinux=<file>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258)         vmlinux pathname
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) --kallsyms=<file>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261)         kallsyms pathname
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) --symfs=<directory>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264)         Look for files with symbols relative to this directory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) -G::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) --hide-call-graph::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268)         When printing symbols do not display call chain.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) --stop-bt::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271)         Stop display of callgraph at these symbols
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) -C::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) --cpu:: Only report samples for the list of CPUs provided. Multiple CPUs can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) 	be provided as a comma-separated list with no space: 0,1. Ranges of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) 	CPUs are specified with -: 0-2. Default is to report samples on all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) 	CPUs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) -c::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) --comms=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) 	Only display events for these comms. CSV that understands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 	file://filename entries.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) --pid=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) 	Only show events for given process ID (comma separated list).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) --tid=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) 	Only show events for given thread ID (comma separated list).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) -I::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) --show-info::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) 	Display extended information about the perf.data file. This adds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) 	information which may be very large and thus may clutter the display.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) 	It currently includes: cpu and numa topology of the host system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) 	It can only be used with the perf script report mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) --show-kernel-path::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) 	Try to resolve the path of [kernel.kallsyms]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) --show-task-events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) 	Display task related events (e.g. FORK, COMM, EXIT).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) --show-mmap-events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) 	Display mmap related events (e.g. MMAP, MMAP2).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) --show-namespace-events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) 	Display namespace events i.e. events of type PERF_RECORD_NAMESPACES.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) --show-switch-events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) 	Display context switch events i.e. events of type PERF_RECORD_SWITCH or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) 	PERF_RECORD_SWITCH_CPU_WIDE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) --show-lost-events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) 	Display lost events i.e. events of type PERF_RECORD_LOST.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) --show-round-events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) 	Display finished round events i.e. events of type PERF_RECORD_FINISHED_ROUND.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) --show-bpf-events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) 	Display bpf events i.e. events of type PERF_RECORD_KSYMBOL and PERF_RECORD_BPF_EVENT.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) --show-cgroup-events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) 	Display cgroup events i.e. events of type PERF_RECORD_CGROUP.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) --show-text-poke-events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) 	Display text poke events i.e. events of type PERF_RECORD_TEXT_POKE and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 	PERF_RECORD_KSYMBOL.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) --demangle::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) 	Demangle symbol names to human readable form. It's enabled by default,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 	disable with --no-demangle.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) --demangle-kernel::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 	Demangle kernel symbol names to human readable form (for C++ kernels).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) --header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 	Show perf.data header.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) --header-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 	Show only perf.data header.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) --itrace::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) 	Options for decoding instruction tracing data. The options are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) include::itrace.txt[]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) 	To disable decoding entirely, use --no-itrace.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) --full-source-path::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 	Show the full path for source files for srcline output.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) --max-stack::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353)         Set the stack depth limit when parsing the callchain, anything
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354)         beyond the specified depth will be ignored. This is a trade-off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355)         between information loss and faster processing especially for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356)         workloads that can have a very long callchain stack.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357)         Note that when using the --itrace option the synthesized callchain size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358)         will override this value if the synthesized callchain size is bigger.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360)         Default: 127
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) --ns::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) 	Use 9 decimal places when displaying time (i.e. show the nanoseconds)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) -f::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) --force::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) 	Don't do ownership validation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) --time::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) 	Only analyze samples within given time window: <start>,<stop>. Times
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) 	have the format seconds.nanoseconds. If start is not given (i.e. time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) 	string is ',x.y') then analysis starts at the beginning of the file. If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) 	stop time is not given (i.e. time string is 'x.y,') then analysis goes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) 	to end of file. Multiple ranges can be separated by spaces, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) 	requires the argument to be quoted e.g. --time "1234.567,1234.789 1235,"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) 	Also support time percent with multiple time ranges. Time string is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) 	'a%/n,b%/m,...' or 'a%-b%,c%-%d,...'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) 	For example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) 	Select the second 10% time slice:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) 	perf script --time 10%/2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) 	Select from 0% to 10% time slice:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) 	perf script --time 0%-10%
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) 	Select the first and second 10% time slices:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) 	perf script --time 10%/1,10%/2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) 	Select from 0% to 10% and 30% to 40% slices:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) 	perf script --time 0%-10%,30%-40%
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) --max-blocks::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) 	Set the maximum number of program blocks to print with brstackinsn for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) 	each sample.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) --reltime::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) 	Print time stamps relative to trace start.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) --deltatime::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) 	Print time stamps relative to previous event.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) --per-event-dump::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) 	Create per event files with a "perf.data.EVENT.dump" name instead of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405)         printing to stdout, useful, for instance, for generating flamegraphs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) --inline::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) 	If a callgraph address belongs to an inlined function, the inline stack
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) 	will be printed. Each entry has function name and file/line. Enabled by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) 	default, disable with --no-inline.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) --insn-trace::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) 	Show instruction stream for intel_pt traces. Combine with --xed to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) 	show disassembly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) --xed::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) 	Run xed disassembler on output. Requires installing the xed disassembler.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) -S::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) --symbols=symbol[,symbol...]::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) 	Only consider the listed symbols. Symbols are typically a name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) 	but they may also be hexadecimal address.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) 	For example, to select the symbol noploop or the address 0x4007a0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) 	perf script --symbols=noploop,0x4007a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) --call-trace::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) 	Show call stream for intel_pt traces. The CPUs are interleaved, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) 	can be filtered with -C.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) --call-ret-trace::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) 	Show call and return stream for intel_pt traces.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) --graph-function::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) 	For itrace only show specified functions and their callees for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) 	itrace. Multiple functions can be separated by comma.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) --switch-on EVENT_NAME::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) 	Only consider events after this event is found.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) --switch-off EVENT_NAME::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) 	Stop considering events after this event is found.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) --show-on-off-events::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) 	Show the --switch-on/off events too.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) --stitch-lbr::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) 	Show callgraph with stitched LBRs, which may have more complete
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) 	callgraph. The perf.data file must have been obtained using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) 	perf record --call-graph lbr.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) 	Disabled by default. In common cases with call stack overflows,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) 	it can recreate better call stacks than the default lbr call stack
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) 	output. But this approach is not full proof. There can be cases
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) 	where it creates incorrect call stacks from incorrect matches.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) 	The known limitations include exception handing such as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) 	setjmp/longjmp will have calls/returns not match.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) SEE ALSO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) linkperf:perf-record[1], linkperf:perf-script-perl[1],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) linkperf:perf-script-python[1], linkperf:perf-intel-pt[1]