Lines Matching +full:performance +full:- +full:affecting

1 perf-report(1)
5 ----
6 perf-report - Read perf.data (created by perf record) and display the profile
9 --------
11 'perf report' [-i <file> | --input=file]
14 -----------
15 This command displays the performance counter profile information recorded
19 -------
20 -i::
21 --input=::
24 -v::
25 --verbose::
28 -q::
29 --quiet::
30 Do not show any warnings or messages. (Suppress -v)
32 -n::
33 --show-nr-samples::
36 --show-cpu-utilization::
39 -T::
40 --threads::
41 Show per-thread event counters. The input data file should be recorded
42 with -s option.
43 -c::
44 --comms=::
47 the overhead column. See --percentage for more info.
48 --pid=::
51 --tid=::
53 -d::
54 --dsos=::
57 the overhead column. See --percentage for more info.
58 -S::
59 --symbols=::
62 the overhead column. See --percentage for more info.
64 --symbol-filter=::
67 -U::
68 --hide-unresolved::
71 -s::
72 --sort=::
73 Sort histogram entries by given key(s) - multiple keys can be specified
80 - comm: command (name) of the task which can be read via /proc/<pid>/comm
81 - pid: command and tid of the task
82 - dso: name of library or module executed at the time of sample
83 - dso_size: size of library or module executed at the time of sample
84 - symbol: name of function executed at the time of sample
85 - symbol_size: size of function executed at the time of sample
86 - parent: name of function matched to the parent regex filter. Unmatched
88 - cpu: cpu number the task ran at the time of sample
89 - socket: processor socket number the task ran at the time of sample
90 - srcline: filename and line number executed at the time of sample. The
92 - srcfile: file name of the source file of the samples. Requires dwarf
94 - weight: Event specific weight, e.g. memory latency or transaction
96 - local_weight: Local weight version of the weight above.
97 - cgroup_id: ID derived from cgroup namespace device and inode numbers.
98 - cgroup: cgroup pathname in the cgroupfs.
99 - transaction: Transaction abort flags.
100 - overhead: Overhead percentage of sample
101 - overhead_sys: Overhead percentage of sample running in system mode
102 - overhead_us: Overhead percentage of sample running in user mode
103 - overhead_guest_sys: Overhead percentage of sample running in system mode
105 - overhead_guest_us: Overhead percentage of sample running in user mode on
107 - sample: Number of sample
108 - period: Raw number of event count of sample
109 - time: Separate the samples by time stamp with the resolution specified by
110 --time-quantum (default 100ms). Specify with overhead and before it.
111 - code_page_size: the code page size of sampled code address (ip)
112 - ins_lat: Instruction latency in core cycles. This is the global instruction
114 - local_ins_lat: Local instruction latency version
115 - p_stage_cyc: On powerpc, this presents the number of cycles spent in a
117 - addr: (Full) virtual address of the sampled instruction
118 - retire_lat: On X86, this reports pipeline stall of this instruction compared
120- simd: Flags describing a SIMD operation. "e" for empty Arm SVE predicate. "p" for partial Arm SV…
121 - type: Data type of sample memory access.
122 - typeoff: Offset in the data type of sample memory access.
123 - symoff: Offset in the symbol.
124 - weight1: Average value of event specific weight (1st field of weight_struct).
125 - weight2: Average value of event specific weight (2nd field of weight_struct).
126 - weight3: Average value of event specific weight (3rd field of weight_struct).
129 (i.e. --sort comm,dso,symbol)
131 If --branch-stack option is used, following sort keys are also
134 - dso_from: name of library or module branched from
135 - dso_to: name of library or module branched to
136 - symbol_from: name of function branched from
137 - symbol_to: name of function branched to
138 - srcline_from: source file and line branched from
139 - srcline_to: source file and line branched to
140 - mispredict: "N" for predicted branch, "Y" for mispredicted branch
141 - in_tx: branch in TSX transaction
142 - abort: TSX transaction abort.
143 - cycles: Cycles in basic block
146 and symbol_to, see '--branch-stack'.
152 it indicates there may be a performance bottleneck when the function is
154 and low IPC, it's worth further analyzing it to optimize its performance.
156 If the --mem-mode option is used, the following sort keys are also available
157 (incompatible with --branch-stack):
160 - symbol_daddr: name of data symbol being executed on at the time of sample
161 - dso_daddr: name of library or module containing the data being executed
163 - locked: whether the bus was locked at the time of the sample
164 - tlb: type of tlb access for the data at the time of the sample
165 - mem: type of memory access for the data at the time of the sample
166 - snoop: type of snoop (if any) for the data at the time of the sample
167 - dcacheline: the cacheline the data address is on at the time of the sample
168 - phys_daddr: physical address of data being executed on at the time of sample
169 - data_page_size: the data page size of data being executed on at the time of sample
170 - blocked: reason of blocked load access for the data at the time of the sample
174 see '--mem-mode'.
180 - trace: pretty printed trace output in a single column
181 - trace_fields: fields in tracepoints in separate columns
182 - <field name>: optional event and field name for a specific field
194 and shows raw field value like hex numbers. The --raw-trace option
200 -F::
201 --fields=::
202 Specify output field - multiple keys can be specified in CSV format.
211 By default, every sort keys not specified in -F will be appended
215 field(s) to the default field order. For example: perf report -F +period,sample.
217 -p::
218 --parent=<regex>::
222 defaults to "\^sys_|^do_page_fault", see '--sort parent'.
224 -x::
225 --exclude-other::
226 Only display entries with parent-match.
228 -w::
229 --column-widths=<width[,width...]>::
233 -t::
234 --field-separator=::
239 -D::
240 --dump-raw-trace::
243 --disable-order::
246 -g::
247 --call-graph=<print_type,threshold[,print_limit],order,sort_key[,branch],value>::
254 - flat: single column, linear exposure of call chains.
255 - graph: use a graph tree, displaying absolute overhead rates. (default)
256 - fractal: like graph, but displays relative rates. Each branch of
258 - folded: call chains are displayed in a line, separated by semicolons
259 - none: disable call chain display.
270 - callee: callee based call graph.
271 - caller: inverted caller based call graph.
272 Default is 'caller' when --children is used, otherwise 'callee'.
275 - function: compare on functions (default)
276 - address: compare on individual code addresses
277 - srcline: compare on source filename and line number
280 - branch: include last branch information in callgraph when available.
281 Usually more convenient to use --branch-history for this.
284 - percent: display overhead percent (default)
285 - period: display event period
286 - count: display event count
288 --children::
293 default, disable with --no-children.
295 --max-stack::
297 beyond the specified depth will be ignored. This is a trade-off
300 Note that when using the --itrace option the synthesized callchain size
305 -G::
306 --inverted::
309 --ignore-callees=<regex>::
312 function into one place in the call-graph tree.
314 --pretty=<key>::
317 --stdio:: Use the stdio interface.
319 --stdio-color::
322 Use '--stdio-color always' to generate color even when redirecting
323 to a pipe or file. Using just '--stdio-color' is equivalent to
326 --tui:: Use the TUI interface, that is integrated with annotate and allows
327 zooming into DSOs or threads, among other features. Use of --tui
331 --gtk:: Use the GTK2 interface.
333 -k::
334 --vmlinux=<file>::
337 --ignore-vmlinux::
340 --kallsyms=<file>::
343 -m::
344 --modules::
345 Load module symbols. WARNING: This should only be used with -k and
348 -f::
349 --force::
352 --symfs=<directory>::
355 -C::
356 --cpu:: Only report samples for the list of CPUs provided. Multiple CPUs can
357 be provided as a comma-separated list with no space: 0,1. Ranges of
358 CPUs are specified with -: 0-2. Default is to report samples on all
361 -M::
362 --disassembler-style=:: Set disassembler style for objdump.
364 --source::
366 disable with --no-source.
368 --asm-raw::
371 --show-total-period:: Show a column with the sum of periods.
373 -I::
374 --show-info::
379 -b::
380 --branch-stack::
383 perf.data file must have been obtained using perf record -b or
384 perf record --branch-filter xxx where xxx is a branch filter option.
385 perf report is able to auto-detect whether a perf.data file contains
387 unless --no-branch-stack is used.
389 --branch-history::
392 The data collection must have used -b (or -j) and -g.
394 --addr2line=<path>::
397 --objdump=<path>::
400 --prefix=PREFIX::
401 --prefix-strip=N::
406 --group::
410 --group-sort-idx::
415 --demangle::
417 disable with --no-demangle.
419 --demangle-kernel::
422 --mem-mode::
425 file must have been obtained using perf record -d -W and using a
426 special event -e cpu/mem-loads/p or -e cpu/mem-stores/p. See
429 --percent-limit::
434 --call-graph option for details.
436 --percentage::
438 Filters can be applied by --comms, --dsos and/or --symbols options and
445 --header::
449 --stdio output supports this feature.
451 --header-only::
452 Show only perf.data header (forces --stdio).
454 --time::
460 requires the argument to be quoted e.g. --time "1234.567,1234.789 1235,"
463 'a%/n,b%/m,...' or 'a%-b%,c%-%d,...'.
468 perf report --time 10%/2
472 perf report --time 0%-10%
476 perf report --time 10%/1,10%/2
480 perf report --time 0%-10%,30%-40%
482 --switch-on EVENT_NAME::
489 --switch-off EVENT_NAME::
492 --show-on-off-events::
493 Show the --switch-on/off events too. This has no effect in 'perf report' now
494 but probably we'll make the default not to show the switch-on/off events
495 on the --group mode and if there is only one event besides the off/on ones,
499 --itrace::
504 To disable decoding entirely, use --no-itrace.
506 --full-source-path::
509 --show-ref-call-graph::
513 So user can use "call-graph=no" event modifier to disable callgraph
520 --stitch-lbr::
523 perf record --call-graph lbr.
531 --socket-filter::
534 --samples=N::
538 --raw-trace::
541 -H::
542 --hierarchy::
544 samples based on the criteria and then sub-divide it using the lower
550 perf report -s dso,sym
560 perf report -s dso,sym --hierarchy
571 --inline::
574 default, disable with --no-inline.
576 --mmaps::
577 Show --tasks output plus mmap information in a format similar to
580 Please note that not all mmaps are stored, options affecting which ones
581 are include 'perf record --data', for instance.
583 --ns::
586 --stats::
588 (like the one at the end of the perf report -D command)
590 --tasks::
594 --percent-type::
596 global-period, local-period, global-hits, local-hits
601 on - the samples period or the number of samples (hits).
603 --time-quantum::
607 --total-cycles::
608 When --total-cycles is specified, it supports sorting for all blocks by
612 'Sampled Cycles%' - block sampled cycles aggregation / total sampled cycles
613 'Sampled Cycles' - block sampled cycles aggregation
614 'Avg Cycles%' - block average sampled cycles / sum of total block average
616 'Avg Cycles' - block average sampled cycles
617 'Branch Counter' - block branch counter histogram (with -v showing the number)
619 --skip-empty::
620 Do not print 0 results in the --stat output.
622 include::callchain-overhead-calculation.txt[]
625 --------
626 linkperf:perf-stat[1], linkperf:perf-annotate[1], linkperf:perf-record[1],
627 linkperf:perf-intel-pt[1]