Messages in this thread | | | Date | Thu, 15 Oct 2009 11:19:20 +0800 | From | Li Zefan <> | Subject | [PATCH 0/4] perf trace: Add filter Suppport, V3 |
| |
This patchset adds filter support for perf event, so not all profile events are recorded but only those match the filters we set.
An example:
#./perf record -R -f -e irq:irq_handler_entry --filter irq==18 ^C # ./perf trace perf-4303 ... irq_handler_entry: irq=18 handler=eth0 init-0 ... irq_handler_entry: irq=18 handler=eth0 init-0 ... irq_handler_entry: irq=18 handler=eth0 init-0 ... irq_handler_entry: irq=18 handler=eth0 init-0 ... irq_handler_entry: irq=18 handler=eth0
The syntax of filter expressions can be found in Documentation/trace/events.txt.
Major changes since V2:
- Remove struct perf_event::filter_active.
Major changes since V1:
- Make filters per perf event, instead of per tracepoint.
- Use "--filter" to set a filter for a trace event, instead of mixing it into "-e" option.
--- include/linux/ftrace_event.h | 11 ++- include/linux/perf_counter.h | 1 + include/linux/perf_event.h | 6 + kernel/perf_event.c | 80 +++++++++- kernel/trace/trace.h | 6 +- kernel/trace/trace_events_filter.c | 302 +++++++++++++++++++++--------------- tools/perf/builtin-record.c | 15 ++- tools/perf/util/parse-events.c | 26 +++- tools/perf/util/parse-events.h | 2 + 9 files changed, 306 insertions(+), 143 deletions(-)
| |