I have a further question about shared IRQs in the RT tree. When saying that devices sharing an IRQ also share a thread, do you mean only the top halves, or all of the processing?
If it is the latter, isn't that a serious limitation? After all tasklets from devices sharing an IRQ can run simultaneously on different CPUs.
Posted Dec 12, 2008 15:04 UTC (Fri) by nevets (subscriber, #11875)
[Link]
Only the top half is shared. The soft irqs and tasklets also run as a thread, but there is a softirq thread for each softirq and per CPU. That is, if you have 8 CPUS, you will see 8 sirq-netrx threads, one per ever CPU.
Each softirq has its own thread. This lets you prioritize the softirqs as well, where you can not do that with vanilla linux. You can raise the network softirqs over the other softirqs.
A question about threaded IRQs
Posted Dec 12, 2008 17:15 UTC (Fri) by mikov (subscriber, #33179)
[Link]
That makes sense. I really appreciate the explanation.
As usual the great articles combined with the incredible level of the other subscribers makes LWN more than worthwhile...