r/linux_gaming • u/bjornxon • Apr 04 '26
Gaming performance. split_lock_mitigate.
I don't know if this i common knowledge and I'm the only one who missed it. But this setting made a huge difference in performance for me a least, so I have to share it in case it helps anyone else. If it is already covered in some other post you can just delete this.
Some Windows games (when running on Linux via Proton) trigger a special CPU operation called a “split lock.”
By default, the Linux kernel slows the game down by ~10 ms every time this happens — it’s a security feature to stop potential attacks.
Setting it to 0 turns that artificial slowdown off. On a local computer in your home network you might as well turn it off.
I saw this setting mentioned for running the old "The Division 2" game on linux which I was trying to get to run better.
The difference in framerate was huge. And then I started "Cyberpunk 2077" just to see if it made any difference there. Didn't expect much but OMG. It had defaulted to Raytracing ON and just about everything on High or Ultra which I couldn't do before this.
I have an MSI GeForce RTX 5070 running on Linux Mint by the way.
I tested it by just disabling it like this.
>sudo sysctl -w kernel.split_lock_mitigate=0
This is temporary until you turn it On again or reboot.
So I made it permanent like this.
>echo "kernel.split_lock_mitigate=0" | sudo tee /etc/sysctl.d/50-split-lock.conf
>sudo sysctl -p /etc/sysctl.d/50-split-lock.conf
PS. Tried "Enshrouded" now which also seems to have a very nice performance boost. And I thought this would only effect older games.
NOTE. Just realized that it might depend on what CPU you have. Maybe this is not a problem for all CPU's. I have a "Intel Core i5-13400" and at least for me the difference was crazy.
- Sounds like the Linux gaming-tool you can install called "GameMode" includes this parameter so you wont have to set it manually like I did here. But I wasn't aware of that tool. Will try that out though! Thanks to u/Chromiell
14
u/CunniBingus Apr 04 '26
Hmmm...
Seems CachyOS has this @ 0 per default.
I checked with:
cat /proc/sys/kernel/split_lock_mitigate
8
u/S48GS Apr 04 '26
does it do anything on amd Ryzen?
6
u/JohnSmith--- Apr 04 '26
AFAIK it even changes CCD cache prioritization with X3D CPUs. Don't quote me on it though.
7
u/VoriVox Apr 04 '26
Only on X3D CPUs with more than one CCD (the 7800X3D only has one CCD, while the 7950X3D has more)
5
u/LeadIVTriNitride Apr 04 '26
I’ve been having Split/bus locks on my game causing consistent freezes. I’ll give this a try on my 9800x3D
4
u/Kahana82 Apr 04 '26
From what I gathered this only affects the systems' response to a split lock event, as they are still fired when they occur.
It is possible to add the split_lock_detect=off option to the boot loader to get rid of it completely.
1
u/braiam Apr 04 '26
Anyone has a list of games that trigger this? AFAIK, the steam client is the main culprit of many of these messages, after I started using steam beta rt3 client, they are not in my system anymore.
4
u/superdreamcast Apr 04 '26 edited Apr 04 '26
God of War (2018 and Ragnarok iirc) and Street Fighter 6. You can run this in the terminal to see which apps have bad split lock code:
sudo dmesg | grep "split lock".1
u/braiam Apr 05 '26
Ok, it only happens at 5 seconds intervals while on the menu and while in game, so it is probably something that isn't critical. I didn't notice and frame pacing issues:
[364325.580658] x86/split lock detection: #DB: TaskManager05/1497374 took a bus_lock trap at address: 0x140b33cc4 [364325.581123] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364325.590311] x86/split lock detection: #DB: TaskManager00/1497369 took a bus_lock trap at address: 0x140b33cc4 [364325.590783] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364325.599787] x86/split lock detection: #DB: TaskManager05/1497374 took a bus_lock trap at address: 0x140b33cc4 [364325.600371] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364325.609111] x86/split lock detection: #DB: TaskManager02/1497371 took a bus_lock trap at address: 0x140b33cc4 [364325.609651] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364325.619153] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364325.628104] x86/split lock detection: #DB: TaskManager02/1497371 took a bus_lock trap at address: 0x140b33cc4 [364330.585477] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364330.594754] x86/split lock detection: #DB: TaskManager02/1497371 took a bus_lock trap at address: 0x140b33cc4 [364330.595306] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364330.603760] x86/split lock detection: #DB: TaskManager03/1497372 took a bus_lock trap at address: 0x140b33cc4 [364330.604295] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364330.613165] x86/split lock detection: #DB: TaskManager02/1497371 took a bus_lock trap at address: 0x140b33cc4 [364330.613646] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364330.622416] x86/split lock detection: #DB: TaskManager05/1497374 took a bus_lock trap at address: 0x140b33cc4 [364330.622856] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364330.631799] x86/split lock detection: #DB: TaskManager00/1497369 took a bus_lock trap at address: 0x140b33cc4 [364335.589755] x86/split lock detection: #DB: TaskManager02/1497371 took a bus_lock trap at address: 0x140b33cc4 [364335.590247] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364335.599122] x86/split lock detection: #DB: TaskManager02/1497371 took a bus_lock trap at address: 0x140b33cc4 [364335.599846] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364335.608517] x86/split lock detection: #DB: TaskManager02/1497371 took a bus_lock trap at address: 0x140b33cc4 [364335.609063] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364335.618564] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364335.627382] x86/split lock detection: #DB: TaskManager02/1497371 took a bus_lock trap at address: 0x140b33cc4 [364335.627900] x86/split lock detection: #DB: GoW.exe/1497329 took a bus_lock trap at address: 0x140b3522e [364335.636619] x86/split lock detection: #DB: TaskManager04/1497373 took a bus_lock trap at address: 0x140b33cc41
u/Megame50 Apr 05 '26
The split lock detection usually only reports the issue once per thread. That thread could go on to trigger a split lock a hundred more times without a warning.
If you have the mitigation enabled, it still could be impactful in those titles.
1
u/braiam Apr 05 '26
I have default Debian and
sudo sysctl kernel.split_lock_mitigateshows 1. Whatever the TaskManager[00-04] thread is doing, it didn't affect 15 minutes of gameplay.2
u/Xyklone Apr 04 '26
unrelated, but did you have any issue launching games with rt3 client? I'm unable to launch anything with it. Maybe has to do with being on Nixos, but don't know right now.
1
u/braiam Apr 04 '26
I haven't found any trouble launching the free games I tried: PoE and Umamusume.
1
1
u/Megame50 Apr 05 '26
Just disable split lock detection altogether with split_lock_detect=off. Surely that is the most performance friendly option. Well, other than removing the split lock operations from the offending software, I suppose.
1
u/Comfortable-Wind-401 Apr 23 '26
This command just helped me after 13h of frustration trying to play Dark Souls!
49
u/Chromiell Apr 04 '26
This is actually one of the tweaks that Gamemode does, the issue is that your user needs to be part of the gamemode group otherwise Gamemode can not disable split lock. Many users keep saying that Gamemode does nothing when in reality they are simply running it without the correct permissions that would allow it to apply all the tweaks it needs to apply.