@@ -89,9 +89,62 @@ OPTIONS
89
89
90
90
--filter=<filter>::
91
91
Event filter. This option should follow a event selector (-e) which
92
- selects tracepoint event(s). Multiple '--filter' options are combined
92
+ selects either tracepoint event(s) or a hardware trace PMU
93
+ (e.g. Intel PT or CoreSight).
94
+
95
+ - tracepoint filters
96
+
97
+ In the case of tracepoints, multiple '--filter' options are combined
93
98
using '&&'.
94
99
100
+ - address filters
101
+
102
+ A hardware trace PMU advertises its ability to accept a number of
103
+ address filters by specifying a non-zero value in
104
+ /sys/bus/event_source/devices/<pmu>/nr_addr_filters.
105
+
106
+ Address filters have the format:
107
+
108
+ filter|start|stop|tracestop <start> [/ <size>] [@<file name>]
109
+
110
+ Where:
111
+ - 'filter': defines a region that will be traced.
112
+ - 'start': defines an address at which tracing will begin.
113
+ - 'stop': defines an address at which tracing will stop.
114
+ - 'tracestop': defines a region in which tracing will stop.
115
+
116
+ <file name> is the name of the object file, <start> is the offset to the
117
+ code to trace in that file, and <size> is the size of the region to
118
+ trace. 'start' and 'stop' filters need not specify a <size>.
119
+
120
+ If no object file is specified then the kernel is assumed, in which case
121
+ the start address must be a current kernel memory address.
122
+
123
+ <start> can also be specified by providing the name of a symbol. If the
124
+ symbol name is not unique, it can be disambiguated by inserting #n where
125
+ 'n' selects the n'th symbol in address order. Alternately #0, #g or #G
126
+ select only a global symbol. <size> can also be specified by providing
127
+ the name of a symbol, in which case the size is calculated to the end
128
+ of that symbol. For 'filter' and 'tracestop' filters, if <size> is
129
+ omitted and <start> is a symbol, then the size is calculated to the end
130
+ of that symbol.
131
+
132
+ If <size> is omitted and <start> is '*', then the start and size will
133
+ be calculated from the first and last symbols, i.e. to trace the whole
134
+ file.
135
+
136
+ If symbol names (or '*') are provided, they must be surrounded by white
137
+ space.
138
+
139
+ The filter passed to the kernel is not necessarily the same as entered.
140
+ To see the filter that is passed, use the -v option.
141
+
142
+ The kernel may not be able to configure a trace region if it is not
143
+ within a single mapping. MMAP events (or /proc/<pid>/maps) can be
144
+ examined to determine if that is a possibility.
145
+
146
+ Multiple filters can be separated with space or comma.
147
+
95
148
--exclude-perf::
96
149
Don't record events issued by perf itself. This option should follow
97
150
a event selector (-e) which selects tracepoint event(s). It adds a
0 commit comments