lkml.org 
[lkml]   [2009]   [Mar]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [RFC][PATCH 3/4] tracing: add per-event filtering
From
Date

On Tue, 2009-03-17 at 21:37 -0400, Steven Rostedt wrote:
>
>
> On Tue, 17 Mar 2009, Tom Zanussi wrote:
> > diff --git a/kernel/trace/trace_events_stage_3.h b/kernel/trace/trace_events_stage_3.h
> > index 30627d8..d556274 100644
> > --- a/kernel/trace/trace_events_stage_3.h
> > +++ b/kernel/trace/trace_events_stage_3.h
> > @@ -154,6 +154,7 @@ static struct ftrace_event_call event_##call; \
> > \
> > static void ftrace_raw_event_##call(proto) \
> > { \
> > + struct ftrace_event_call *call = &event_##call; \
> > struct ring_buffer_event *event; \
> > struct ftrace_raw_##call *entry; \
> > unsigned long irq_flags; \
> > @@ -172,6 +173,9 @@ static void ftrace_raw_event_##call(proto) \
> > assign; \
> > \
> > trace_current_buffer_unlock_commit(event, irq_flags, pc); \
>
> I have a concern hear about races. Once the commit happens, there's
> nothing protecting us from being preempted. The reader could in fact come
> in and consume the commit, and a new write may happen, and this discard
> will corrupt the data in the buffer. Also in overwrite mode, the writer
> itself can over write this.
>
> Would you be able to move the above unlock_commit after this.
> I'll make the necessary changes in the commit to check for discarded data.
>

Yeah, I had meant to do that, but was having enough trouble with the
ring-buffer stuff that I wanted to avoid wondering what might happen if
I discarded an uncommitted event at that point.

I'll make that change in the next version.

Tom

> Thanks,
>
> -- Steve
>
>
>
> > +
> \ > + if (call->preds && !filter_match_preds(call, entry)) \
> > + rb_event_discard(event); \
> > } \
> > \
> > static int ftrace_raw_reg_event_##call(void) \
> > --
> > 1.5.6.3
> >
> >
> >
> >
> >
> >
> >



\
 
 \ /
  Last update: 2009-03-18 07:09    [W:0.086 / U:0.292 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site