diff options
author | Adrian Hunter <adrian.hunter@intel.com> | 2016-09-23 10:38:39 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-09-29 10:17:02 -0400 |
commit | 1b36c03e356936d62abbe2accaae1573d3b66f14 (patch) | |
tree | 6eb7cc8ca62751aba4661d07823a6cea3cb912e7 /tools/perf/Documentation | |
parent | cd67f99fe90dcf515f1c70c474b84d56b6236cbb (diff) |
perf record: Add support for using symbols in address filters
Symbols come from either the DSO or /proc/kallsyms for the kernel.
Details of the functionality can be found in Documentation/perf-record.txt.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: http://lkml.kernel.org/r/1474641528-18776-8-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/Documentation')
-rw-r--r-- | tools/perf/Documentation/perf-record.txt | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt index babbb63e6d9d..92335193dc33 100644 --- a/tools/perf/Documentation/perf-record.txt +++ b/tools/perf/Documentation/perf-record.txt | |||
@@ -89,9 +89,62 @@ OPTIONS | |||
89 | 89 | ||
90 | --filter=<filter>:: | 90 | --filter=<filter>:: |
91 | Event filter. This option should follow a event selector (-e) which | 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 | using '&&'. | 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 | --exclude-perf:: | 148 | --exclude-perf:: |
96 | Don't record events issued by perf itself. This option should follow | 149 | Don't record events issued by perf itself. This option should follow |
97 | a event selector (-e) which selects tracepoint event(s). It adds a | 150 | a event selector (-e) which selects tracepoint event(s). It adds a |