Messages in this thread |  | | Subject | Re: [RFC][PATCH] irq: remove IRQF_DISABLED | | From | Benjamin Herrenschmidt <> | | Date | Fri, 06 Mar 2009 20:59:03 +1100 |
| |
> If you have distinct interrupt priorities, you can > > 1) provide an interrupt stack for each priority > 2) mask all lower priorities when handling one > > Would that not work?
The PIC does that already. IE. it will only interrupt again before ->eoi() for an interrupt of a higher priority. But by using IRQF_DISABLED, you mask interrupts in the core, and thus effectively completely prevents the whole thing.
> The problems with enabling irqs in hardirq handlers are that you get > unlimited irq nesting, which is bad for your stack, furthermore, somehow > people thing it makes things 'faster' because the irq-off latency goes > down.
No, you don't get unlimited IRQ nesting, at least not on sane archs with a decent PIC that does things like what I described above :-)
> The latter just isn't true, as you still have preemption disabled, so > everything but irqs still suffers. > > The only way to make things low-latency is to pull work out of > non-preemptable context. Using threaded IRQs is one way to do that.
Cheers, Ben.
|  |