Using another Linux scheduler called scx_bpfland, a scheduler its job to manage the load across multiple cores effectively. scx_bpfland is an alternative scheduler built on top of sched_ext.
Long story short, you can significantly improve Linux gaming by switching to another thread scheduler like scx_bpfland, which can improve the unstable 30 FPS (with spikes) to a very stable 60 FPS game play (video link).
I also would love to combine these scheduler with other features like CPU pinning. There is a Linux CLI tool called taskset
, which seems to pin cores for processes.
In another unrelated software sidekiq, taskset was also used to improve performance due to CPU affinity which in result making the software so much faster.
How is it different from the scx_lavd scheduler?
That is a very good question. scx_lavd looks very similar, is also using BPF and is also aimed for gaming and alike. scx_bpfland is based on scx_rustland.
I believe scx_bpfland has most likely differences in the technically of the scheduler still scx_bpfland has the notation of time slice budget, which really works well with latency-sensitive workloads, by giving it more chances to exceed their time slice when needed to perform short bursts of CPU activity without being interrupted.