Messages in this thread | | | Date | Wed, 12 Nov 2008 23:15:52 +0100 | From | Ingo Molnar <> | Subject | Re: [PATCH 1/2] tracing/function-return-tracer: Make the function return tracer lockless |
| |
* Frederic Weisbecker <fweisbec@gmail.com> wrote:
> Impact: remove spinlocks and irq disabling in function return tracer. > > I've tried to figure out all of the race condition that could happen when > the tracer pushes or pops a return address trace to/from the current > thread_info. > > Theory: > > _ One thread can only execute on one cpu at a time. So this code doesn't need > to be SMP-safe. Just drop the spinlock. > _ The only race could happen between the current thread and an interrupt. If an > interrupt is raised, it will increase the index of the return stack storage and > then execute until the end of the tracing to finally free the index it used. > We don't need to disable irqs. > > This is theorical. In practice, I've tested it with a two-core SMP > and had no problem at all. Perhaps -tip testing could confirm it. > > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> > Cc: Steven Rostedt <rostedt@goodmis.org>
applied to tip/tracing/function-return-tracer, thanks Frederic!
Ingo
| |