xref: /openbmc/linux/tools/perf/Documentation/perf-record.txt (revision df2634f43f5106947f3735a0b61a6527a4b278cd)
1perf-record(1)
2==============
3
4NAME
5----
6perf-record - Run a command and record its profile into perf.data
7
8SYNOPSIS
9--------
10[verse]
11'perf record' [-e <EVENT> | --event=EVENT] [-l] [-a] <command>
12'perf record' [-e <EVENT> | --event=EVENT] [-l] [-a] -- <command> [<options>]
13
14DESCRIPTION
15-----------
16This command runs a command and gathers a performance counter profile
17from it, into perf.data - without displaying anything.
18
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=::
29	Select the PMU event. Selection can be:
30
31        - 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'.
42
43--filter=<filter>::
44        Event filter.
45
46-a::
47--all-cpus::
48        System-wide collection from all CPUs.
49
50-l::
51        Scale counter values.
52
53-p::
54--pid=::
55	Record events on existing process ID.
56
57-t::
58--tid=::
59        Record events on existing thread ID.
60
61-r::
62--realtime=::
63	Collect data with this RT SCHED_FIFO priority.
64-D::
65--no-delay::
66	Collect data without buffering.
67-A::
68--append::
69	Append to the output file to do incremental profiling.
70
71-f::
72--force::
73	Overwrite existing data file. (deprecated)
74
75-c::
76--count=::
77	Event period to sample.
78
79-o::
80--output=::
81	Output file name.
82
83-i::
84--no-inherit::
85	Child tasks do not inherit counters.
86-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
98-q::
99--quiet::
100	Don't print any message, useful for scripting.
101
102-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
114-T::
115--timestamp::
116	Sample timestamps. Use it with 'perf report -D' to see the timestamps,
117	for instance.
118
119-n::
120--no-samples::
121	Don't sample.
122
123-R::
124--raw-samples::
125Collect raw sample records from all opened counters (default for tracepoint counters).
126
127-C::
128--cpu::
129Collect 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.
131In 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
134-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
140SEE ALSO
141--------
142linkperf:perf-stat[1], linkperf:perf-list[1]
143