Great thanks for the input.
which makes me think of the following scenario.
Lets say one interrupt say for this discussion interrupt number 5 is shared amongst 3
devices(d1, d2, d3) .(obviously the interrupt is level as its shared, otherwise we would miss interrupts)
T0 d3 fires an interrupt 5
T1 d1 also fires an interrupt.
T2 the kernel finds out(or gets ready to service the int) that int 5 was fired.
Kernel starts iterating its list of handles and call d1 int handler and it services the interrupt and returns interrupt handled (even though d1 wasn't the first guy who fired the int to start with).
but the int line is still high/low so it goes over the process again and calls d1's handler this time it sees it has nothing to service and the d2 and finally d3.
What i'm getting at is that if d3 is sharing an interrupt line with a device which generate a lot of interrupt it could be possible that d3 would have a high interrupt latency(in other word a have to wait
longer to get its int serviced).
Is that a right statement ?
thanks once again. Your inputs were really insightful.
KB
> Date: Wed, 2 May 2007 19:12:33 -0700
> From: greg@xxxxxxxxx
> To: k_bisla@xxxxxxxxxxx
> CC: kernelnewbies@xxxxxxxxxxxx
> Subject: Re: Shared Interrupt handling.
>
> On Wed, May 02, 2007 at 06:23:46PM -0700, k b wrote:
> > Hi,
> > Can someone explain how the kernel figures out which interrupt handler
> > to call when the interrupt line is shared.
>
> It calles them all, until one says it handled the interrupt.
>
> thanks,
>
> greg k-h
>
> --
> To unsubscribe from this list: send an email with
> "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
> Please read the FAQ at http://kernelnewbies.org/FAQ
>
Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! Try it!