Re: [patch, -rc5-mm3] lock validator: fix ns83820.c irq-flags bug

From: Keith Owens
Date: Sun Jun 04 2006 - 04:49:35 EST


Ingo Molnar (on Sun, 4 Jun 2006 10:30:17 +0200) wrote:
>2) allowing the nesting of hardware interrupts only 'spreads out'
>the handling of the current ISR, causing extra cachemisses that would
>otherwise not happen. Furthermore, on architectures where ISRs share
>the kernel stacks, enabling interrupts in ISRs introduces a much
>higher kernel-stack-nesting and thus kernel-stack-overflow risk.

It is worse than you think. A third party network driver enabled
interrupts in its irq handler. For reasons that are still not clear,
that allowed recursive interrupts from the same device. Unexpected I
know, because the card's ISR should still have been masked, but the
stack trace said otherwise. When multiple packets arrived for the same
driver it drove multiple levels of kernel functions to handle them and
completely blew the kernel stack, even though it was using a separate
IRQ stack.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/