[LAU] rtirq failure

Ralf Mardorf ralf.mardorf at alice-dsl.net
Sun Aug 9 08:08:35 UTC 2015


On Sat, 8 Aug 2015 17:25:48 -0700 (PDT), Len Ovens wrote:
>As someone who has tested more than one system, I do not think there
>is any such thing as a generic RTIRQ_NAME_LIST since early PCI days.
>Both FW and USB require hand editing the config file anyway for best
>use. The default generally works ok as it just prioritizes pciaudio,
>USB and FW "stuff". But it just works "ok". Getting good lowlatency
>out of it requires hand editting.
>
>For example, almost all USB setups I have played with have at least
>one USB port that:
> 	- shares an irq with 3 or 4 other things
> 	- is a hub with internal USB bits (mics. wifi, camera, mouse,
> etc)
>This means that the USB audio IF must be plugged into a "Clean" USB
>port and so things like RTIRQ_NAME_LIST="usb3 snd usb" will work where
>"usb snd" will not because usb2 may have mouse traffic on it that ends
>up prioritized ahead of usb3 with the audio.
>
>The thing is that this is system stuff not user. Making a GUI to edit 
>things inteligently and securely has not been done that I know of, but
>may be a good solution.

At least USB automatically gets a better rtprio than 50 by default ;).
It's not needed to make a dedicated USB port head of the ports, this
is just optimizes it. Shared IRQs are another issue, this could happen
to PCI and PCIe devices too, that's why I run a script to unbind some
USB ports.

$ grep Unbinding -A2 /usr/local/sbin/tuning
### Unbinding devices
echo -n "0000:00:13.2" > /sys/bus/pci/drivers/ohci_hcd/unbind
echo -n "0000:00:13.4" > /sys/bus/pci/drivers/ohci_hcd/unbind

I bought an USB panel for a few Cents to use the other USB ports of
the mobo, that don't have USB connectors.

A GUI or ncurses based tool won't help much, if you need to unbind
ports. It's annoying trial and error.
http://wiki.linuxaudio.org/wiki/system_configuration#solve_irq_conflicts_by_unbinding_devices

The importance of shared IRQs is overrated. Using older kernels the
graphics and the PCIe sound card share an IRQ, with newer kernels
another IRQ is assigned to the graphics, but this doesn't improve the
situation. For newer kernels the PCIe sound card shares the IRQ with
USB, but unbinding the ports also doesn't improve something. I can't go
lower than -p256, and even with -p256 I still get tons of xruns and it
doesn't help if I use values > 256, I still get the same amount of
xruns.

However, the pitfalls of hardware combinations are a different issue,
than default rtprios.
A default that gives all sound devices a rtprio > 50 is useful and it's
bad that this isn't granted. 

A script could run lsmod|grep snd|cut -f1 -d" ", exclude modules like
snd_mpu401_uart provided by a list of modules that aren't audio devices
(or the script compares with a list of modules that are for audio
devices) and with sed add the first 8 chars of audio device modules to
the RTIRQ_NAME_LIST, but rtirq can't do this, at least not by default,
since we don't want that a manually edited RTIRQ_NAME_LIST is
overwritten.

IOW my resume is the similar to yours, it's impossible to provide
rtprios > 50 for all audio devices by a default config, when using just
"snd" in the RTIRQ_NAME_LIST can't grant it.

Perhaps it's time to close my bug report
( https://bugs.launchpad.net/ubuntu/+bug/1482347 ), since there's no
way to solve it.

Regards,
Ralf


More information about the Linux-audio-user mailing list