Re: libata, Sound on same IRQ : flaky sound

From: Robert M. Stockmann
Date: Thu Aug 28 2008 - 13:27:19 EST


On Thu, 28 Aug 2008, Robert Hancock wrote:

> Date: Thu, 28 Aug 2008 08:41:08 -0600
> From: Robert Hancock <hancockr@xxxxxxx>
> To: Robert M. Stockmann <stock@xxxxxxxxxxx>
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: libata, Sound on same IRQ : flaky sound
>
> Robert M. Stockmann wrote:
> > Hi,
> >
> > I have a couple of AMD64 machines with onboard sound devices running
> > and they all have one thing in common : flaky sound when one is
> > doing some heavy disk I/O on the SATA disks. Interesting enough
> > /proc/interrupts shows that libata is using the same IRQ as the sound
> > devices :
> >
> > model name : AMD Athlon(tm) 64 X2 Dual Core Processor 6000+
> > stepping : 3
> > cpu MHz : 3014.679
> > cache size : 1024 KB
> >
> > # cat /proc/interrupts
> > CPU0 CPU1
> > 0: 55869 154467838 IO-APIC-edge timer
> > 8: 0 0 IO-APIC-edge rtc
> > 9: 0 0 IO-APIC-level acpi
> > 16: 1453 499686 IO-APIC-level libata, NVidia CK8S
> > 17: 0 0 IO-APIC-level ehci_hcd:usb1
> > 18: 27633 69978987 IO-APIC-level eth0
> > NMI: 10718 12112
> > LOC: 154533874 154533852
> > ERR: 0
> > MIS: 0
> >
> > model name : AMD Opteron(tm) Processor 246
> > stepping : 10
> > cpu MHz : 1991.355
> > cache size : 1024 KB
> >
> > # cat /proc/interrupts
> > CPU0 CPU1
> > 0: 18108 19856365 IO-APIC-edge timer
> > 1: 16 7915 IO-APIC-edge i8042
> > 3: 0 56 IO-APIC-edge serial
> > 4: 0 56 IO-APIC-edge serial
> > 8: 0 0 IO-APIC-edge rtc
> > 9: 0 0 IO-APIC-level acpi
> > 12: 346 62269 IO-APIC-edge i8042
> > 14: 0 190 IO-APIC-edge ide0
> > 15: 1 189 IO-APIC-edge ide1
> > 16: 827 358917 IO-APIC-level libata, AMD AMD8111
> > 17: 0 18 IO-APIC-level ohci_hcd:usb1, ohci_hcd:usb2
> > 18: 555 231470 IO-APIC-level HiSax, nvidia
> > 19: 15179 3489796 IO-APIC-level eth0
> > NMI: 211 511
> > LOC: 19871720 19871628
> > ERR: 0
> > MIS: 0
> >
> > Kernel is 2.6.15,
> >
> > Preemption Model is (Preemptible Kernel (Low-Latency Desktop)), Memory
> > model is (Flat Memory), [*] Preempt The Big Kernel Lock is switched on.
> > Timer frequency is (1000 HZ) or (100 HZ), but changing this value is
> > of no influence. One of the machines is a genuine dual Opteron machine
> > but i'm rather disappointed with the NUMA capabilities of
> > the 2.6.15 kernel. It does do NUMA, but thats all it does, it doesn't
> > add anything compared to a SMP kernel with NUMA switched off.
> >
> > Does one really need the PREEMPT_RT approach to get rock solid
> > sound as described here ? :
> >
> > "A realtime preemption overview"
> > by Paul McKenney, August 10, 2005
> > http://lwn.net/Articles/146861/
> >
> > How about giving your sound device a proper seperate IRQ number?
> > At least libata should like eth0 have its own kernel resources.
>
> That's an issue with the way the motherboard IRQ lines are wired.
> There's nothing the kernel can do about it.

That sounds rather strange to me, as IRQ line 16 is a virtual
IRQ as part of IO-APIC.

> Normally I wouldn't expect that to make a big difference though..

fact is that when copying a iso from one SATA disk to the
other results in flaky sound when playing online internet radio.
Even starting firefox for the 1st time after booting results
in flaky sound for a short time.

> You'd really have to try a newer kernel first in order to get much help,
> though. That's a pretty ancient kernel. Quite likely the situation is
> improved in newer versions.

I sure would like todo that. But why doesn't the linux-kernel community
know howto pull virtual IRQ lines apart, as part of configuring
a linux kernel? In the days of 386/486 cpu's, IRQ's of several
add-on cards could be adjusted manually by jumpers. Why is there not
such a thing for virtual IRQ's inside the IO-APIC system?

The libata driver should like eth0 on IRQ 19 have its own IRQ.

Robert
--
Robert M. Stockmann - RHCE
Network Engineer - UNIX/Linux Specialist
crashrecovery.org stock@xxxxxxxxxxx

--
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/