Lines Matching +full:min +full:- +full:sample +full:- +full:time +full:- +full:ns

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 -----------
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::
37 Show sample percentage for different cpu modes.
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 and latency columns. See --percentage for more info.
48 --pid=::
51 --tid=::
53 -d::
54 --dsos=::
57 the overhead and latency columns. See --percentage for more info.
58 -S::
59 --symbols=::
62 the overhead and latency columns. See --percentage for more info.
64 --symbol-filter=::
67 -U::
68 --hide-unresolved::
71 --parallelism::
73 of threads that actively run on CPUs at the time of sample. The flag
74 accepts single number, comma-separated list, and ranges (for example:
75 "1", "7,8", "1,64-128"). This is useful in understanding what a program
76 is doing during sequential/low-parallelism phases as compared to
77 high-parallelism phases. This option will affect the percentage of
78 the overhead and latency columns. See --percentage for more info.
81 --latency::
82 Show latency-centric profile rather than the default
83 CPU-consumption-centric profile
84 (requires perf record --latency flag).
86 -s::
87 --sort=::
88 Sort histogram entries by given key(s) - multiple keys can be specified
95 - comm: command (name) of the task which can be read via /proc/<pid>/comm
96 - pid: command and tid of the task
97 - dso: name of library or module executed at the time of sample
98 - dso_size: size of library or module executed at the time of sample
99 - symbol: name of function executed at the time of sample
100 - symbol_size: size of function executed at the time of sample
101 - parent: name of function matched to the parent regex filter. Unmatched
103 - cpu: cpu number the task ran at the time of sample
104 - socket: processor socket number the task ran at the time of sample
105 - parallelism: number of running threads at the time of sample
106 - srcline: filename and line number executed at the time of sample. The
108 - srcfile: file name of the source file of the samples. Requires dwarf
110 - weight: Event specific weight, e.g. memory latency or transaction
112 - local_weight: Local weight version of the weight above.
113 - cgroup_id: ID derived from cgroup namespace device and inode numbers.
114 - cgroup: cgroup pathname in the cgroupfs.
115 - transaction: Transaction abort flags.
116 - overhead: CPU overhead percentage of sample.
117 - latency: latency (wall-clock) overhead percentage of sample.
119 - overhead_sys: CPU overhead percentage of sample running in system mode
120 - overhead_us: CPU overhead percentage of sample running in user mode
121 - overhead_guest_sys: CPU overhead percentage of sample running in system mode
123 - overhead_guest_us: CPU overhead percentage of sample running in user mode on
125 - sample: Number of sample
126 - period: Raw number of event count of sample
127 - time: Separate the samples by time stamp with the resolution specified by
128 --time-quantum (default 100ms). Specify with overhead and before it.
129 - code_page_size: the code page size of sampled code address (ip)
130 - ins_lat: Instruction latency in core cycles. This is the global instruction
132 - local_ins_lat: Local instruction latency version
133 - p_stage_cyc: On powerpc, this presents the number of cycles spent in a
135 - addr: (Full) virtual address of the sampled instruction
136 - retire_lat: On X86, this reports pipeline stall of this instruction compared
138- simd: Flags describing a SIMD operation. "e" for empty Arm SVE predicate. "p" for partial Arm SV…
139 - type: Data type of sample memory access.
140 - typeoff: Offset in the data type of sample memory access.
141 - symoff: Offset in the symbol.
142 - weight1: Average value of event specific weight (1st field of weight_struct).
143 - weight2: Average value of event specific weight (2nd field of weight_struct).
144 - weight3: Average value of event specific weight (3rd field of weight_struct).
147 (i.e. --sort overhead,comm,dso,symbol).
149 If --branch-stack option is used, following sort keys are also
152 - dso_from: name of library or module branched from
153 - dso_to: name of library or module branched to
154 - symbol_from: name of function branched from
155 - symbol_to: name of function branched to
156 - srcline_from: source file and line branched from
157 - srcline_to: source file and line branched to
158 - mispredict: "N" for predicted branch, "Y" for mispredicted branch
159 - in_tx: branch in TSX transaction
160 - abort: TSX transaction abort.
161 - cycles: Cycles in basic block
164 and symbol_to, see '--branch-stack'.
174 If the --mem-mode option is used, the following sort keys are also available
175 (incompatible with --branch-stack):
178 - symbol_daddr: name of data symbol being executed on at the time of sample
179 - dso_daddr: name of library or module containing the data being executed
180 on at the time of the sample
181 - locked: whether the bus was locked at the time of the sample
182 - tlb: type of tlb access for the data at the time of the sample
183 - mem: type of memory access for the data at the time of the sample
184 - snoop: type of snoop (if any) for the data at the time of the sample
185 - dcacheline: the cacheline the data address is on at the time of the sample
186 - phys_daddr: physical address of data being executed on at the time of sample
187 - data_page_size: the data page size of data being executed on at the time of sample
188 - blocked: reason of blocked load access for the data at the time of the sample
192 see '--mem-mode'.
198 - trace: pretty printed trace output in a single column
199 - trace_fields: fields in tracepoints in separate columns
200 - <field name>: optional event and field name for a specific field
212 and shows raw field value like hex numbers. The --raw-trace option
218 -F::
219 --fields=::
220 Specify output field - multiple keys can be specified in CSV format.
222 overhead, latency, overhead_sys, overhead_us, overhead_children, sample,
229 By default, every sort keys not specified in -F will be appended
233 field(s) to the default field order. For example: perf report -F +period,sample.
235 -p::
236 --parent=<regex>::
240 defaults to "\^sys_|^do_page_fault", see '--sort parent'.
242 -x::
243 --exclude-other::
244 Only display entries with parent-match.
246 -w::
247 --column-widths=<width[,width...]>::
251 -t::
252 --field-separator=::
257 -D::
258 --dump-raw-trace::
261 --disable-order::
264 -g::
265 --call-graph=<print_type,threshold[,print_limit],order,sort_key[,branch],value>::
266 Display call chains using type, min percent threshold, print limit,
272 - flat: single column, linear exposure of call chains.
273 - graph: use a graph tree, displaying absolute overhead rates. (default)
274 - fractal: like graph, but displays relative rates. Each branch of
276 - folded: call chains are displayed in a line, separated by semicolons
277 - none: disable call chain display.
288 - callee: callee based call graph.
289 - caller: inverted caller based call graph.
290 Default is 'caller' when --children is used, otherwise 'callee'.
293 - function: compare on functions (default)
294 - address: compare on individual code addresses
295 - srcline: compare on source filename and line number
298 - branch: include last branch information in callgraph when available.
299 Usually more convenient to use --branch-history for this.
302 - percent: display overhead percent (default)
303 - period: display event period
304 - count: display event count
306 --children::
311 default, disable with --no-children.
313 --max-stack::
315 beyond the specified depth will be ignored. This is a trade-off
318 Note that when using the --itrace option the synthesized callchain size
323 -G::
324 --inverted::
327 --ignore-callees=<regex>::
330 function into one place in the call-graph tree.
332 --pretty=<key>::
335 --stdio:: Use the stdio interface.
337 --stdio-color::
340 Use '--stdio-color always' to generate color even when redirecting
341 to a pipe or file. Using just '--stdio-color' is equivalent to
344 --tui:: Use the TUI interface, that is integrated with annotate and allows
345 zooming into DSOs or threads, among other features. Use of --tui
349 --gtk:: Use the GTK2 interface.
351 -k::
352 --vmlinux=<file>::
355 --ignore-vmlinux::
358 --kallsyms=<file>::
361 -m::
362 --modules::
363 Load module symbols. WARNING: This should only be used with -k and
366 -f::
367 --force::
370 --symfs=<directory>::
373 -C::
374 --cpu:: Only report samples for the list of CPUs provided. Multiple CPUs can
375 be provided as a comma-separated list with no space: 0,1. Ranges of
376 CPUs are specified with -: 0-2. Default is to report samples on all
379 -M::
380 --disassembler-style=:: Set disassembler style for objdump.
382 --source::
384 disable with --no-source.
386 --asm-raw::
389 --show-total-period:: Show a column with the sum of periods.
391 -I::
392 --show-info::
397 -b::
398 --branch-stack::
401 perf.data file must have been obtained using perf record -b or
402 perf record --branch-filter xxx where xxx is a branch filter option.
403 perf report is able to auto-detect whether a perf.data file contains
405 unless --no-branch-stack is used.
407 --branch-history::
409 This allows to examine the path the program took to each sample.
410 The data collection must have used -b (or -j) and -g.
413 - Predicted: display the average percentage of predicated branches.
415 - Abort: display the number of tsx aborted branches.
416 - Cycles: cycles in basic block.
418 - iterations: display the average number of iterations in callchain list.
420 --addr2line=<path>::
423 --objdump=<path>::
426 --prefix=PREFIX::
427 --prefix-strip=N::
432 --group::
436 --group-sort-idx::
441 --demangle::
443 disable with --no-demangle.
445 --demangle-kernel::
448 --mem-mode::
451 file must have been obtained using perf record -d -W and using a
452 special event -e cpu/mem-loads/p or -e cpu/mem-stores/p. See
455 --percent-limit::
460 --call-graph option for details.
462 --percentage::
464 of filtered entries. Filters can be applied by --comms, --dsos, --symbols
465 and/or --parallelism options and Zoom operations on the TUI (thread, dso, etc).
471 --header::
475 --stdio output supports this feature.
477 --header-only::
478 Show only perf.data header (forces --stdio).
480 --time::
481 Only analyze samples within given time window: <start>,<stop>. Times
482 have the format seconds.nanoseconds. If start is not given (i.e. time
484 stop time is not given (i.e. time string is 'x.y,') then analysis goes
486 requires the argument to be quoted e.g. --time "1234.567,1234.789 1235,"
488 Also support time percent with multiple time ranges. Time string is
489 'a%/n,b%/m,...' or 'a%-b%,c%-%d,...'.
492 Select the second 10% time slice:
494 perf report --time 10%/2
496 Select from 0% to 10% time slice:
498 perf report --time 0%-10%
500 Select the first and second 10% time slices:
502 perf report --time 10%/1,10%/2
506 perf report --time 0%-10%,30%-40%
508 --switch-on EVENT_NAME::
515 --switch-off EVENT_NAME::
518 --show-on-off-events::
519 Show the --switch-on/off events too. This has no effect in 'perf report' now
520 but probably we'll make the default not to show the switch-on/off events
521 on the --group mode and if there is only one event besides the off/on ones,
525 --itrace::
530 To disable decoding entirely, use --no-itrace.
532 --full-source-path::
535 --show-ref-call-graph::
537 callgraphs for all of them. The sample sites are usually nearby,
539 So user can use "call-graph=no" event modifier to disable callgraph
546 --stitch-lbr::
549 perf record --call-graph lbr.
557 --socket-filter::
560 --samples=N::
564 --raw-trace::
567 -H::
568 --hierarchy::
570 samples based on the criteria and then sub-divide it using the lower
576 perf report -s dso,sym
586 perf report -s dso,sym --hierarchy
597 --inline::
600 default, disable with --no-inline.
602 --mmaps::
603 Show --tasks output plus mmap information in a format similar to
607 are include 'perf record --data', for instance.
609 --ns::
610 Show time stamps in nanoseconds.
612 --stats::
614 (like the one at the end of the perf report -D command)
616 --tasks::
620 --percent-type::
622 global-period, local-period, global-hits, local-hits
627 on - the samples period or the number of samples (hits).
629 --time-quantum::
630 Configure time quantum for time sort key. Default 100ms.
631 Accepts s, us, ms, ns units.
633 --total-cycles::
634 When --total-cycles is specified, it supports sorting for all blocks by
638 'Sampled Cycles%' - block sampled cycles aggregation / total sampled cycles
639 'Sampled Cycles' - block sampled cycles aggregation
640 'Avg Cycles%' - block average sampled cycles / sum of total block average
642 'Avg Cycles' - block average sampled cycles
643 'Branch Counter' - block branch counter histogram (with -v showing the number)
645 --skip-empty::
646 Do not print 0 results in the --stat output.
648 include::cpu-and-latency-overheads.txt[]
650 include::callchain-overhead-calculation.txt[]
653 --------
654 linkperf:perf-stat[1], linkperf:perf-annotate[1], linkperf:perf-record[1],
655 linkperf:perf-intel-pt[1]