Writing custom Linux schedulers is pretty easy using sched-ext. You can write your own tiny scheduler in a few lines of code using C, Rust, or even Java, see the wiki for more. We're so confident in sched-ext that we're starting a Scheduler Contest for FOSDEM'25. Think you can craft the ultimate scheduler? A scheduler that does something interesting, helpful, or fun? Join our sched-ext contest and show us what you've got, with the chance of winning hand-crafted sched-ext swag!
Submit your scheduler using sched-ext as a pull request to this repository, ensuring:
-
It runs with a 6.12 Linux kernel.
-
It's GPLv2-licensed
-
It compiles and is understandable. We're programming language agnostic; just make sure to include a script so we can build and run it.
The implementations.md document provides details on the submission format.
If you are planning to implement a scheduler in Rust, you can use this template and follow these steps to test it.
You can also submit a unique scheduling policy idea to ideas.md.
Try to surprise us...
The submission deadline is Sunday, 2 February, at 10:00 AM (CET).
Winners will be announced during Andrea Righi's talk on the Kernel track, "Level Up Your Linux Gaming: How Sched-ext Can Save Your FPS," from 12:30 to 13:10.
- Best Scheduler: A sched-ext shirt and a cup!
- Best Idea: A sched-ext shirt!
To claim your prize, you must be present during Andrea’s talk. By participating, you agree to share your submission under GPL licensing and allow us to showcase it.
This contest is for fun! We, Andrea and Johannes, select the winners based on our personal preferences and our own definition of "best". All decisions are final, and we’re not liable beyond delivering the prizes to the winners. If you have any questions, feel free to create a GitHub issue.
There will be multiple talks at FOSDEM’25 on sched-ext:
- Concurrency Testing using Custom Linux Schedulers (Saturday, 12:00, Testing and Continuous Delivery track)
- Rust-ifying the Linux kernel scheduler (in user space) (Saturday, 17:20, Rust track)
- Writing a Minimal Scheduler with eBPF, sched_ext, and C (Saturday, 18:20, eBPF track)
- Level up your Linux gaming: how sched_ext can save your fps (Sunday, 12:30, Kernel track)
Come by and get yourself a sched-ext sticker and valuable information on this fascinating topic.
In the meantime, you can learn about sched-ext from the resources listed in the wiki, which includes a basic tutorial, and the videos in the sched-ext playlist on YouTube.