How to create a kernel scheduler in openSUSE
Using the Extensible Scheduler framework
Giovanni Gherdovich
Giovanni joined SUSE in 2016 and has since been working on Linux kernel performance, task scheduling and power management.
No video of the event yet, sorry!
Your computer has many CPUs, but it has even more programs to run! The kernel scheduler is like a traffic police officer at the Shibuya Crossing in Tokyo, making sure all pedestrians and cars can safely and efficiently advance towards their destination. The kernel scheduler tells execution threads on which CPU they'll run, when to start and when to stop.
We will learn what are the considerations and trade-offs to examine when designing a scheduler, and how to create one of our own, using a revolutionary new technology called "sched-ext", or "the extensible scheduler". Sched-ext makes it possible to implement scheduling operations as an eBPF loadable program, and switch from a scheduler to another without rebooting our computer.
This toolbox is of interest for students, allowing them to make changes to a core part of the operating system and see their effect immediately, without recompiling the kernel, for a deeper understanding of the theoretical concepts behind thread scheduling. It is advantageous for researchers, wanting to explore ideas and design new scheduling algorithms: they could do so directly using the upstream Linux kernel, without the need for creating their own plugin infrastructure, jumping directly at the core of their work. Performance engineers and enthusiasts will, too, benefit from this: once it's possible to easily write, test and integrate new schedulers into an otherwise stock Linux kernel, you can afford to specialize them to the exact workload and hardware you operate, extracting more efficiency out of it.
- Date:
- 2024 November 2 - 15:45
- Duration:
- 40 min
- Room:
- Room A
- Conference:
- openSUSE.Asia Summit 2024
- Language:
- en
- Track:
- openSUSE
- Difficulty:
- Medium
- Edge IoT system with NVIDIA Jetson managed by Rancher
- Start Time:
- 2024 November 2 15:45
- Room:
- Room B