A question about the softirq implementation in DDE Linux26
dvogt at os.inf.tu-dresden.de
Fri Feb 26 16:50:39 CET 2010
On Fri, 2010-02-26 at 22:08 +0800, Da Zheng wrote:
> In Linux local_irq_save() disables irqs in the local processor, so if
> the hard
> IRQ handler tries to raise softirq, it is guaranteed that the softirq
> will not be scheduled to run, and vice versa. How would that work on a
> SMP machine?
Correct me if I am wrong, but i think even on native Linux the hard IRQ
handler and the soft IRQ handler could run on the same time (on two
different processors) as only *local* interrupts are disabled.
> [...] 2.3.43 introduced softirqs, and re-implemented the (now
> deprecated) BHs underneath them. Softirqs are fully-SMP versions of
> BHs: they can run on as many CPUs at once as required. This means
> they need to deal with any races in shared data using their own locks.
More information about the l4-hackers