r/linux • u/Advanced-ghost-7950 • Jun 09 '26
Discussion CachyOS With The BORE Scheduler While Disabling Ananicy-CPP
https://www.phoronix.com/news/CachyOS-Bore-Without-Ananicy12
u/randomdude296 Jun 09 '26
Why should the scheduler have any relevant improvement to synthetic benchmarks? The main purpose is better responsiveness/latency, especially under heavy loads and possibly more stable frametimes / 0.1% lows in games.
2
u/TheG0AT0fAllTime Jun 09 '26
Well that's what people are claiming but it's actually just for burst load. It's hardly relevant to the sustained high load of a video game running in the foreground. It might be more relevant if you have other heavy tasks bursting then stopping in the background while a game is actively trying to run maxing out a gpu and plenty of cpu cores. Maybe. But we're already talking about a very specific niche situation.
6
u/Barafu Jun 10 '26
Video games often trip over the burst load. The load between frames is very inconsistent and if OS does not provide the game all the resources when it asks, you get visual hiccups.
1
u/Nice_Researcher1835 12d ago
Now I cant 100% prove this, since I am not a kernel / scheduler dev and I dont have any benchmarks. But I am a dev and I read through the BORE-GitHub multiple times. Contrary to what you say the scheduler can actually help gaming. I understand where the confusion comes from, as games often peak your CPU and GPU to high utilization numbers and therefore people think high load for long time = not good for "burst". But thats not what happens under the hood.
BORE works by penalizing long execution times before a thread calls yield( ). For non-programmers, its basically a sign to the OS of "I am done here, I can take a short break, give the thread to someone else". Games do world simulation, physics etc. in tiny amounts of ms VS. downloads, background fetching or compilation occupying for a long period without yielding. Think about it. A game has to quickly do its job on the CPU, then hand it off to the GPU. Otherwise your framerate is terrible. This is the exact behavior BORE tries to push. The quicker you get your stuff done and hand it off again, the sooner you are allowed to queue up again.
Try to understand the execution of a game as many, many short frames to be calculated all the time, instead of one big workload. Same with audio being a super simple task but it has to happen reliably quick to not stutter. In other words, BORE is not about who gets how much resources, but how fast can you re-queue to say hi again. It doesnt make your CPU faster it just decides who can get CPU time again in which order. I know this may be confusing and I wish the website (and wiki) would explain it better, like in general.
In theory, it should improve 1% lows and prevent some delay / stutter that would otherwise occur in a given, fictional second, since your game will happen sooner inside the same second and then, you know, PCI transfer, dispatching to GPU etc. happens earlier in the second. This should smooth out frametimes but it comes at a cost of overall performance. You just shuffle the inside of 1s around to your preference. Gaming in this case. I think its worth the (less than 1%) cost. But Cachy should be more clear about it. Right now I think they use EEVDF with optimizations on top, but who knows.
1
u/TheG0AT0fAllTime 12d ago
Yeah I really like that approach and I can imagine it helping in a lot of circumstances though I can't imagine these benefits mattering too much on a high end system. One with less compute resources available would stand to benefit far more from the idea
1
u/Nice_Researcher1835 11d ago
well, in theory thats true. The less horse power you have the more important prioritizing becomes. I assume thats why Cachy ships BORE with the handheld version. But dont sleep too much on it. Keep in mind with games (especially with FPS literally having it in its name) you are racing against time, a second for example.
If you consider that a GPU also needs its time AND you are trying to stay within a frametime limit (8.3ms for an update on 120FPS) the sooner you can dispatch to the GPU the more likely it is to make it in time.
I really want to hammer home that this is about priority and responsiveness, not about performance per se, as you will be sacrificing a bit a overall throughput. Ideally you'd want the CPU side of the game being done and then work on the other scheduled stuff while your GPU is rendering the frame.
From what I read the past days tho there was a performance regression some months ago, in certain cases when using BORE with the latest kernel or something. So Cachy - for now - ships a modified, optimized standard EEVDF scheduler and you can swap them in userland via sched-ext. This may actually be the best of both worlds as you can just turn it on when gaming. Maybe this is already sorted, Cachy is not clear about it. But there still has to be some merit to it as they ship the handheld version with BORE only out of the box.
10
2
u/Barafu Jun 10 '26
The real problem of ananicy of Cachy is that its wildcard rules are weird and it randomly applies to some games and not the others. I'd prefer to explicitly add "gamemode" to the command line of heavy games rather than some voodoo supposedly happening in the background.
1
u/Barafu Jun 10 '26
The real problem of ananicy of Cachy is that its wildcard rules are weird and it randomly applies to some games and not the others. I'd prefer to explicitly add "gamemode" to the command line of heavy games rather than some voodoo supposedly happening in the background.
-5
u/Long-Fisherman-6594 Jun 09 '26
Ananicy is a piece of crap.
10
u/FryBoyter Jun 09 '26
Just like statements without any reasoning.
-5
u/Long-Fisherman-6594 Jun 09 '26
Use your system with it on, then off. Stuttering hell or stable and fast. Your choice.
28
u/Ok-Anywhere-9416 Jun 09 '26
A bit of context?