On 05/03/12 08:25, Fernando Lopez-Lezcano wrote:
For soundcard drivers there is no convention for naming the irq process
that services its interrupt. The name of the irq process does not match
the name of the kernel module (which would be an obvious choice). The
ascii that is printed by ps is defined in the kernel code for each
driver, and driver authors pick different names that are not consistent.
That means you can't pattern match for the right irq process if the
interrupt number is shared by several devices.
It would be possible to pattern match if, for example, all soundcards
used a "snd_" prefix for the name of the irq process, but that is not
the case (at least until last time I looked at the kernel code for this
very same reason).
I wasn't aware of that, thanks.
So the
graphics card gets a
label 18-nvidia, the soundcard 18-snd_hdsp and both usb hubs
18-ohci_usb. And it is those labels that rtirq uses to set the rtprio
for the different softirqs.
The rtirq code does the following (simplified):
- rtirq gets the irq number from /proc/asound/cards
Afaics rtirq only does this if a pattern in RTIRQ_NAME_LIST matches
'snd'. In all other cases (like you point out later too) everything
passes through the rtirq_exec_name function first which greps on
/proc/interrupts.
Best,
Jeremy