Re: [PATCH 0/7] tracing: bug fixes for tracing/filters

From: Tom Zanussi
Date: Sat Apr 11 2009 - 13:58:52 EST


On Sat, 2009-04-11 at 16:48 +0200, Frederic Weisbecker wrote:
> On Sat, Apr 11, 2009 at 04:30:48AM -0500, Tom Zanussi wrote:
> > Hi,
> >
> > On Sat, 2009-04-11 at 15:52 +0800, Li Zefan wrote:
> > > This patchset fixes some bugs in tracing/filters. Most of the change
> > > goes to the last patch, and others are small ones.
> > >
> >
> > At first glance, they look good and fix real problems - thanks for
> > fixing them. Re patch 7, there's been some discussion about using rcu
> > for this. See:
> >
> > http://lkml.org/lkml/2009/4/5/46
> >
> > >From that discussion, it seems some non-trivial changes to rcu would be
> > needed for this. I'm playing around with a different idea now to
> > hopefully avoid the need for that, or the other approach mentioned, of
> > temporarily stopping tracing while removing/changing the filters.
> >
> > Basically my thought is to avoid the problem by not allocating or
> > destroying the preds when removing filters but instead switch out the
> > pred->fns with a nop version while keeping the fields intact for awhile.
> > I think that will work for removing filters, but I still need to think
> > about how it would (or would not) work for replacing them.
> >
> > Tom
>
>
>
> It would be sort of reinventing rcu :-)
> Well, Paul proposed something recently, hmm I should double check
> this discussion.
>

Well, if so, the resemblance would be only superficial e.g. the
difference between a cheap parlor trick and David Copperfield. ;-) Mine
would be much simpler and local to the filter code. Also, I think I'm
overstating the 'keeping the fields intact for awhile' part - it should
be possible to not deal with that at all at the cost of a small
possibility of a false positive or negative while switching filters.

I'll run it up the flagpole and see if it flies, and hopefully post a
patch for it, sometime this weekend...

Tom

> Anyway, the fixes from Li (other than 4 and 7 for which we have comments)
> look very good!
>
> Frederic.
>
>
>
> >
> > > Maybe 3rd to 6th patches can be regarded as small enhancements instead
> > > of bug fixes? But they are behavioural changes.
> > >
> > >
> > > [PATCH 1/7] tracing/filters: NUL-terminate user input filter
> > > [PATCH 2/7] tracing/filters: fix NULL pointer dereference
> > > [PATCH 3/7] tracing/filters: allow user input integer to be oct or hex
> > > [PATCH 4/7] tracing/filters: allow user to specify a filter val to be string
> > > [PATCH 5/7] tracing/filters: disallow newline as delimeter
> > > [PATCH 6/7] tracing/filters: return proper error code when writing filter file
> > > [PATCH 7/7] tracing/filters: make filter preds RCU safe
> > >
> > > kernel/trace/trace.h | 6 +-
> > > kernel/trace/trace_events.c | 16 +++--
> > > kernel/trace/trace_events_filter.c | 131 ++++++++++++++++++++++++++---------
> > > kernel/trace/trace_events_stage_3.h | 10 +++-
> > > 4 files changed, 121 insertions(+), 42 deletions(-)
> > > ---
> >
>

--
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/