Messages in this thread Patch in this message | | | From | Vaibhav Nagarnaik <> | Date | Tue, 3 May 2011 16:27:22 -0700 | Subject | Re: [RFC PATCH] tracing: Don't call wakeup() when committing the event |
| |
On Tue, May 3, 2011 at 4:08 PM, Frederic Weisbecker <fweisbec@gmail.com> wrote: > On Tue, May 03, 2011 at 06:47:32PM -0400, Steven Rostedt wrote: >> On Wed, 2011-05-04 at 00:09 +0200, Frederic Weisbecker wrote: >> >> > I wonder if we should have a lite version of wake_up() that checks >> > if the list of waiters is empty before locking the queue. >> > After all we don't care much about tight races for tracing. >> >> Since tracing is a special case here, we probably could get away to just >> do it ourselves. That is, have our own flag that determines if we should >> wakeup or not. > > Yep, agreed. > How about this? Check if the waitqueue is active and if true, operate on the trace_wait queue.
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 06f4458..e03ee24 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -353,7 +353,7 @@ void trace_wake_up(void) { int cpu;
- if (trace_flags & TRACE_ITER_BLOCK) + if (trace_flags & TRACE_ITER_BLOCK || !waitqueue_active(&trace_wait)) return; /* * The runqueue_is_locked() can fail, but this is the best we Vaibhav Nagarnaik
| |