blob: 52462ae26455c264aa83130c7bc50c9ca97807cc [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 Galbraith9e096752009-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.
64-A::
65--append::
66 Append to the output file to do incremental profiling.
67
68-f::
69--force::
Frederic Weisbecker7865e812010-04-14 19:42:07 +020070 Overwrite existing data file. (deprecated)
Arnaldo Carvalho de Melo386c0b72009-08-05 10:04:53 -030071
72-c::
73--count=::
74 Event period to sample.
75
76-o::
77--output=::
78 Output file name.
79
80-i::
Stephane Eranian2e6cdf92010-05-12 10:40:01 +020081--no-inherit::
82 Child tasks do not inherit counters.
Arnaldo Carvalho de Melo386c0b72009-08-05 10:04:53 -030083-F::
84--freq=::
85 Profile at this frequency.
86
87-m::
88--mmap-pages=::
89 Number of mmap data pages.
90
91-g::
92--call-graph::
93 Do call-graph (stack chain/backtrace) recording.
94
Arnaldo Carvalho de Melob44308f2010-10-26 15:20:09 -020095-q::
96--quiet::
97 Don't print any message, useful for scripting.
98
Arnaldo Carvalho de Melo386c0b72009-08-05 10:04:53 -030099-v::
100--verbose::
101 Be more verbose (show counter open errors, etc).
102
103-s::
104--stat::
105 Per thread counts.
106
107-d::
108--data::
109 Sample addresses.
110
Arnaldo Carvalho de Melo9c90a612010-12-02 10:25:28 -0200111-T::
112--timestamp::
113 Sample timestamps. Use it with 'perf report -D' to see the timestamps,
114 for instance.
115
Arnaldo Carvalho de Melo386c0b72009-08-05 10:04:53 -0300116-n::
117--no-samples::
118 Don't sample.
Ingo Molnare33e0a42009-04-20 15:58:01 +0200119
Frederic Weisbeckerec7ba4e2009-08-31 03:32:03 +0200120-R::
121--raw-samples::
Frederic Weisbeckerbdef3b02010-04-14 20:05:17 +0200122Collect raw sample records from all opened counters (default for tracepoint counters).
Frederic Weisbeckerec7ba4e2009-08-31 03:32:03 +0200123
Stephane Eranianc45c6ea2010-05-28 12:00:01 +0200124-C::
125--cpu::
Shawn Bohrer08dbd7e2010-11-30 19:57:16 -0600126Collect samples only on the list of CPUs provided. Multiple CPUs can be provided as a
127comma-separated list with no space: 0,1. Ranges of CPUs are specified with -: 0-2.
Stephane Eranianc45c6ea2010-05-28 12:00:01 +0200128In per-thread mode with inheritance mode on (default), samples are captured only when
129the thread executes on the designated CPUs. Default is to monitor all CPUs.
130
Stephane Eraniana1ac1d32010-06-17 11:39:01 +0200131-N::
132--no-buildid-cache::
133Do not update the builid cache. This saves some overhead in situations
134where the information in the perf.data file (which includes buildids)
135is sufficient.
136
Ingo Molnare33e0a42009-04-20 15:58:01 +0200137SEE ALSO
138--------
Thomas Gleixner386b05e2009-06-06 14:56:33 +0200139linkperf:perf-stat[1], linkperf:perf-list[1]