Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PSA for Ubuntu users!] Removing 'irqbalance' improves Proton's performance! #3243

Closed
irqbalanceIsEvil opened this issue Nov 21, 2019 · 4 comments

Comments

@irqbalanceIsEvil
Copy link

irqbalanceIsEvil commented Nov 21, 2019

First of all, the reason why I'm opening this issue here is because I hope to reach as many users as possible & ultimately would like to see Canonical removing "irqbalance" from their default install of Ubuntu and therefore all its derivatives, too! Even though there is already an open bug report for this, (https://bugs.launchpad.net/ubuntu/+source/ubuntu-meta/+bug/1833322) it is being ignored by Canonical! However, I strongly believe Valve has the necessary power & self-interest to get this through, especially now that 20.04 LTS is coming up next!
Therefore, I would very much appreciate it if this could be kept open or even pinned until the situation is resolved! (Similar to the 'fsync' issues.)
And since Ubuntu users compromise (EDIT: comprise! ;-P) the largest userbase of Proton, I believe that Valve would also like to see their software performing better 'out-of-the-box'!

So, to try to keep this as short as possible:
Please remove 'irqbalance' (sudo apt remove irqbalance) and reboot!
Now, you should see better performance out of your system! (Bonus points if also switching over to the "lowlatency" Linux kernel!)
This is true for a number of my systems & here are also further references I found on the internet:

YES! You can freely uninstall irqbalance.
irqbalance doesn’t support fully all kernel features to an example a turning on/off core threads supported by the extension. If you have installed irqbalance package and turn off some cores you can get freezes or not working devices like wi-fi, bluetooth, video cards, sound cards…
irqbalance is not a part of the Linux kernel.
It designed for special server configurations with many RAID/HDD/SDD controllers.
Only Debian Flowers have the irqbalance installed because Debian is very Server oriented. Red Hat doesn’t have installed irqbalance by default but it doesn’t make Red Hat less server OS.
It keeps all Linux core threads working so its not good for power saving, especially for laptops.
Any user-space application (like games, compilation…) can not get 100% of CPU resources on any thread because it’s always sharing this resources with IO tasks.

Source: http://konkor.github.io/cpufreq/faq/#irqbalance-detected

I have 0 interest in starting or fighting a religious battle, however, ya'll might simply consider removing the irqbalance package from the default installation.
While I have no scientific proof, it would seem my galp2 is much happier post- removal, i.e. I'm running in pstate performance mode (cores clocked to around 3.4+GHz with turbo enabled) and the laptop fan is coming on less than it ever has.

Source: pop-os/pop#81 (comment)

I have seen occasional Throttling even after I disabled thermald. Courtesy of the gnome shell extension cpufreq, I was able to see that irqbalance was throttling my CPU and causing the Frame rate drops.
To prove this I enabled thermald and removed irqbalance package. Now, I get even higher FPS and there is no throttling at all.

Source: https://askubuntu.com/questions/1067866/ubuntu-18-04-steam-games-frame-rate-drop

IRQBALANCE for the IO Priority and NOT FOR USER SPACE APPLICATIONS!
Do you really want to have a system where you can't get any CPU Core Thread for your application? Where is IO Interruptions can interrupt any application everywhere? So do you think the IRQ handlers don't communicate with other kernel modules? Do you think it's possible or such communication between cores is free? So many of the IO devices are SLOW and have HUGE LATENCY.

Source: konkor/cpufreq#48 (comment)

I really hope that Valve can once again achieve this for the greater good of a majority of Linux users!

@kisak-valve
Copy link
Member

Hello @irqbalanceIsEvil, while I can see the point you're trying to make, distro packaging and what they decide to install by default or run as a service is outside the scope of this project. Indicating that you're also affected on the relevant bug reports on the distro's issue tracker is the right way to increase visibility of the issue. Discussing the matter here will not expedite a distro change.

Closing as not-our-issue.

@OvermindDL1
Copy link

Now, you should see better performance out of your system

@irqbalanceIsEvil I'm curious as what amount this is measured at and under what kinds of loads (especially single core and massively multi-core cases) with what kind of interrupts? Specifically I don't use a laptop and down powering cores is not an issue for me (as they tend to be quite busy with other tasks most of the time).

@fxdxmax
Copy link

fxdxmax commented Nov 22, 2019

@OvermindDL1
Here, let me spell it out for you:

Any user-space application (like games, compilation…) can not get 100% of CPU resources on any thread because it’s always sharing this resources with IO tasks.

What has this fact got to do with laptops or even powering down CPU cores?
If you are still running irqbalance, you are not getting the maximum performance your system is capable of!
Also, here's a hint:
You don't need irqbalance to get Linux to distribute the interrupts among all your cores; the days of having CPU0 handle all incoming interrupts are long over!
Check with cat /proc/interrupts

@OvermindDL1
Copy link

OvermindDL1 commented Nov 22, 2019

I already don't have it, but something like Any user-space application (like games, compilation…) can not get 100% of CPU resources on any thread because it’s always sharing this resources with IO tasks. does not detail anything about 'how' and by what percentages of cost does it have one way or the other in a variety of conditions. I'm asking what measurable effect this has, not just what someones guess of an effect it may have. Numbers is what matters, and a quick Google'ing did not reveal any such benchmarks, and without such information then telling people to make a change to their system like that is unwarranted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants