Re: Is interrupt priority supported ?

From: Jose Luis Marchetti
Date: Sun Feb 22 2009 - 22:17:50 EST



> It doesn't really work that way in Linux. Normally
> disabling interrupts is all or nothing. Whether or not other
> devices can cause interrupts during an interrupt handler
> execution by default is a bit platform-dependent, I think
> (unless the driver requests IRQF_DISABLED which requests
> that other interrupts should not run).
>
> Normally in Ethernet drivers these days only very minimal
> processing is done during the interrupt handler, the rest is
> deferred to softirq context which runs with interrupts
> enabled so other interrupts can happen. That's not to
> say that all Ethernet drivers are so well-behaved, however,
> especially if they haven't been updated to use NAPI. (In
> the NAPI case, the driver disables further interrupts from
> the device until the softirq is able to run and process the
> packets.) In your case it seems likely that yours is not
> behaving so well, as one would expect the interrupt handler
> to complete in less than the time it takes one character to
> arrive on the serial port..

Interesting, thanks for all the info, I had to research before responding.
It appears network cards was one of the reasons for the softirqs, there is two definitions for network cards in softirqs.
Yes, I looked the DM9000 driver and saw the data being read inside the interrupts so... you are right, that driver was not changed to use softirqs.
I also saw how the IRQF_DISABLED flag works.
I Think using this flag is the way to go for my 4 byte FIFO uart, I would say a 4 byte FIFO is critical enough to be read inside an interrupt.
I know it is kind of strange, the correct way it would be to fix the Ethernet driver and instead of doing that I will not allow any other interrupt inside the uart interrupt, which degrades the system somehow.
What do you think ?
Do you know if the same kind of problem I am having with Ethernet is also seen with USBs ?

Thanks again for all your response.



Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/