[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: External interrupt order problem
Normally the Linux kernel allows interrupts to interrupt each other.
You can register an interrupt handler as SA_INTERRUPT to avoid this
(see e.g. arch/cris/drivers/serial.c for example).
From: firstname.lastname@example.org">mailto:email@example.com] On Behalf Of Per Zander
Sent: Friday, February 27, 2004 11:03 AM
To: Arne Bockholdt
Subject: Re: External interrupt order problem
You have an external device that generates an interrupt vector number
(34-48) as a response to an external INTA cycle ?
Do you mean that if a first INTA cycle reads vector number X and next
INTA cycle reads vector number Y, the interrupts will be executed
in order (Y, then X) if the two interrupts are close to eachother ?
You would get the described effect if the interrupts are enabled within
the interrupt routines. A later arriving interrupt would then interrupt
the execution of the previous one.
I'm not a Linux expert, I do not know how to fix it in the Linux
On Fri, 27 Feb 2004, Arne Bockholdt wrote:
> we've got a problem with external generated interrupts. We are using
> interrupts vectors 32 - 48 to generate interrupts from an external device.
> The problem is that the order of the interrupts will be changed when there
> are some interrupts generated in a short time (< 1 ms). It seems that the
> hardware/kernel "stacks" the interrupt requests, the order is than LIFO
> not FIFO....there seems to be no priorities too, if the interrupt handler
> takes too long or the interrupts generated in a short timespan interrupts
> will be stacked.
> Is there anything that we could do to change this behaviour or is this a
> hardware limitation. I couldn't find any reference in the documentation or
> the kernel sources (2.4.22, MCM BTW). We need a guaranteed order of the
> interrupts, first come, first serve or some kind of priorities (some kind
> of "lower vectors served first"...)
> Thank you in advance,
> Arne Bockholdt
> Dipl. Inform. Arne Bockholdt
> REA Elektronik GmbH
> Teichwiesenstr. 1
> 64367 Mühltal-Waschenbach