Re: [PATCH] Prevent nested interrupts when the IRQ stack is near overflowing v2

Thomas Gleixner
2010-03-25T11:16:50Z

On Thu, 25 Mar 2010, Alan Cox wrote:

> > Which leads to the general question why we have that IRQF_DISABLED
> > shite at all. AFAICT the historical reason were IDE drivers, but we
> > grew other abusers like USB, SCSI and other crap which runs hard irq
> > handlers for hundreds of micro seconds in the worst case.
>
> Anyone you've forgotten to offend ?

Hmm, not sure. Have not measured IRQ handler run times for quite a
while :)

> Pretty much the only 'core' driver today which enables IRQs in the irq
> handlers and needs it is the old IDE layer. There are also a couple of
> drivers which play games with disable/enable_irq in the IRQ paths for
> other reasons (lack of irq threads when written and a hardware model thats
> totally SMP unfriendly). 8390 is the obvious one here and it at least
> would be far far saner using threaded IRQs and normal locking with IRQs
> unmasked.

Right, but that's not the problem here. We talk about a (hopefully)
well written interrupt handler which runs for a very short
time. What's the point of running it with interrupts enabled ?
Nothing, we just run into stack overflow problems. So what's better:
an unreliable and ugly hackaround or just avoiding the possible stack
overflow in the first place ?

Thanks,

tglx