Comment 4 for bug 1833322

Revision history for this message
Christian Ehrhardt  (paelzer) wrote : Re: Consider removing irqbalance from default install on desktop images

# Referred Arguments

An argument that might not have been so strong more than a decade ago
but is much more today is power savings and that is an aspect that comes up
over and over.
It also had reports of conflicts with power saving [10] and e.g. dynamically
disabling/enabling cores which is much more a thing nowadays as long ago
this was only reliably working on mainframes anyway.

I don't buy the "games need 100%" as even games need their I/O to happen,
but OTOH irqbalance just doesn't help much nowadays either as the kernel learned
many more tricks to do well - like to name just one all the traffic aware
and potentially offloaded rps/xps [2]. And irqbalance is not mutually exclusive
with most of those technologies not with RSS [18] nor with kernel policies [15].

Some report about conflicting with their custom tweaking of IRQs [8][16].
It is actually a common conflict between irqbalance being smart [9] and other
things like a particular device firmware being smart leading to a conflict of
interest.
=> But TBH that is why it is removable for such rare cases.

On one hand it clearly has some impact and various cases of bad impacts by it
have come up as well for frame rates [11], stuttering [14] or even network
traffic [12].

But on the other hand, there have been reports and cases where a broken
irqbalance led to impacted high-performance network traffic [7], so it is
not that it is clearly always bad [13]. While we never know how outdated
any such source might be, it proves that it is most likely workload and
system dependent. Many documentations also sitll refer to it only older RH,
Arch [19], ... you'll find it everywhere.

It is an interesting case, and the workload dependency leads many discussions
to even be contradicting - in one case it saves cpu power in the other it makes
it worse. In one it helps traffic in the other is degrades it. That is all a
consqeuence of it being workload and system dependent.
This back and forther is perfectly encapsulated in this phornix thread [15].
Which quotes interesting other POVs like kernel solutions often being "driver
centric" optimizing throughput, but maybe not always the best as policy for
the full system as irqbalance pilicies and tunables are configurable.

An interim summary might be:
"""
It could cause rare issues or conflicts, especially on Desktop,
but might be still wanted on Servers especially those with a
high rate of I/O
"""

Which is interestingly quite close to the arguments floating around when it
was added more than a decade ago (see further below).

[2]: https://www.kernel.org/doc/html/latest/networking/scaling.html
[7]: https://bugs.launchpad.net/ubuntu/+source/irqbalance/+bug/2038573
[8]: https://groups.google.com/g/gce-discussion/c/Ns8hgOUW9GY
[9]: https://docs.xilinx.com/r/en-US/ug1523-x3522-user/Interrupt-Affinity
[10]: https://konkor.github.io/cpufreq/faq/#irqbalance-detected
[11]: https://askubuntu.com/questions/1067866/ubuntu-18-04-steam-games-frame-rate-drop
[12]: https://serverfault.com/questions/410928/irqbalance-on-linux-and-dropped-packets
[13]: https://bookofzeus.com/harden-ubuntu/server-setup/disable-irqbalance/
[14]: https://www.reddit.com/r/linux_gaming/comments/emnu3k/removing_irqbalance_fixed_major_stuttering_in/
[15]: https://www.phoronix.com/forums/forum/hardware/processors-memory/1335986-amd-zen-1-linux-performance-hit-from-retbleed-accumulated-cpu-mitigation-impact/page4
[16]: https://documentation.suse.com/sbp/server-linux/pdf/SBP-performance-tuning_en.pdf
[18]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/performance_tuning_guide/network-rss
[19]: https://wiki.archlinux.org/title/Improving_performance#irqbalance