blob: b73cf589c1093fdd63e7bb3e6daf4b9a6840e2ea [file] [log] [blame]
Ingo Molnar133dc4c2010-11-16 18:45:39 +01001perf-script(1)
Arnaldo Carvalho de Melo4778e0e2010-05-05 11:23:27 -03002=============
Ingo Molnar0a02ad92009-09-11 12:12:54 +02003
4NAME
5----
Ingo Molnar133dc4c2010-11-16 18:45:39 +01006perf-script - Read perf.data (created by perf record) and display trace output
Ingo Molnar0a02ad92009-09-11 12:12:54 +02007
8SYNOPSIS
9--------
10[verse]
Ingo Molnar133dc4c2010-11-16 18:45:39 +010011'perf script' [<options>]
12'perf script' [<options>] record <script> [<record-options>] <command>
13'perf script' [<options>] report <script> [script-args]
14'perf script' [<options>] <script> <required-script-args> [<record-options>] <command>
15'perf script' [<options>] <top-script> [script-args]
Ingo Molnar0a02ad92009-09-11 12:12:54 +020016
17DESCRIPTION
18-----------
19This command reads the input file and displays the trace recorded.
20
Ingo Molnar133dc4c2010-11-16 18:45:39 +010021There are several variants of perf script:
Tom Zanussia6005122009-12-15 02:53:40 -060022
Ingo Molnar133dc4c2010-11-16 18:45:39 +010023 'perf script' to see a detailed trace of the workload that was
Tom Zanussia6005122009-12-15 02:53:40 -060024 recorded.
25
Tom Zanussicff68e52010-01-27 02:28:03 -060026 You can also run a set of pre-canned scripts that aggregate and
27 summarize the raw trace data in various ways (the list of scripts is
Ingo Molnar133dc4c2010-11-16 18:45:39 +010028 available via 'perf script -l'). The following variants allow you to
Tom Zanussicff68e52010-01-27 02:28:03 -060029 record and run those scripts:
30
Ingo Molnar133dc4c2010-11-16 18:45:39 +010031 'perf script record <script> <command>' to record the events required
32 for 'perf script report'. <script> is the name displayed in the
33 output of 'perf script --list' i.e. the actual script name minus any
Tom Zanussid3c4f792010-11-10 08:19:35 -060034 language extension. If <command> is not specified, the events are
35 recorded using the -a (system-wide) 'perf record' option.
Tom Zanussia6005122009-12-15 02:53:40 -060036
Ingo Molnar133dc4c2010-11-16 18:45:39 +010037 'perf script report <script> [args]' to run and display the results
Tom Zanussid3c4f792010-11-10 08:19:35 -060038 of <script>. <script> is the name displayed in the output of 'perf
Tom Zanussia6005122009-12-15 02:53:40 -060039 trace --list' i.e. the actual script name minus any language
Ingo Molnar133dc4c2010-11-16 18:45:39 +010040 extension. The perf.data output from a previous run of 'perf script
Tom Zanussia6005122009-12-15 02:53:40 -060041 record <script>' is used and should be present for this command to
Tom Zanussid3c4f792010-11-10 08:19:35 -060042 succeed. [args] refers to the (mainly optional) args expected by
43 the script.
44
Ingo Molnar133dc4c2010-11-16 18:45:39 +010045 'perf script <script> <required-script-args> <command>' to both
Tom Zanussid3c4f792010-11-10 08:19:35 -060046 record the events required for <script> and to run the <script>
47 using 'live-mode' i.e. without writing anything to disk. <script>
Ingo Molnar133dc4c2010-11-16 18:45:39 +010048 is the name displayed in the output of 'perf script --list' i.e. the
Tom Zanussid3c4f792010-11-10 08:19:35 -060049 actual script name minus any language extension. If <command> is
50 not specified, the events are recorded using the -a (system-wide)
51 'perf record' option. If <script> has any required args, they
52 should be specified before <command>. This mode doesn't allow for
53 optional script args to be specified; if optional script args are
Ingo Molnar133dc4c2010-11-16 18:45:39 +010054 desired, they can be specified using separate 'perf script record'
55 and 'perf script report' commands, with the stdout of the record step
Tom Zanussid3c4f792010-11-10 08:19:35 -060056 piped to the stdin of the report script, using the '-o -' and '-i -'
57 options of the corresponding commands.
58
Ingo Molnar133dc4c2010-11-16 18:45:39 +010059 'perf script <top-script>' to both record the events required for
Tom Zanussid3c4f792010-11-10 08:19:35 -060060 <top-script> and to run the <top-script> using 'live-mode'
61 i.e. without writing anything to disk. <top-script> is the name
Ingo Molnar133dc4c2010-11-16 18:45:39 +010062 displayed in the output of 'perf script --list' i.e. the actual
Tom Zanussid3c4f792010-11-10 08:19:35 -060063 script name minus any language extension; a <top-script> is defined
64 as any script name ending with the string 'top'.
65
Ingo Molnar133dc4c2010-11-16 18:45:39 +010066 [<record-options>] can be passed to the record steps of 'perf script
Tom Zanussid3c4f792010-11-10 08:19:35 -060067 record' and 'live-mode' variants; this isn't possible however for
Ingo Molnar133dc4c2010-11-16 18:45:39 +010068 <top-script> 'live-mode' or 'perf script report' variants.
Tom Zanussia6005122009-12-15 02:53:40 -060069
Tom Zanussicff68e52010-01-27 02:28:03 -060070 See the 'SEE ALSO' section for links to language-specific
71 information on how to write and run your own trace scripts.
72
Ingo Molnar0a02ad92009-09-11 12:12:54 +020073OPTIONS
74-------
Tom Zanussid3c4f792010-11-10 08:19:35 -060075<command>...::
76 Any command you can specify in a shell.
77
Ingo Molnar0a02ad92009-09-11 12:12:54 +020078-D::
Ingo Molnar133dc4c2010-11-16 18:45:39 +010079--dump-raw-script=::
Ingo Molnar0a02ad92009-09-11 12:12:54 +020080 Display verbose dump of the trace data.
81
Tom Zanussia6005122009-12-15 02:53:40 -060082-L::
83--Latency=::
84 Show latency attributes (irqs/preemption disabled, etc).
85
86-l::
87--list=::
88 Display a list of available trace scripts.
89
Tom Zanussif526d682010-01-27 02:27:52 -060090-s ['lang']::
Tom Zanussi89fbf0b2009-11-25 01:15:51 -060091--script=::
92 Process trace data with the given script ([lang]:script[.ext]).
Tom Zanussif526d682010-01-27 02:27:52 -060093 If the string 'lang' is specified in place of a script name, a
94 list of supported languages will be displayed instead.
Tom Zanussi89fbf0b2009-11-25 01:15:51 -060095
96-g::
97--gen-script=::
Ingo Molnar133dc4c2010-11-16 18:45:39 +010098 Generate perf-script.[ext] starter script for given language,
Tom Zanussi89fbf0b2009-11-25 01:15:51 -060099 using current perf.data.
100
Tom Zanussid3c4f792010-11-10 08:19:35 -0600101-a::
102 Force system-wide collection. Scripts run without a <command>
103 normally use -a by default, while scripts run with a <command>
104 normally don't - this option allows the latter to be run in
105 system-wide mode.
106
Shawn Bohrer646420f2010-11-30 19:57:22 -0600107-i::
108--input=::
109 Input file name.
110
111-d::
112--debug-mode::
113 Do various checks like samples ordering and lost events.
Tom Zanussid3c4f792010-11-10 08:19:35 -0600114
David Ahern745f43e2011-03-09 22:23:26 -0700115-f::
116--fields
117 Comma separated list of fields to print. Options are:
118 comm, tid, pid, time, cpu, event, trace
119
Ingo Molnar0a02ad92009-09-11 12:12:54 +0200120SEE ALSO
121--------
Ingo Molnar133dc4c2010-11-16 18:45:39 +0100122linkperf:perf-record[1], linkperf:perf-script-perl[1],
123linkperf:perf-script-python[1]