On Mon, Dec 03, 2012 at 10:54:02AM +0100, Thomas Gleixner wrote: > On Fri, 30 Nov 2012, Paul E. McKenney wrote: > > On Fri, Nov 30, 2012 at 04:15:09PM -0800, Frank Rowand wrote: > > > > Possible unsafe locking scenario: > > > > > > > > CPU0 > > > > ---- > > > > lock(rcu_kthread_wq.lock.lock.wait_lock); > > > > <Interrupt> > > > > lock(rcu_kthread_wq.lock.lock.wait_lock); > > > > ??? > > > > These are all spin_lock_irqsave() calls, so how would the interrupt > > happen? Or do these need to be changed to raw_spinlock_t? > > > > Hmmm... In include/linux/wait.h, doesn't struct __wait_queue_head > > need to have raw_spinlock_t rather than spinlock_t? Please try that > > change and let me know what happens. > > No. We can't do that. The reason is that some wait queue wakeups have > callbacks which can't be called with interrupts disabled on RT. > > IIRC, I restructured the RCU code in 3.0-rt so it won't be affected by > this. I'll have a look. I guess I am once again getting out of touch with -rt... Apologies for the noise. Thanx, Paul -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html