Re: [PATCH RFC -rt] updated synchronize_all_irqs implementation
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2007-09-26 17:48:20
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2007-09-26 17:48:20
-- On Wed, 26 Sep 2007, Paul E. McKenney wrote:
quoted
As long as the list includes code guarded by spin_lock_irqsave()/spin_unlock_irqrestore() I am happy. Does this count as an irq-disable region? Peter said earlier that in -rt such code still runs with IRQs enabled...If I remember correctly, it depends on whether the underlying spinlock is spinlock_t or raw_spinlock_t. However, doesn't spin_lock_irqsave() disable preemption in both cases (either explicitly for the spinlock_t case or implicitly via irq disable in the raw_spinlock_t case)? If so, synchronize_all_irqs() should do what you want in both cases.
Nope not at all. In RT spin_lock_irqsave does not disable preemption. That's part of the "features" of RT. And also why we want everyone to use spin_lock_irqsave instead of local_irq_save. Because the later does prevent preemption and adds latencies. -- Steve