lkml.org 
[lkml]   [2009]   [Mar]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [RFC][PATCH] irq: remove IRQF_DISABLED
From
Date
On Fri, 2009-03-06 at 11:24 +0100, Peter Zijlstra wrote:
> On Fri, 2009-03-06 at 20:59 +1100, Benjamin Herrenschmidt wrote:
> > > 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 :-)
>
> Right, welcome to x86 ;-)

Ok, people put me straight here. Since linux not support interrupt
priorities, wouldn't it simply be a matter of implementing
local_irq_en/dis-able() as masking the lowest level you use to run
normal interrupts on?

That will leave your other interrupt level available as NMI/debug
thingies.



\
 
 \ /
  Last update: 2009-03-06 18:07    [from the cache]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and my Meterkast|Read the blog