Re: [PATCH 1/2] tracing/function-return-tracer: Make the functionreturn tracer lockless

From: Ingo Molnar
Date: Wed Nov 12 2008 - 17:16:19 EST



* Frederic Weisbecker <fweisbec@xxxxxxxxx> 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@xxxxxxxxx>
> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>

applied to tip/tracing/function-return-tracer, thanks Frederic!

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/