lkml.org 
[lkml]   [2008]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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


\
 
 \ /
  Last update: 2008-11-12 23:19    [W:0.062 / U:0.616 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site