[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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
environment.

Per Zander

On Fri, 27 Feb 2004, Arne Bockholdt wrote:

> Hallo,
> 
> 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
>