Rust-Written LAVD Kernel Scheduler Shows Promising Results For Linux Gaming
Changwoo Min with Igalia presented yesterday at Open-Source Summit North America on optimizing the kernel's scheduler for Linux gaming. Of course, the motivation is around Valve's Steam Deck but for Linux gaming at large to benefit too from this scheduler work to ideally yield less stuttering during gameplay.
The Igalia presentation focused on the impact the Linux scheduler has on stuttering during gaming and then how "sched_ext" can come into play as the BPF-based extensible scheduler framework. The sched_ext effort has been interesting for many reasons for extending the kernel scheduler via (e)BPF ranging from Canonical/Ubuntu exploring its possibilities, faster prototyping of new scheduler designs, to now showing positive results for Linux gaming with a new scheduler implementation.
The Latency-criticality Aware Virtual Deadline (LAVD) scheduler was the main technical focus of Changwoo Min's presentation. This deadline-based scheduler written in Rust for sched_ext has shown promising results. The LAVD scheduler was showing better or similar performance to EEVDF in the tests carried out by Igalia atop a Linux 6.9-rc1 based kernel when looking both at the average FPS and the 1% low frame rates.
Those wishing to learn more about the LAVD scheduler exploration for Linux gaming can see the slide deck from OSS NA 2024 for those that weren't in Seattle for the conference. Those wanting to explore this LAVD scheduler can see scx_lavd on crates.io. It will be interesting to see what Valve ultimately decides to do around the scheduler for the Steam Deck / Steam OS and what further scheduler optimizations may still come about in the near-term.
The Igalia presentation focused on the impact the Linux scheduler has on stuttering during gaming and then how "sched_ext" can come into play as the BPF-based extensible scheduler framework. The sched_ext effort has been interesting for many reasons for extending the kernel scheduler via (e)BPF ranging from Canonical/Ubuntu exploring its possibilities, faster prototyping of new scheduler designs, to now showing positive results for Linux gaming with a new scheduler implementation.
The Latency-criticality Aware Virtual Deadline (LAVD) scheduler was the main technical focus of Changwoo Min's presentation. This deadline-based scheduler written in Rust for sched_ext has shown promising results. The LAVD scheduler was showing better or similar performance to EEVDF in the tests carried out by Igalia atop a Linux 6.9-rc1 based kernel when looking both at the average FPS and the 1% low frame rates.
Those wishing to learn more about the LAVD scheduler exploration for Linux gaming can see the slide deck from OSS NA 2024 for those that weren't in Seattle for the conference. Those wanting to explore this LAVD scheduler can see scx_lavd on crates.io. It will be interesting to see what Valve ultimately decides to do around the scheduler for the Steam Deck / Steam OS and what further scheduler optimizations may still come about in the near-term.
40 Comments