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-report(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-report - Read perf.data (created by perf record) and display the profile
^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 report' [-i <file> | --input=file]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) DESCRIPTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) This command displays the performance counter profile information recorded
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) via perf record.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) -------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) -i::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) --input=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22)         Input file name. (default: perf.data unless stdin is a fifo)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) -v::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) --verbose::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)         Be more verbose. (show symbol address, etc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) -q::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) --quiet::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 	Do not show any message.  (Suppress -v)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) -n::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) --show-nr-samples::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 	Show the number of samples for each symbol
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) --show-cpu-utilization::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37)         Show sample percentage for different cpu modes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) -T::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) --threads::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 	Show per-thread event counters.  The input data file should be recorded
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	with -s option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) -c::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) --comms=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 	Only consider symbols in these comms. CSV that understands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	file://filename entries.  This option will affect the percentage of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	the overhead column.  See --percentage for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) --pid=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)         Only show events for given process ID (comma separated list).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) --tid=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52)         Only show events for given thread ID (comma separated list).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) -d::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) --dsos=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	Only consider symbols in these dsos. CSV that understands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	file://filename entries.  This option will affect the percentage of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	the overhead column.  See --percentage for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) -S::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) --symbols=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 	Only consider these symbols. CSV that understands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 	file://filename entries.  This option will affect the percentage of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	the overhead column.  See --percentage for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) --symbol-filter=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	Only show symbols that match (partially) with this filter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) -U::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) --hide-unresolved::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69)         Only display entries resolved to a symbol.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) -s::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) --sort=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	Sort histogram entries by given key(s) - multiple keys can be specified
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	in CSV format.  Following sort keys are available:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	pid, comm, dso, symbol, parent, cpu, socket, srcline, weight,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	local_weight, cgroup_id.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	Each key has following meaning:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 	- comm: command (name) of the task which can be read via /proc/<pid>/comm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	- pid: command and tid of the task
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	- dso: name of library or module executed at the time of sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	- dso_size: size of library or module executed at the time of sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	- symbol: name of function executed at the time of sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	- symbol_size: size of function executed at the time of sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	- parent: name of function matched to the parent regex filter. Unmatched
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	entries are displayed as "[other]".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	- cpu: cpu number the task ran at the time of sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	- socket: processor socket number the task ran at the time of sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	- srcline: filename and line number executed at the time of sample.  The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 	DWARF debugging info must be provided.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 	- srcfile: file name of the source file of the samples. Requires dwarf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	- weight: Event specific weight, e.g. memory latency or transaction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	abort cost. This is the global weight.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	- local_weight: Local weight version of the weight above.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	- cgroup_id: ID derived from cgroup namespace device and inode numbers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	- cgroup: cgroup pathname in the cgroupfs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	- transaction: Transaction abort flags.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 	- overhead: Overhead percentage of sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	- overhead_sys: Overhead percentage of sample running in system mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	- overhead_us: Overhead percentage of sample running in user mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	- overhead_guest_sys: Overhead percentage of sample running in system mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 	on guest machine
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	- overhead_guest_us: Overhead percentage of sample running in user mode on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 	guest machine
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	- sample: Number of sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	- period: Raw number of event count of sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 	- time: Separate the samples by time stamp with the resolution specified by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	--time-quantum (default 100ms). Specify with overhead and before it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	By default, comm, dso and symbol keys are used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 	(i.e. --sort comm,dso,symbol)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	If --branch-stack option is used, following sort keys are also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	available:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	- dso_from: name of library or module branched from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 	- dso_to: name of library or module branched to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	- symbol_from: name of function branched from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 	- symbol_to: name of function branched to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 	- srcline_from: source file and line branched from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 	- srcline_to: source file and line branched to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 	- mispredict: "N" for predicted branch, "Y" for mispredicted branch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 	- in_tx: branch in TSX transaction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 	- abort: TSX transaction abort.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 	- cycles: Cycles in basic block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 	And default sort keys are changed to comm, dso_from, symbol_from, dso_to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 	and symbol_to, see '--branch-stack'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 	When the sort key symbol is specified, columns "IPC" and "IPC Coverage"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 	are enabled automatically. Column "IPC" reports the average IPC per function
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 	and column "IPC coverage" reports the percentage of instructions with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 	sampled IPC in this function. IPC means Instruction Per Cycle. If it's low,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 	it indicates there may be a performance bottleneck when the function is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 	executed, such as a memory access bottleneck. If a function has high overhead
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 	and low IPC, it's worth further analyzing it to optimize its performance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 	If the --mem-mode option is used, the following sort keys are also available
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 	(incompatible with --branch-stack):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 	symbol_daddr, dso_daddr, locked, tlb, mem, snoop, dcacheline.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 	- symbol_daddr: name of data symbol being executed on at the time of sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 	- dso_daddr: name of library or module containing the data being executed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 	on at the time of the sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 	- locked: whether the bus was locked at the time of the sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 	- tlb: type of tlb access for the data at the time of the sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 	- mem: type of memory access for the data at the time of the sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 	- snoop: type of snoop (if any) for the data at the time of the sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 	- dcacheline: the cacheline the data address is on at the time of the sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 	- phys_daddr: physical address of data being executed on at the time of sample
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 	And the default sort keys are changed to local_weight, mem, sym, dso,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 	symbol_daddr, dso_daddr, snoop, tlb, locked, see '--mem-mode'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 	If the data file has tracepoint event(s), following (dynamic) sort keys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 	are also available:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 	trace, trace_fields, [<event>.]<field>[/raw]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 	- trace: pretty printed trace output in a single column
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 	- trace_fields: fields in tracepoints in separate columns
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 	- <field name>: optional event and field name for a specific field
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 	The last form consists of event and field names.  If event name is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 	omitted, it searches all events for matching field name.  The matched
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 	field will be shown only for the event has the field.  The event name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 	supports substring match so user doesn't need to specify full subsystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 	and event name everytime.  For example, 'sched:sched_switch' event can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) 	be shortened to 'switch' as long as it's not ambiguous.  Also event can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 	be specified by its index (starting from 1) preceded by the '%'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 	So '%1' is the first event, '%2' is the second, and so on.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 	The field name can have '/raw' suffix which disables pretty printing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 	and shows raw field value like hex numbers.  The --raw-trace option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 	has the same effect for all dynamic sort keys.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 	The default sort keys are changed to 'trace' if all events in the data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 	file are tracepoint.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) -F::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) --fields=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 	Specify output field - multiple keys can be specified in CSV format.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 	Following fields are available:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 	overhead, overhead_sys, overhead_us, overhead_children, sample and period.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 	Also it can contain any sort key(s).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 	By default, every sort keys not specified in -F will be appended
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 	automatically.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 	If the keys starts with a prefix '+', then it will append the specified
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192)         field(s) to the default field order. For example: perf report -F +period,sample.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) -p::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) --parent=<regex>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)         A regex filter to identify parent. The parent is a caller of this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 	function and searched through the callchain, thus it requires callchain
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 	information recorded. The pattern is in the extended regex format and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 	defaults to "\^sys_|^do_page_fault", see '--sort parent'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) -x::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) --exclude-other::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203)         Only display entries with parent-match.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) -w::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) --column-widths=<width[,width...]>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 	Force each column width to the provided list, for large terminal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 	readability.  0 means no limit (default behavior).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) -t::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) --field-separator=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 	Use a special separator character and don't pad with spaces, replacing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 	all occurrences of this separator in symbol names (and other output)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 	with a '.' character, that thus it's the only non valid separator.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) -D::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) --dump-raw-trace::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218)         Dump raw trace in ASCII.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) -g::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) --call-graph=<print_type,threshold[,print_limit],order,sort_key[,branch],value>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222)         Display call chains using type, min percent threshold, print limit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 	call order, sort key, optional branch and value.  Note that ordering
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 	is not fixed so any parameter can be given in an arbitrary order.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 	One exception is the print_limit which should be preceded by threshold.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 	print_type can be either:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) 	- flat: single column, linear exposure of call chains.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 	- graph: use a graph tree, displaying absolute overhead rates. (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 	- fractal: like graph, but displays relative rates. Each branch of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 		 the tree is considered as a new profiled object.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) 	- folded: call chains are displayed in a line, separated by semicolons
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 	- none: disable call chain display.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 	threshold is a percentage value which specifies a minimum percent to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 	included in the output call graph.  Default is 0.5 (%).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 	print_limit is only applied when stdio interface is used.  It's to limit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 	number of call graph entries in a single hist entry.  Note that it needs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 	to be given after threshold (but not necessarily consecutive).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) 	Default is 0 (unlimited).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 	order can be either:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 	- callee: callee based call graph.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 	- caller: inverted caller based call graph.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) 	Default is 'caller' when --children is used, otherwise 'callee'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 	sort_key can be:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 	- function: compare on functions (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 	- address: compare on individual code addresses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 	- srcline: compare on source filename and line number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 	branch can be:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) 	- branch: include last branch information in callgraph when available.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 	          Usually more convenient to use --branch-history for this.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 	value can be:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 	- percent: display overhead percent (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 	- period: display event period
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) 	- count: display event count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) --children::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) 	Accumulate callchain of children to parent entry so that then can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) 	show up in the output.  The output will have a new "Children" column
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 	and will be sorted on the data.  It requires callchains are recorded.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) 	See the `overhead calculation' section for more details. Enabled by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 	default, disable with --no-children.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) --max-stack::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 	Set the stack depth limit when parsing the callchain, anything
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 	beyond the specified depth will be ignored. This is a trade-off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 	between information loss and faster processing especially for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) 	workloads that can have a very long callchain stack.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 	Note that when using the --itrace option the synthesized callchain size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) 	will override this value if the synthesized callchain size is bigger.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) 	Default: 127
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) -G::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) --inverted::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281)         alias for inverted caller based call graph.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) --ignore-callees=<regex>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284)         Ignore callees of the function(s) matching the given regex.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285)         This has the effect of collecting the callers of each such
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286)         function into one place in the call-graph tree.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) --pretty=<key>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289)         Pretty printing style.  key: normal, raw
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) --stdio:: Use the stdio interface.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) --stdio-color::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) 	'always', 'never' or 'auto', allowing configuring color output
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) 	via the command line, in addition to via "color.ui" .perfconfig.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) 	Use '--stdio-color always' to generate color even when redirecting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) 	to a pipe or file. Using just '--stdio-color' is equivalent to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) 	using 'always'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) --tui:: Use the TUI interface, that is integrated with annotate and allows
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301)         zooming into DSOs or threads, among other features. Use of --tui
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) 	requires a tty, if one is not present, as when piping to other
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) 	commands, the stdio interface is used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) --gtk:: Use the GTK2 interface.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) -k::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) --vmlinux=<file>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309)         vmlinux pathname
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) --ignore-vmlinux::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) 	Ignore vmlinux files.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) --kallsyms=<file>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315)         kallsyms pathname
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) -m::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) --modules::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319)         Load module symbols. WARNING: This should only be used with -k and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320)         a LIVE kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) -f::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) --force::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324)         Don't do ownership validation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) --symfs=<directory>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327)         Look for files with symbols relative to this directory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) -C::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) --cpu:: Only report samples for the list of CPUs provided. Multiple CPUs can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 	be provided as a comma-separated list with no space: 0,1. Ranges of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 	CPUs are specified with -: 0-2. Default is to report samples on all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) 	CPUs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) -M::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) --disassembler-style=:: Set disassembler style for objdump.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) --source::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) 	Interleave source code with assembly code. Enabled by default,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 	disable with --no-source.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) --asm-raw::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) 	Show raw instruction encoding of assembly instructions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) --show-total-period:: Show a column with the sum of periods.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) -I::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) --show-info::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) 	Display extended information about the perf.data file. This adds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 	information which may be very large and thus may clutter the display.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) 	It currently includes: cpu and numa topology of the host system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) -b::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) --branch-stack::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) 	Use the addresses of sampled taken branches instead of the instruction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) 	address to build the histograms. To generate meaningful output, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) 	perf.data file must have been obtained using perf record -b or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) 	perf record --branch-filter xxx where xxx is a branch filter option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) 	perf report is able to auto-detect whether a perf.data file contains
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) 	branch stacks and it will automatically switch to the branch view mode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) 	unless --no-branch-stack is used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) --branch-history::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) 	Add the addresses of sampled taken branches to the callstack.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) 	This allows to examine the path the program took to each sample.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) 	The data collection must have used -b (or -j) and -g.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) --objdump=<path>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369)         Path to objdump binary.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) --prefix=PREFIX::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) --prefix-strip=N::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) 	Remove first N entries from source file path names in executables
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) 	and add PREFIX. This allows to display source code compiled on systems
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) 	with different file system layout.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) --group::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) 	Show event group information together. It forces group output also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) 	if there are no groups defined in data file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) --group-sort-idx::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) 	Sort the output by the event at the index n in group. If n is invalid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) 	sort by the first event. It can support multiple groups with different
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) 	amount of events. WARNING: This should be used on grouped events.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) --demangle::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) 	Demangle symbol names to human readable form. It's enabled by default,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) 	disable with --no-demangle.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) --demangle-kernel::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) 	Demangle kernel symbol names to human readable form (for C++ kernels).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) --mem-mode::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) 	Use the data addresses of samples in addition to instruction addresses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) 	to build the histograms.  To generate meaningful output, the perf.data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) 	file must have been obtained using perf record -d -W and using a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) 	special event -e cpu/mem-loads/p or -e cpu/mem-stores/p. See
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) 	'perf mem' for simpler access.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) --percent-limit::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) 	Do not show entries which have an overhead under that percent.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) 	(Default: 0).  Note that this option also sets the percent limit (threshold)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) 	of callchains.  However the default value of callchain threshold is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) 	different than the default value of hist entries.  Please see the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) 	--call-graph option for details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) --percentage::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) 	Determine how to display the overhead percentage of filtered entries.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) 	Filters can be applied by --comms, --dsos and/or --symbols options and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) 	Zoom operations on the TUI (thread, dso, etc).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) 	"relative" means it's relative to filtered entries only so that the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) 	sum of shown entries will be always 100%.  "absolute" means it retains
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) 	the original value before and after the filter is applied.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) --header::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) 	Show header information in the perf.data file.  This includes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) 	various information like hostname, OS and perf version, cpu/mem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) 	info, perf command line, event list and so on.  Currently only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) 	--stdio output supports this feature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) --header-only::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) 	Show only perf.data header (forces --stdio).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) --time::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) 	Only analyze samples within given time window: <start>,<stop>. Times
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) 	have the format seconds.nanoseconds. If start is not given (i.e. time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) 	string is ',x.y') then analysis starts at the beginning of the file. If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) 	stop time is not given (i.e. time string is 'x.y,') then analysis goes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) 	to end of file. Multiple ranges can be separated by spaces, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) 	requires the argument to be quoted e.g. --time "1234.567,1234.789 1235,"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) 	Also support time percent with multiple time ranges. Time string is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) 	'a%/n,b%/m,...' or 'a%-b%,c%-%d,...'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) 	For example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) 	Select the second 10% time slice:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) 	  perf report --time 10%/2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) 	Select from 0% to 10% time slice:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) 	  perf report --time 0%-10%
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) 	Select the first and second 10% time slices:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) 	  perf report --time 10%/1,10%/2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) 	Select from 0% to 10% and 30% to 40% slices:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) 	  perf report --time 0%-10%,30%-40%
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) --switch-on EVENT_NAME::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) 	Only consider events after this event is found.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) 	This may be interesting to measure a workload only after some initialization
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) 	phase is over, i.e. insert a perf probe at that point and then using this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) 	option with that probe.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) --switch-off EVENT_NAME::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) 	Stop considering events after this event is found.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) --show-on-off-events::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) 	Show the --switch-on/off events too. This has no effect in 'perf report' now
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) 	but probably we'll make the default not to show the switch-on/off events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466)         on the --group mode and if there is only one event besides the off/on ones,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) 	go straight to the histogram browser, just like 'perf report' with no events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) 	explicitely specified does.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) --itrace::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) 	Options for decoding instruction tracing data. The options are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) include::itrace.txt[]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) 	To disable decoding entirely, use --no-itrace.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) --full-source-path::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) 	Show the full path for source files for srcline output.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) --show-ref-call-graph::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) 	When multiple events are sampled, it may not be needed to collect
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) 	callgraphs for all of them. The sample sites are usually nearby,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) 	and it's enough to collect the callgraphs on a reference event.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) 	So user can use "call-graph=no" event modifier to disable callgraph
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) 	for other events to reduce the overhead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) 	However, perf report cannot show callgraphs for the event which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) 	disable the callgraph.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) 	This option extends the perf report to show reference callgraphs,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) 	which collected by reference event, in no callgraph event.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) --stitch-lbr::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) 	Show callgraph with stitched LBRs, which may have more complete
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) 	callgraph. The perf.data file must have been obtained using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) 	perf record --call-graph lbr.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) 	Disabled by default. In common cases with call stack overflows,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) 	it can recreate better call stacks than the default lbr call stack
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) 	output. But this approach is not full proof. There can be cases
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) 	where it creates incorrect call stacks from incorrect matches.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) 	The known limitations include exception handing such as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) 	setjmp/longjmp will have calls/returns not match.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) --socket-filter::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) 	Only report the samples on the processor socket that match with this filter
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) --samples=N::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) 	Save N individual samples for each histogram entry to show context in perf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) 	report tui browser.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) --raw-trace::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) 	When displaying traceevent output, do not use print fmt or plugins.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) --hierarchy::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) 	Enable hierarchical output.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) --inline::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) 	If a callgraph address belongs to an inlined function, the inline stack
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) 	will be printed. Each entry is function name or file/line. Enabled by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) 	default, disable with --no-inline.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) --mmaps::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) 	Show --tasks output plus mmap information in a format similar to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) 	/proc/<PID>/maps.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) 	Please note that not all mmaps are stored, options affecting which ones
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) 	are include 'perf record --data', for instance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) --ns::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) 	Show time stamps in nanoseconds.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) --stats::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) 	Display overall events statistics without any further processing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) 	(like the one at the end of the perf report -D command)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) --tasks::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) 	Display monitored tasks stored in perf data. Displaying pid/tid/ppid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) 	plus the command string aligned to distinguish parent and child tasks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) --percent-type::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) 	Set annotation percent type from following choices:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) 	  global-period, local-period, global-hits, local-hits
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) 	The local/global keywords set if the percentage is computed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) 	in the scope of the function (local) or the whole data (global).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) 	The period/hits keywords set the base the percentage is computed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) 	on - the samples period or the number of samples (hits).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) --time-quantum::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) 	Configure time quantum for time sort key. Default 100ms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) 	Accepts s, us, ms, ns units.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) --total-cycles::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) 	When --total-cycles is specified, it supports sorting for all blocks by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) 	'Sampled Cycles%'. This is useful to concentrate on the globally hottest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) 	blocks. In output, there are some new columns:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) 	'Sampled Cycles%' - block sampled cycles aggregation / total sampled cycles
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) 	'Sampled Cycles'  - block sampled cycles aggregation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) 	'Avg Cycles%'     - block average sampled cycles / sum of total block average
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) 			    sampled cycles
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) 	'Avg Cycles'      - block average sampled cycles
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) include::callchain-overhead-calculation.txt[]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) SEE ALSO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) linkperf:perf-stat[1], linkperf:perf-annotate[1], linkperf:perf-record[1],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) linkperf:perf-intel-pt[1]