LWN.net Logo

perf trace: Add filter support

From:  Li Zefan <lizf@cn.fujitsu.com>
To:  Ingo Molnar <mingo@elte.hu>
Subject:  [PATCH 0/6] perf trace: Add filter support
Date:  Mon, 07 Sep 2009 16:11:57 +0800
Cc:  Peter Zijlstra <peterz@infradead.org>, Steven Rostedt <rostedt@goodmis.org>, Frederic Weisbecker <fweisbec@gmail.com>, Tom Zanussi <tzanussi@gmail.com>, Jason Baron <jbaron@redhat.com>, LKML <linux-kernel@vger.kernel.org>
Archive-link:  Article, Thread

This patchset adds filter support for perf counter, so not all
profile events are recorded but only those match the filters
we set.

An example:

 #./perf record -f -e irq:irq_handler_entry:irq==18:record
 or
 #./perf record -f -e irq:irq_handler_entry:irq==18 -R
 ^C
 # ./perf trace
 version = 0.5
            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

---
 include/linux/ftrace_event.h       |   19 +++-
 include/linux/perf_counter.h       |    1 +
 include/linux/syscalls.h           |   14 ++-
 include/trace/ftrace.h             |   10 +-
 kernel/perf_counter.c              |   40 ++++++-
 kernel/trace/trace.h               |    9 +-
 kernel/trace/trace_event_profile.c |   18 +++
 kernel/trace/trace_events_filter.c |  247 +++++++++++++++++++++---------------
 kernel/trace/trace_syscalls.c      |    9 +-
 tools/perf/builtin-record.c        |   12 ++
 tools/perf/util/parse-events.c     |   48 ++++++-
 tools/perf/util/parse-events.h     |    1 +
 12 files changed, 303 insertions(+), 125 deletions(-)


Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds