Re: Is interrupt priority supported ?
From: Robert Hancock
Date: Thu Feb 19 2009 - 19:55:37 EST
Jose Luis Marchetti wrote:
it has been for a looong time (those things tend to almost
get outdated already -
witness the floppy controller misery):
He he, I am from the same era..., I appreciate your answer, but I am afraid your suggestion is not exactly what I was expecting.
The tools you mention appears to act on the hardware level, not on Linux by itself, they apply only to x86 processors ( as you can see by the name ), and I am not running Linux in one of those processors.
Roughly, this is what I have seen in other OSs that support interrupt priority:
Imagine a table with interrupt IDs, in my example they are in decreased priority order:
interrupt priority table:
Serial,
Ethernet,
Keyboard,
etc...
Then, when one interrupt happen, lets say the Ethernet, the OS disable all lower priority interrupts ( keyboard in my example ), but allow the Serial interrupt nest into the Ethernet interrupt.
In my example the serial is the highest priority interrupt and no one could nest into it.
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..
--
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/