Linux traditionally affined all IRQ’s to CPU0, and then relied on the irqbalance daemon to rebalance IRQs. This daemon still exists in most distributions and is active. All information leading to IRQ balancing leads to this service. Its nicely configurable through /etc/default/irqbalance
However…
For some years now, the Linux kernel has done its own rebalancing outside of the irqbalance daemon. Some linux distros acknowledge this like Debian and have removed the irqbalance daemon from their images.
Why is there zero documentation on how to configure the kernel irq balancing other than a few kernel options that don’t seem to work? All articles on configuring IRQ affinities mention the daemon, but completely ignore the automatic balancing of the kernel.
Why am I frustrated? Well I’m trying to pin IRQs to specific CPUs for a very specific workload, I’m following all the documentation… and guess what, the kernel can just decide to rebalance the affinities I’ve set. Fun times. Causes serious crashes.
Yes I’ve disabled and even removed the irqbalance service. Better yet, it’s properly configured and doesn’t touch my IRQ’s or the CPU I need.
How the hell do I disable the kernel irqbalancing?
Of course the old noirqbalance kernel option doesn’t work.