Re: Shared Interrupt handling.

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

 



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


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux