On Thu, Jan 16, 2014 at 01:39:06PM -0500, Steven Rostedt wrote: > On Thu, 16 Jan 2014 18:45:36 +0100 > Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > > On Thu, Jan 16, 2014 at 12:18:24PM -0500, Steven Rostedt wrote: > > > > Didn't see anything horrible in there, so fine with me. > > > > Another thing I recently ran into was: > > > > local_irq_disable(); > > preempt_disable(); > > local_irq_enable(); > > > > local_irq_disable(); > > preempt_enable(); > > local_irq_enable(); > > > > I'm not sure any of our debugging catches that, I meant to extend > > lockdep, but maybe it could also be hooked into something else. > > Hmm, what's wrong with the above? Suppose a reschedule interrupt happens in the middle; we set NEED_RESCHED but won't act because preempt is disabled. When we hit preempt_enable() we'll call into preempt_schedule() but fail because preemptible() finds irqs_disabled(). And in the end we do not schedule, but have NEED_RESCHED set. FAIL. -- 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