Meanwhile these CPUs are amazing on Linux
https://www.phoronix.com/review/amd-ryzen-9950x-9900x
https://www.phoronix.com/review/amd-zen5-avx-512-9950x
For some reason Windows scheduler is not as good as the one found in the Linux kernel with the zen5.
I wouldn’t be even mildly shocked to eventually find out that there’s some sort of back room deal between MS and Intel
Me neither. But. I think the answer is much simpler here: Microsoft doesn’t make their money with schedulers, but bundling that Office and tracking to everybody, and charging rent every month. They have way less people working on making the kernel as fast as possible, compared to Linux where:
- there are many companies running crazy workloads 24/7, and providing patches
- very talented individual hackers who have an open source kernel and can play around with things, getting that last oomph out from their system
This is why, for a pro user, Linux is an amazing platform.
Wait a minute. Was this sarcastic or do I get to lore dump? In case you weren’t aware, Intel has been doing this shit to AMD for decades. And so has Nvidia.
https://www.nbcnews.com/id/wbna33882525
Like this was a 3 minute Google search adventure.
I’m assuming they’re specifically meaning a deal regarding not fixing the scheduler issues
To be completely honest, I’d be more surprised if there wasn’t.
The next steam deck is gonna be amazing. I mean the current one is, too
Yeah, same with the next gen zen5 laptops. The Ryzen 9950x can compile code faster and by using less power compared to 7950x. It is going to be awesome for dev laptop performance and battery use.
The BORE scheduler on Linux is even better, as it’s specifically optimized for the features in these chips.
It’s pretty easy to patch the kernel in NixOS:
https://git.sr.ht/~pimeys/nixos/commit/2a023c5ccc8a499dcb4ea14b0ab52c33db3f3523
It definitely feels snappier even with my 5950x. I hope this lands to mainline soon, compiling kernel for every update takes a few minutes extra.
There are custom pre-compiled kernels that come with BORE. Not sure about Nix and I don’t know if they even have custom kernels in the repos at all, but there is linux-cachyos-bore on Arch. CachyOS is a pretty cool Arch-based distro that offers multiple kernels with different optimizations. They also put them in the AUR, so any Arch user can install them.
Thanks for sparking my interest on cachyos kernels and what they patch. In addition to bore, they also patch the sched_ext support!
https://github.com/CachyOS/linux-cachyos?tab=readme-ov-file#cachyos-default-kernel
Now, what this means is you can boot this kernel, then just start the scheduler from userland, e.g.
run0 scx_rustland
It uses bpf, so the scheduler switches immediately and is as fast as anything in the kernel space. What makes this rustland scheduler super interesting is how it can detect what application is currently active, and give it a full priority over anything else. So you can compile code in the background with all cores, and at the same time play a game with the best frame rate.
There are other sched_ext schedulers available, at least on nixos with the cachyos kernel I get a bunch of scx_ binaries to play with.
For nix users here, nyx flake packages and compiles the cachyos kernel:
Wtf is run0
Edit: Is that nyx flake made by the same guys as the Chaotic AUR repo for arch?
Wtf is run0
https://www.freedesktop.org/software/systemd/man/devel/run0.html
Edit: Is that nyx flake made by the same guys as the Chaotic AUR repo for arch?
Looks like it if you check from GitHub.
Rant about systemd
Oh hell no why the actual fuck does systemd attempt to replace every single component of the Linux stack? We don’t need more of this monolithic bullshit. What’s next, replace the Linux kernel with systemd? Fucking hell. And why the hell did they give it such a stupid name??? run0? The only way this makes sense, is because 0 people should actually run this on their god damn system. I’m just waiting for applications to start breaking because some stupid systemd dependency, which itself depends on 15 gigabytes of other systemd bloat isn’t installed.
Sorry for the rant
I’ll definitely stay on Gentoo with doas and OpenRC
They have a few in the main branch: https://github.com/NixOS/nixpkgs/tree/master/pkgs/os-specific/linux/kernel
I see rt and zen at least being available. Would of course be quite easy to just send them a PR for bore patches, but I think I wait for sched_ext to land instead…
Not yet in the Torvalds tree of Linux? There’s a ton of interesting schedulers coming when sched_ext lands to the mainline:
https://www.phoronix.com/news/sched_ext-Ahead-Of-Linux-6.12
Also, would be great if more distros would compile packages with AVX512, there’s a ton of perf left on the table:
Not yet in the Torvalds tree of Linux?
I don’t think they’re gonna switch schedulers that quickly. They only changed from CFS (which they used for decades) to EEVDF last October.
Not until sched_ext lands, and you can then switch schedulers as you wish. Maybe in 6.12?
Oh that’s cool. Looks very promising.
It’s not “because we’re not fiddling” with anything.
It’s because Windows’ scheduler is objectively broken and not scheduling workloads correctly.
Can you elaborate? How is it breaking?
It assigns workloads to the virtual core (from SMT) before properly distributing them to other cores. Source
This is not an issue on Linux because they schedule threads correctly.
But I guess this post is about windows only doing some other branch prediction correctly on some admin mode, so I guess that way too.
Thanks for the explaination! I would have searched in but I’m on a phone and my kids are jumping on the couch/me. Have an upvote, on me.