On Sun, 2005-11-27 at 11:03 -0800, Mark Knecht wrote:
OK, this 'priority' is the Linux kernel's
priority. The 'priority' I
was speaking of was the actual hardware priority. They are different
things.
In the older PIC when an ISR was entered all lower hardware 'priority'
IRQ are blocked until the ISR tells the PIC it is ready to release.
That is the numerical list I gave earlier. In that list is something
at IRQ14 starts and doesn't release then all interrupts of lower
hardware priority (15,3,4,5,6,7) will not happen.
Wrong. PIC or APIC, interrupts do not delay other interrupts in this
way. If a disk interrupt happens on IRQ14 then a soundcard interrupt on
IRQ5 fires immediately after then the disk interrupt handler will be
interrupted by the sound card interrupt handler. That's why they are
called interrupts! This is why I keep trying to explain that there is
no "priority" relationship between interrupts.
In the above scenario if BOTH devices were sharing IRQ14 then the second
interrupt handler WOULD be delayed until the first finished.
The ability to prioritize interrupts with the -rt kernel is useful
because interrupts can be prevented from interrupting USERSPACE code.
I think people might be confused because Windows has a notion of the
interrupt priority level?
Lee