Re: hwo to adjust interrupt?

Bryan Henderson
2005-08-15T18:47:25Z

>so it is possible that both card raise intr quicker than isr run, then
>both isr will do mmio and go ahead, but then what is
>
>device 1 raise intr
>device 2 isr run and not belong to it, so quit, but before it clear intr
>and quit
>device 2 raise intr
>device 1 isr run and handle device 1, then clear intr and quit.
>
>then device 2 intr lost?

As these are level sensitive interrupt requests, they can't be lost. As
long as Device 2 is requesting service,
the shared IRQ is raised and at some point Linux will call Device 2's
interrupt handler. Either the first level IRQ handler will keep calling
all the interrupt handlers that service that IRQ until the IRQ subsides,
or it will unmask the IRQ, causing an immediate new interrupt and the
first level interrupt handler runs again and calls all the device drivers
again.

The raised IRQ says, "Device 1 or Device 2 needs service." The device
drivers clear the service request of the individual device; as long as
either device requests service, the IRQ is raised.

--
Bryan Henderson IBM Almaden Research Center
San Jose CA Filesystems