[linux-audio-user] IRQ conflicts, acpi, and linux audio
markknecht at gmail.com
Sun Nov 27 16:12:46 EST 2005
On 11/27/05, Lee Revell <rlrevell at joe-job.com> wrote:
> 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.
Sorry, but while this is correct at the software level it is,
unfortunately, completely incorrect at the hardware level. While I am
not a programmer and do not know myself how to do it, if I write (as
an example only) an ISR that simply turns off interrupts and goes into
a loop, then since interrupts are off no other interrupt will get
through and since the ISR is in a loop it will never return. The
machine is locked and you're hung.
While I do not suggest that this example is anything other than
pathological, it demonstrates the problem.
> In the above scenario if BOTH devices were sharing IRQ14 then the second
> interrupt handler WOULD be delayed until the first finished.
Correct and agreed to.
> 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?
This I'm not sure of.
More information about the Linux-audio-user