generic irq handler and stack?

Russell King - ARM Linux linux at arm.linux.org.uk
Tue Dec 7 10:02:03 EST 2010


On Tue, Dec 07, 2010 at 01:56:16PM +0100, Tim Sander wrote:
> Hi
> 
> > > The interrupt handling on the i.mx35x seems to handle only one interrupt
> > > at a time. This generates larger then nessecary interrupt jitter. I am
> > > currently investigating to reprogram the AVIC to enable higher priority
> > > interrupts to interrupt lower priority interrupts. The mechanism is
> > > outlined in section 13,3.8 of the IMX35 Reference Manual.
> > 
> > The kernel now runs _all_ interrupts with IRQs masked on the CPU.  See
> > e58aa3d2d0cc01ad8d6f7f640a0670433f794922.
>
> Thanks Russell for your  quick answer. But as far as i understand this is only
> one step to get better interrupt latency on i.mx35x since the AVIC by default
> only allows one interrupt at a time. So any idea which is the cleanest way to 
> push the SPSR_irq register on the stack.

We don't run interrupts in IRQ mode.  The exception is entered in IRQ
mode, but we then save what state is necessary and switch to SVC mode.

We have supported nested interrupts since the 1.x kernel days - there's
no code changes needed to support having one interrupt handler interrupt
another handler - merely re-enabling interrupts in your own handlers
will allow it to happen if your IRQ controller will also allow it.



More information about the linux-arm-kernel mailing list