Re: [PATCH] Limit irq nesting

From: Mikulas Patocka
Date: Thu Jul 17 2008 - 07:59:58 EST


On Thu, 17 Jul 2008, KOSAKI Motohiro wrote:

> Hi Mikulas,
>
> > ---
> > include/linux/interrupt.h | 7 ++++++-
> > 1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > Index: linux-2.6.26-rc8/include/linux/interrupt.h
> > ===================================================================
> > --- linux-2.6.26-rc8.orig/include/linux/interrupt.h 2008-06-25 03:58:20.000000000 +0200
> > +++ linux-2.6.26-rc8/include/linux/interrupt.h 2008-07-01 17:42:44.000000000 +0200
> > @@ -16,6 +16,11 @@
> > #include <asm/system.h>
> >
> > /*
> > + * Max number of interrupt handlers on a stack. To prevent stack overflow.
> > + */
> > +#define MAX_NESTED_INTERRUPTS 2
> > +
> > +/*
> > * These correspond to the IORESOURCE_IRQ_* defines in
> > * linux/ioport.h to select the interrupt line behaviour. When
> > * requesting an interrupt without specifying a IRQF_TRIGGER, the
>
> I have no objection to your approach.
> but I don't know MAX_NESTED_INTERRUPTS is properly or not.
>
> Could you explain why MAX_NESTED_INTERRUPTS is two?
> Is it architecture independent properly number?

I assume that there is at most one active bad-behaving device with long
interrupt processing time. For example IDE disk in PIO mode.

If someone starts whining that he is simultaneously using two disks in PIO
mode and is losing characters on serial line, we can make an architecture
override for this (after we check that the architecture has enough stack
space to hold more interrupts). But PIO mode is dead anyway, so there's no
need to preemptively care about it.

Mikulas
--
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/