udev-rtirq
udev-rtirq automatically changes the priority of soundcard interrupt handling threads.
Linux low-latency audio depends on the concept of POSIX realtime threads, the idea being to run important audio processing as realtime threads at a high priority, thus giving the work preference to much anything else running on the system.
udev-rtirq automatically changes the priority of the thread handling the soundcard, firewire or usb hub interrupt when it detects that a soundcard has been added or removed.
udev-rtirq accomplishes this by installing an udev rule which calls a script to find the thread handling the interrupt and then changing its priority to a predefined value.
Prerequisites:
udev-rtirq needs interrupt handlers exported as threads to userspace, this can be achieved either by using a realtime kernel, or booting a lowlatency kernel with the "threadirqs" boot flag.
In its present form it also depends on systemd.
Installation:
Run make install to copy the udev rules file, the script, and the default config file to the right destinations.
Configuration:
By default udev-rtirq will set the interrupt handler to priority 95 when it detects a soundcard, and it will set it back to 50 when it detects its removal. You can change the priority level in /etc/defaults/udev-rtirq. You can also blacklist certain PCI ids, say you have a soundcard for which you'd never want to change the priority.