-
Notifications
You must be signed in to change notification settings - Fork 99
Home
sched_ext is a Linux kernel feature that implements kernel thread schedulers in BPF and dynamically loads them. This wiki contains helpful information on this technology and schedulers implemented with it. Feel free to come to the #docs
channel in slackttps://schedextworkspace.slack.com to share your own.
Be aware that sched-ext is a rapidly evolving ecosystem, so the resources listed here might be slightly outdated.
The ground truth is in the code and the kernel.org documentation.
-
Andrea Righi's blog is full of interesting texts on sched-ext, including
- Getting started with sched-ext development (2024) that covers the basic dev setup for scx development
- Writing a scheduler for Linux in Rust that runs in user-space (2024) and part 2 (2024)
-
Changwoo Min's two-part intro into sched-ext, schedulers, and how to write them in C
-
Jonathan Corbet's short introduction and What's scheduled for sched_ext by Daroc Alden, both at LWN
-
Johannes Bechberger's blog post Hello eBPF: Writing a Linux scheduler in Java with eBPF (15)
There are a few talk recordings (and one podcast episode) on sched-ext. You can find them all in the Sched-Ext YouTube playlist. The following is a selection of the most notable videos:
David Vernet gives a lot of talks on sched-ext, this is a collection:
- Scheduling with superpowers: Using sched_ext to get big perf gains (2024) at Kernel Recipes 2024
- sched ext - David Vernet (2023) at LSFMM+BPF Summit 2023
- Tech Over Tea podcast episode Linux Kernel Scheduler Developer | David Vernet
The recent Linux Storage, Filesystem, MM & BPF Summit also had two talks on sched-ext, giving an update to the previous talk by David Vernet:
- More features and use-cases for sched_ext
- BPF struct_ops & sched_ext by Kui-Feng Lee
The Linux Plumbers Conference 2024 had a micro-conference related to sched-ext, Sched-Ext: The BPF extensible scheduler class MC which covered major topics of the sched-ext community:
- The current status and future potential of sched_ext by David Vernet
- Design a user-space framework to implement sched_ext schedulers by Andrea Righi
- Using sched_ext to improve frame rates on the SteamDeck by Changwoo Min
- Optimizing Google Search and beyond with pluggable scheduling by Barret Rhoden and Josh Don
- A case for using para-virtualized scheduling information with sched_ext schedulers by Himadri Chhaya-Shailesh
- "Hey, psst, try this." The underground culture around custom CPU schedulers. by Giovanni Gherdovich et al.
- Deploying and managing sched_ext schedulers in CachyOS by Peter Jung and Piotr Górski
- Shipping sched-ext: Linux distributions roundtable by Giovanni Gherdovich
Additionally, there was Andrea Righi's talk Crafting a Linux kernel scheduler that runs in user-space using Rust in the LPC Refereed Track.
The whole sched-ext micro-conference has been summed up quite nicely by Jonathan Corbet in his LWN article.