Messages in this thread | | | Date | Thu, 25 Mar 2010 01:36:52 +0100 | From | Andi Kleen <> | Subject | Re: [PATCH] Prevent nested interrupts when the IRQ stack is near overflowing v2 |
| |
On Thu, Mar 25, 2010 at 12:08:23AM +0100, Thomas Gleixner wrote: > On Wed, 24 Mar 2010, Thomas Gleixner wrote: > > > On Wed, 24 Mar 2010, Andi Kleen wrote: > > > > > Prevent nested interrupts when the IRQ stack is near overflowing v2 > > > > > > Interrupts can always nest when they don't run with IRQF_DISABLED. > > > > > > When a lot of interrupts hit the same vector on the same > > > CPU nested interrupts can overflow the irq stack and cause hangs. > That's utter nonsense. An interrupt storm on the same vector does not > cause irq nesting. The irq code prevents reentering a handler and in
Sorry it's the same CPU, not the same vector. Yes the reference to same vector was misleading.
" Multiple vectors on a multi port NIC pointing to the same CPU, all hitting the irq stack until it overflows. "
> case of MSI-X it just disables the IRQ when it comes again while the > first irq on that vector is still in progress. So the maximum nesting > is two up to handle_edge_irq() where it disables the IRQ and returns > right away.
Real maximum nesting is all IRQs running with interrupts on pointing to the same CPU. Enough from multiple busy IRQ sources and you go boom.
-Andi
-- ak@linux.intel.com -- Speaking for myself only.
| |