blob: e032716c839be0604700af69ebab43dd9eebf78e [file] [log] [blame]
Ingo Molnare33e0a42009-04-20 15:58:01 +02001perf-record(1)
Ingo Molnarc1c23652009-05-30 12:38:51 +02002==============
Ingo Molnare33e0a42009-04-20 15:58:01 +02003
4NAME
5----
Ingo Molnar23ac9cb2009-05-27 09:33:18 +02006perf-record - Run a command and record its profile into perf.data
Ingo Molnare33e0a42009-04-20 15:58:01 +02007
8SYNOPSIS
9--------
10[verse]
11'perf record' [-e <EVENT> | --event=EVENT] [-l] [-a] <command>
Mike Galbraith9e0967532009-05-28 16:25:34 +020012'perf record' [-e <EVENT> | --event=EVENT] [-l] [-a] -- <command> [<options>]
Ingo Molnare33e0a42009-04-20 15:58:01 +020013
14DESCRIPTION
15-----------
16This command runs a command and gathers a performance counter profile
Ingo Molnar23ac9cb2009-05-27 09:33:18 +020017from it, into perf.data - without displaying anything.
Ingo Molnare33e0a42009-04-20 15:58:01 +020018
19This file can then be inspected later on, using 'perf report'.
20
21
22OPTIONS
23-------
24<command>...::
25 Any command you can specify in a shell.
26
27-e::
28--event=::
Frederic Weisbecker1b290d62009-11-23 15:42:35 +010029 Select the PMU event. Selection can be:
Ingo Molnare33e0a42009-04-20 15:58:01 +020030
Frederic Weisbecker1b290d62009-11-23 15:42:35 +010031 - a symbolic event name (use 'perf list' to list all events)
32
33 - a raw PMU event (eventsel+umask) in the form of rNNN where NNN is a
34 hexadecimal event descriptor.
35
36 - a hardware breakpoint event in the form of '\mem:addr[:access]'
37 where addr is the address in memory you want to break in.
38 Access is the memory access type (read, write, execute) it can
39 be passed as follows: '\mem:addr[:[r][w][x]]'.
40 If you want to profile read-write accesses in 0x1000, just set
41 'mem:0x1000:rw'.
Shawn Bohrer08dbd7e2010-11-30 19:57:16 -060042
43--filter=<filter>::
44 Event filter.
45
Ingo Molnare33e0a42009-04-20 15:58:01 +020046-a::
Shawn Bohrer08dbd7e2010-11-30 19:57:16 -060047--all-cpus::
48 System-wide collection from all CPUs.
Ingo Molnare33e0a42009-04-20 15:58:01 +020049
50-l::
Arnaldo Carvalho de Melo386c0b72009-08-05 10:04:53 -030051 Scale counter values.
52
53-p::
54--pid=::
Shawn Bohrer08dbd7e2010-11-30 19:57:16 -060055 Record events on existing process ID.
56
57-t::
58--tid=::
59 Record events on existing thread ID.
Arnaldo Carvalho de Melo386c0b72009-08-05 10:04:53 -030060
61-r::
62--realtime=::
63 Collect data with this RT SCHED_FIFO priority.
Kirill Smelkovacac03f2011-01-12 17:59:36 +030064-D::
65--no-delay::
66 Collect data without buffering.
Arnaldo Carvalho de Melo386c0b72009-08-05 10:04:53 -030067-A::
68--append::
69 Append to the output file to do incremental profiling.
70
71-f::
72--force::
Frederic Weisbecker7865e812010-04-14 19:42:07 +020073 Overwrite existing data file. (deprecated)
Arnaldo Carvalho de Melo386c0b72009-08-05 10:04:53 -030074
75-c::
76--count=::
77 Event period to sample.
78
79-o::
80--output=::
81 Output file name.
82
83-i::
Stephane Eranian2e6cdf92010-05-12 10:40:01 +020084--no-inherit::
85 Child tasks do not inherit counters.
Arnaldo Carvalho de Melo386c0b72009-08-05 10:04:53 -030086-F::
87--freq=::
88 Profile at this frequency.
89
90-m::
91--mmap-pages=::
92 Number of mmap data pages.
93
94-g::
95--call-graph::
96 Do call-graph (stack chain/backtrace) recording.
97
Arnaldo Carvalho de Melob44308f2010-10-26 15:20:09 -020098-q::
99--quiet::
100 Don't print any message, useful for scripting.
101
Arnaldo Carvalho de Melo386c0b72009-08-05 10:04:53 -0300102-v::
103--verbose::
104 Be more verbose (show counter open errors, etc).
105
106-s::
107--stat::
108 Per thread counts.
109
110-d::
111--data::
112 Sample addresses.
113
Arnaldo Carvalho de Melo9c90a612010-12-02 10:25:28 -0200114-T::
115--timestamp::
116 Sample timestamps. Use it with 'perf report -D' to see the timestamps,
117 for instance.
118
Arnaldo Carvalho de Melo386c0b72009-08-05 10:04:53 -0300119-n::
120--no-samples::
121 Don't sample.
Ingo Molnare33e0a42009-04-20 15:58:01 +0200122
Frederic Weisbeckerec7ba4e2009-08-31 03:32:03 +0200123-R::
124--raw-samples::
Frederic Weisbeckerbdef3b02010-04-14 20:05:17 +0200125Collect raw sample records from all opened counters (default for tracepoint counters).
Frederic Weisbeckerec7ba4e2009-08-31 03:32:03 +0200126
Stephane Eranianc45c6ea2010-05-28 12:00:01 +0200127-C::
128--cpu::
Shawn Bohrer08dbd7e2010-11-30 19:57:16 -0600129Collect samples only on the list of CPUs provided. Multiple CPUs can be provided as a
130comma-separated list with no space: 0,1. Ranges of CPUs are specified with -: 0-2.
Stephane Eranianc45c6ea2010-05-28 12:00:01 +0200131In per-thread mode with inheritance mode on (default), samples are captured only when
132the thread executes on the designated CPUs. Default is to monitor all CPUs.
133
Stephane Eraniana1ac1d32010-06-17 11:39:01 +0200134-N::
135--no-buildid-cache::
136Do not update the builid cache. This saves some overhead in situations
137where the information in the perf.data file (which includes buildids)
138is sufficient.
139
Ingo Molnare33e0a42009-04-20 15:58:01 +0200140SEE ALSO
141--------
Thomas Gleixner386b05e2009-06-06 14:56:33 +0200142linkperf:perf-stat[1], linkperf:perf-list[1]