blob: 10a2798712511a26616ea618a91130a6ed467345 [file] [log] [blame]
Ingo Molnar0bec2532009-05-26 09:17:18 +02001perf-report(1)
Ingo Molnarc1c23652009-05-30 12:38:51 +02002==============
Ingo Molnar0bec2532009-05-26 09:17:18 +02003
4NAME
5----
Ingo Molnar23ac9cb2009-05-27 09:33:18 +02006perf-report - Read perf.data (created by perf record) and display the profile
Ingo Molnar0bec2532009-05-26 09:17:18 +02007
8SYNOPSIS
9--------
10[verse]
11'perf report' [-i <file> | --input=file]
12
13DESCRIPTION
14-----------
15This command displays the performance counter profile information recorded
Ingo Molnarb0a28582009-06-23 16:39:53 +020016via perf record.
Ingo Molnar0bec2532009-05-26 09:17:18 +020017
18OPTIONS
19-------
20-i::
21--input=::
Robert Richterefad1412011-12-07 10:02:54 +010022 Input file name. (default: perf.data unless stdin is a fifo)
Shawn Bohrere04fffc2010-11-30 19:57:17 -060023
24-v::
25--verbose::
26 Be more verbose. (show symbol address, etc)
27
Arnaldo Carvalho de Melo25903402009-06-30 19:01:20 -030028-d::
29--dsos=::
30 Only consider symbols in these dsos. CSV that understands
31 file://filename entries.
Zeev Tarantovca2b9002009-11-09 13:26:13 +020032-n::
33--show-nr-samples::
Arnaldo Carvalho de Meloe3d7e182009-07-11 12:18:37 -030034 Show the number of samples for each symbol
Shawn Bohrere04fffc2010-11-30 19:57:17 -060035
36--showcpuutilization::
37 Show sample percentage for different cpu modes.
38
Zeev Tarantovca2b9002009-11-09 13:26:13 +020039-T::
40--threads::
Brice Goglin8d513272009-08-07 13:55:24 +020041 Show per-thread event counters
David Ahernc8e66722011-11-13 11:30:08 -070042-c::
Arnaldo Carvalho de Melocc8b88b2009-06-30 19:01:21 -030043--comms=::
44 Only consider symbols in these comms. CSV that understands
45 file://filename entries.
Arnaldo Carvalho de Melo7bec7a92009-06-30 19:01:22 -030046-S::
47--symbols=::
48 Only consider these symbols. CSV that understands
49 file://filename entries.
Ingo Molnar0bec2532009-05-26 09:17:18 +020050
Namhyung Kimfde0eea2012-03-19 11:53:48 +090051--symbol-filter=::
52 Only show symbols that match (partially) with this filter.
53
Shawn Bohrere04fffc2010-11-30 19:57:17 -060054-U::
55--hide-unresolved::
56 Only display entries resolved to a symbol.
57
Arnaldo Carvalho de Meloc351c282009-12-16 13:49:27 -020058-s::
59--sort=::
Namhyung Kim98113602012-12-27 18:11:47 +090060 Sort histogram entries by given key(s) - multiple keys can be specified
61 in CSV format. Following sort keys are available:
Andi Kleen05484292013-01-24 16:10:29 +010062 pid, comm, dso, symbol, parent, cpu, srcline, weight, local_weight.
Namhyung Kim98113602012-12-27 18:11:47 +090063
64 Each key has following meaning:
65
66 - comm: command (name) of the task which can be read via /proc/<pid>/comm
67 - pid: command and tid of the task
68 - dso: name of library or module executed at the time of sample
69 - symbol: name of function executed at the time of sample
70 - parent: name of function matched to the parent regex filter. Unmatched
71 entries are displayed as "[other]".
72 - cpu: cpu number the task ran at the time of sample
73 - srcline: filename and line number executed at the time of sample. The
Andi Kleenf5d05bc2013-09-20 07:40:41 -070074 DWARF debugging info must be provided.
Andi Kleen475eeab2013-09-20 07:40:43 -070075 - weight: Event specific weight, e.g. memory latency or transaction
76 abort cost. This is the global weight.
77 - local_weight: Local weight version of the weight above.
78 - transaction: Transaction abort flags.
Namhyung Kim98113602012-12-27 18:11:47 +090079
80 By default, comm, dso and symbol keys are used.
81 (i.e. --sort comm,dso,symbol)
82
83 If --branch-stack option is used, following sort keys are also
84 available:
85 dso_from, dso_to, symbol_from, symbol_to, mispredict.
86
87 - dso_from: name of library or module branched from
88 - dso_to: name of library or module branched to
89 - symbol_from: name of function branched from
90 - symbol_to: name of function branched to
91 - mispredict: "N" for predicted branch, "Y" for mispredicted branch
Andi Kleenf5d05bc2013-09-20 07:40:41 -070092 - in_tx: branch in TSX transaction
93 - abort: TSX transaction abort.
Namhyung Kim98113602012-12-27 18:11:47 +090094
95 And default sort keys are changed to comm, dso_from, symbol_from, dso_to
96 and symbol_to, see '--branch-stack'.
Arnaldo Carvalho de Meloc351c282009-12-16 13:49:27 -020097
Shawn Bohrere04fffc2010-11-30 19:57:17 -060098-p::
99--parent=<regex>::
Namhyung Kim98113602012-12-27 18:11:47 +0900100 A regex filter to identify parent. The parent is a caller of this
101 function and searched through the callchain, thus it requires callchain
102 information recorded. The pattern is in the exteneded regex format and
103 defaults to "\^sys_|^do_page_fault", see '--sort parent'.
Shawn Bohrere04fffc2010-11-30 19:57:17 -0600104
105-x::
106--exclude-other::
107 Only display entries with parent-match.
108
Arnaldo Carvalho de Melo52d422d2009-07-10 22:47:28 -0300109-w::
Shawn Bohrere04fffc2010-11-30 19:57:17 -0600110--column-widths=<width[,width...]>::
Arnaldo Carvalho de Melo52d422d2009-07-10 22:47:28 -0300111 Force each column width to the provided list, for large terminal
112 readability.
113
114-t::
115--field-separator=::
Arnaldo Carvalho de Melo52d422d2009-07-10 22:47:28 -0300116 Use a special separator character and don't pad with spaces, replacing
Shawn Bohrere04fffc2010-11-30 19:57:17 -0600117 all occurrences of this separator in symbol names (and other output)
Arnaldo Carvalho de Melo52d422d2009-07-10 22:47:28 -0300118 with a '.' character, that thus it's the only non valid separator.
119
Shawn Bohrere04fffc2010-11-30 19:57:17 -0600120-D::
121--dump-raw-trace::
122 Dump raw trace in ASCII.
123
Andi Kleen99571ab2013-07-18 15:33:57 -0700124-g [type,min[,limit],order[,key]]::
Frederic Weisbeckerec7ba4e2009-08-31 03:32:03 +0200125--call-graph::
Namhyung Kim6581f6e2011-12-13 00:16:50 +0900126 Display call chains using type, min percent threshold, optional print
127 limit and order.
Frederic Weisbeckerec7ba4e2009-08-31 03:32:03 +0200128 type can be either:
Shawn Bohrere04fffc2010-11-30 19:57:17 -0600129 - flat: single column, linear exposure of call chains.
Frederic Weisbeckerec7ba4e2009-08-31 03:32:03 +0200130 - graph: use a graph tree, displaying absolute overhead rates.
131 - fractal: like graph, but displays relative rates. Each branch of
132 the tree is considered as a new profiled object. +
Sam Liaod797fdc2011-06-07 23:49:46 +0800133
134 order can be either:
135 - callee: callee based call graph.
136 - caller: inverted caller based call graph.
137
Andi Kleen99571ab2013-07-18 15:33:57 -0700138 key can be:
139 - function: compare on functions
140 - address: compare on individual code addresses
141
142 Default: fractal,0.5,callee,function.
Sam Liaod797fdc2011-06-07 23:49:46 +0800143
Waiman Long91e95612013-10-18 10:38:48 -0400144--max-stack::
145 Set the stack depth limit when parsing the callchain, anything
146 beyond the specified depth will be ignored. This is a trade-off
147 between information loss and faster processing especially for
148 workloads that can have a very long callchain stack.
149
150 Default: 127
151
Sam Liaod797fdc2011-06-07 23:49:46 +0800152-G::
153--inverted::
154 alias for inverted caller based call graph.
Frederic Weisbeckerec7ba4e2009-08-31 03:32:03 +0200155
Greg Priceb21484f2012-12-06 21:48:05 -0800156--ignore-callees=<regex>::
157 Ignore callees of the function(s) matching the given regex.
158 This has the effect of collecting the callers of each such
159 function into one place in the call-graph tree.
160
Shawn Bohrere04fffc2010-11-30 19:57:17 -0600161--pretty=<key>::
162 Pretty printing style. key: normal, raw
163
Arnaldo Carvalho de Melo8b9e74e2010-08-21 10:38:16 -0300164--stdio:: Use the stdio interface.
165
166--tui:: Use the TUI interface, that is integrated with annotate and allows
167 zooming into DSOs or threads, among other features. Use of --tui
168 requires a tty, if one is not present, as when piping to other
169 commands, the stdio interface is used.
170
Pekka Enbergc31a9452012-03-19 15:13:29 -0300171--gtk:: Use the GTK2 interface.
172
Shawn Bohrere04fffc2010-11-30 19:57:17 -0600173-k::
174--vmlinux=<file>::
175 vmlinux pathname
176
David Ahernb226a5a72010-12-07 19:39:46 -0700177--kallsyms=<file>::
178 kallsyms pathname
179
Shawn Bohrere04fffc2010-11-30 19:57:17 -0600180-m::
181--modules::
182 Load module symbols. WARNING: This should only be used with -k and
183 a LIVE kernel.
184
185-f::
186--force::
187 Don't complain, do it.
188
David Ahernec5761e2010-12-09 13:27:07 -0700189--symfs=<directory>::
190 Look for files with symbols relative to this directory.
191
David Ahernc8e66722011-11-13 11:30:08 -0700192-C::
Anton Blanchard5d67be92011-07-04 21:57:50 +1000193--cpu:: Only report samples for the list of CPUs provided. Multiple CPUs can
194 be provided as a comma-separated list with no space: 0,1. Ranges of
195 CPUs are specified with -: 0-2. Default is to report samples on all
196 CPUs.
197
Andi Kleenf69b64f2011-09-15 14:31:41 -0700198-M::
199--disassembler-style=:: Set disassembler style for objdump.
200
Arnaldo Carvalho de Melo64c6f0c2011-10-06 12:48:31 -0300201--source::
202 Interleave source code with assembly code. Enabled by default,
203 disable with --no-source.
204
205--asm-raw::
206 Show raw instruction encoding of assembly instructions.
207
Arnaldo Carvalho de Melo3f2728b2011-10-05 16:10:06 -0300208--show-total-period:: Show a column with the sum of periods.
209
Stephane Eranianfbe96f22011-09-30 15:40:40 +0200210-I::
211--show-info::
212 Display extended information about the perf.data file. This adds
213 information which may be very large and thus may clutter the display.
214 It currently includes: cpu and numa topology of the host system.
215
Roberto Agostino Vitillob50311d2012-02-09 23:21:03 +0100216-b::
217--branch-stack::
218 Use the addresses of sampled taken branches instead of the instruction
219 address to build the histograms. To generate meaningful output, the
Stephane Eranian993ac882012-03-08 23:47:47 +0100220 perf.data file must have been obtained using perf record -b or
221 perf record --branch-filter xxx where xxx is a branch filter option.
222 perf report is able to auto-detect whether a perf.data file contains
223 branch stacks and it will automatically switch to the branch view mode,
224 unless --no-branch-stack is used.
Roberto Agostino Vitillob50311d2012-02-09 23:21:03 +0100225
Maciek Borzecki7a4ec932012-09-04 12:32:30 +0200226--objdump=<path>::
227 Path to objdump binary.
228
Namhyung Kim01d14f12013-01-22 18:09:45 +0900229--group::
230 Show event group information together.
231
Namhyung Kim328ccda2013-03-25 18:18:18 +0900232--demangle::
233 Demangle symbol names to human readable form. It's enabled by default,
234 disable with --no-demangle.
235
Namhyung Kim064f1982013-05-14 11:09:04 +0900236--percent-limit::
237 Do not show entries which have an overhead under that percent.
238 (Default: 0).
239
Ingo Molnar0bec2532009-05-26 09:17:18 +0200240SEE ALSO
241--------
Arnaldo Carvalho de Melo64c6f0c2011-10-06 12:48:31 -0300242linkperf:perf-stat[1], linkperf:perf-annotate[1]