Re: bug: ftrace & lockdep badness

From: Steven Rostedt
Date: Wed Nov 05 2008 - 11:48:05 EST



On Wed, 5 Nov 2008, Ingo Molnar wrote:

>
> * Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> > This is the type of problems we deal with when we have the tracer
> > tracing lockdep code at the same time the lockdep code is checking
> > the tracer.
>
> ok ... you are right, i guess we need to go back to raw locks after
> all?

I do like the fact that lockdep checks it too. But there's times that we
can not do that.

Perhaps we can do something in between.

Make a rb_spin_lock macro inside ring_buffer.c that can be either a
spin_lock or a raw_spin_lock. There are some tracers that must have this
as a raw (function trace, irqsoff and preemptoff), but the rest should be
fine. We can make it where the rb_spin_lock is a raw lock when any of
those three tracers are configured, and make it into a normal lock when
they are not.

This way we can still test the integrity of the ring_buffer for other
tracers. We just need to be careful when we are using function tracing or
irqs/preempt off tracing. But we need to be careful with those anyway.

-- Steve

--
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/