Re: [patch] voluntary-preempt-2.6.8-rc2-L2, preemptable hardirqs

Ingo Molnar
2004-07-28T06:03:17Z

* Lee Revell <rlrevell@joe-job.com> wrote:

> > i've done a softirq lock-break in the atkbd and ps2mouse drivers - this
> > should fix the big latencies triggered by NumLock/CapsLock, reported by
> > Lee Revell.
>
> L2 does not fix this problem. Previously, toggling CapsLock would
> trigger a single large XRUN. Now it seems to actually prevent the
> soundcard interrupt handler from executing in time, as well as
> triggering smaller XRUNs. This is with preempt=1,
> voluntary-preempt=3.

yeah, this is because right now irqd lacks any configurability: it is
executing all hardirqs (and all softirqs) in one context without any
particular prioritization.

if your soundcard doesnt share the irq line with any other 'heavy'
interrupt then you can make the irq 'direct' via a simple change to
arch/i386/kernel/irq.c, change this line from:

#define redirectable_irq(irq) ((irq) != 0)

to:

#define redirectable_irq(irq) (((irq) != 0) && ((irq) != 10))

(if the soundcard is on IRQ 10).

does such a change combined with v=3 fix the latencies you are seeing?

Ingo