Development Plan Proposal for Unifying Interrupt and PCI APIs
Chris Caudle
chris at chriscaudle.org
Sat Oct 23 19:03:25 UTC 2004
On Saturday 23 October 2004 01:34 pm, Thomas Doerfler wrote:
> Each interrupt handler must do a very quick check, whether its
> hardware device has raised the interrupt or not. If the related
> hardware device did not raise the interrupt, the handler
> terminates with a certain return code. And only in this case,
> the OS goes further on to poll the next handlers.
You have to be careful of starvation of the secondary devices in certain race
conditions.
Take the case where a device is generating interrupts very quickly, and a
device sharing that interrupt line generating interrupts more slowly.
If the first device handler services the interrupt, then returns with the code
which says an interrupt was serviced, and so the next handler is not polled.
If the second device is actually generating an interrupt, the interrupt
handler will be called again. If in the intervening span of time, the first
device also signals an interrupt again, the first device will again be
serviced, and the second device will not.
That may be desired behavior, but it needs to be documented very clearly.
--
Chris Caudle
More information about the users
mailing list