OS: Arch Linux
Kernel: 5.11.2-zen1-1-zen
WM: i3
Can confirm. Facing while playing Star Realms. Zen Kernel. Fans go to full speed.
rtkit-daemon[742]: Supervising 8 threads of 3 processes of 1 users.
rtkit-daemon[742]: Successfully made thread 48500 of process 48389 owned by '1000' RT at priority 10.
rtkit-daemon[742]: Supervising 9 threads of 4 processes of 1 users.
Can confirm.
OS: Arch Linux x86_64
Kernel: 5.11.4-arch1-1
WM: Openbox
Proton: Proton-Experimental
Facing this issue while trying to run Borderlands 3. This is leading to full system lockups, to the point that the only "fix" is hitting the switch on the PSU.
rtkit-daemon[1337]: Successfully made thread 19444 of process 19065 owned by '1000' high priority at nice level -15.
rtkit-daemon[1337]: Supervising 21 threads of 8 processes of 1 users.
rtkit-daemon[1337]: Successfully made thread 19448 of process 19065 owned by '1000' high priority at nice level -2.
rtkit-daemon[1337]: Supervising 22 threads of 8 processes of 1 users.
rtkit-daemon[1337]: Successfully made thread 19450 of process 19065 owned by '1000' high priority at nice level -2.
rtkit-daemon[1337]: Supervising 23 threads of 8 processes of 1 users.
rtkit-daemon[1337]: Successfully made thread 19451 of process 19065 owned by '1000' high priority at nice level -2.
rtkit-daemon[1337]: Supervising 24 threads of 8 processes of 1 users.
rtkit-daemon[1337]: Successfully made thread 19455 of process 19065 owned by '1000' high priority at nice level -2.
rtkit-daemon[1337]: Supervising 25 threads of 8 processes of 1 users.
rtkit-daemon[1337]: Warning: Reached maximum concurrent threads limit for user '1000', denying request.
rtkit-daemon[1337]: Failed to look up client: Device or resource busy
rtkit-daemon[1337]: Warning: Reached maximum concurrent threads limit for user '1000', denying request.
rtkit-daemon[1337]: Failed to look up client: Device or resource busy
rtkit-daemon[1337]: Warning: Reached maximum concurrent threads limit for user '1000', denying request.
rtkit-daemon[1337]: Failed to look up client: Device or resource busy
Installing realtime-privileges and adding the realtime group does not solve it.
Attempting to launch the game on Proton 5.13 with the realtime fix technically works, but the game itself never loads.
This also reproduces for me on 5.10.23-1-lts, so it probably isn't a 5.11.x-specific issue.
This also reproduces for me on 5.10.23-1-lts, so it probably isn't a 5.11.x-specific issue.
I can confirm the lts kernel doesn't fix the issue.
nor pipewire causing the issue, I tested this out with pulseaudio as well.
Sorry, this is an RTKit limitation, which only allows a limited number of threads (hardcoded to a total of 25 threads per user, regardless of their processes, I believe) to have higher than normal priority at the same time.
AFAIK there's nothing to do about it, and the only thing Proton can do is to give up on raising the priority for the threads when such error is received instead of trying again later, at the risk of having inconsistent thread priority state compared to what games would expect. This would prevent the journal from being spammed too much (although it would still try to change the thread priority when the game requests it).
The only solution to overcome the RTKit limitation and have working thread priorities is to change the system RLIMIT_NICE value in /etc/security/limits.conf, to allow any process to manipulate niceness with setpriority directly. This is usually not allowed by default to prevent rogue processes, or unprivileged users in a shared system environment, from overloading the system.
@rbernon
Thanks for explanation; however, I still don't understand why proton-experimental behaves differently compared to 5.13-6 using realtime? And will this thread issue cause performance issues?
Only Proton Experimental currently has the ability to request thread priority change to RTKit. It only does so at most every one second per game thread, so I don't think it would cause performance issue, at least it's not overwhelming the system. It may fill up the journal after a while, but it will still take a long time.
If the priority change is denied, which should only happen when the game requests higher than normal priority, then some of the threads may not get high priority as they should have, while some other would. I don't think it would cause too much trouble though, and I wouldn't expect performance issues from it either.
From what I can see, Proton isn't the only application with such issues and apparently Firefox for instance is also using RTKit and can cause these journal messages to be printed, especially when a lot of tabs are opened.
Closing, since the issue is not expected to cause performance issue.
Thank you
proton experimentalx4 2021-03proton 5.13x1 2021-03proton 5.13-6x1 2021-03
Environment:
OS:Arch Linux x86_64
Kernel:5.11.2-zen1-1-zen
DE:GNOME 3.38.3
Problem:
Journalctl is spammed with;
when a game is running.
Solution:
With Proton 5.13-6 and on Arch, install
realtime-privilegesand addrealtimeto user groups to stop the spam.However;
On Proton-Experimental, this solution does not work.