Re: [GIT PULL] tracepoints filtering updates

From: Ingo Molnar
Date: Thu Mar 03 2011 - 02:10:52 EST



* Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:

> l (fweisbec[at]gmail.com)
> -2.0 BAYES_00 BODY: Bayes spam probability is 0 to 1%
> [score: 0.0000]
> Content-Length: 3017
> Lines: 76
>
> On Wed, Mar 02, 2011 at 09:49:25AM +0100, Ingo Molnar wrote:
> >
> > * Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:
> >
> > > We currently set the filters after we mmap the events, this is a
> > > race that let undesired events record themselves in the buffer before
> > > we had the time to set the filters.
> > >
> > > So set the filters before they can be recorded. That also librarizes
> > > the filters setting so that filtering can be done more easily
> > > from other tools than perf record later.
> > >
> > > (PS: This should fix most of the bugs Ingo has reported
> > > about filters that weren't working with perf).
> >
> > Nice!
> >
> > Mind pulling Steve's filter-enhancements branch and sending a pull request for the
> > whole thing? Steve's branch was:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace.git tip/perf/filter
> >
> > ( Or your fixes could be applied to Steve's branch as well - whichever direction you
> > guys prefer - the important thing is to have filtering tested and validated as a
> > whole. )
> >
> > Thanks,
> >
> > Ingo
>
> Ok, I've merged Steve's branch and tested a few common filters with perf:
>
> * irq numbers on irq tracepoints
> * fd on sys_enter_close
> * prev_comm on sched_switch (to test string)
>
> they all work well.
>
> You can pull the branch from:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing.git
> perf/core
>
> --
> Frederic Weisbecker (2):
> perf: Set filters before mmaping events
> Merge branch '/tip/perf/filter' of git://git.kernel.org/.../rostedt/linux-2.6-trace.git into perf/core
>
> Steven Rostedt (14):
> tracing/filter: Have no filter return a match
> tracing/filter: Move OR and AND logic out of fn() method
> tracing/filter: Dynamically allocate preds
> tracing/filter: Call synchronize_sched() just once for system filters
> tracing/filter: Allocate the preds in an array
> tracing/filter: Free pred array on disabling of filter
> tracing/filter: Use a tree instead of stack for filter_match_preds()
> tracing/filter: Optimize short ciruit check
> tracing/filter: Check the created pred tree
> tracing/filter: Optimize filter by folding the tree
> tracing/filter: Move MAX_FILTER_PRED to local tracing directory
> tracing/filter: Increase the max preds to 2^14
> tracing/filter: Swap entire filter of events
> tracing/filter: Remove synchronize_sched() from __alloc_preds()
> --
> include/linux/ftrace_event.h | 1 -
> kernel/trace/trace.h | 38 ++-
> kernel/trace/trace_events_filter.c | 885 +++++++++++++++++++++++++++++-------
> tools/perf/builtin-record.c | 18 +-
> tools/perf/util/evlist.c | 28 ++
> tools/perf/util/evlist.h | 1 +
> 6 files changed, 789 insertions(+), 182 deletions(-)

Pulled, thanks a lot guys!

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/