On 5/2/07, k b <k_bisla@xxxxxxxxxxx> wrote:
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 ?
yes, but that's really not the kernel's problem ... that's an issue the system designer must keep in mind when architecting the hardware ... also, this is a good reason why interrupt handlers need to be as small as possible and defer longer work to tasklets or workqueues -mike -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ