2023-12-06 22:35:08 +00:00
|
|
|
SCHED_EXT SCHEDULERS
|
|
|
|
====================
|
|
|
|
|
|
|
|
# Introduction
|
|
|
|
|
|
|
|
This directory contains the repo's schedulers.
|
|
|
|
|
|
|
|
Some of these schedulers are simply examples of different types of schedulers
|
|
|
|
that can be built using sched_ext. They can be loaded and used to schedule on
|
|
|
|
your system, but their primary purpose is to illustrate how various features of
|
|
|
|
sched_ext can be used.
|
|
|
|
|
|
|
|
Other schedulers are actually performant, production-ready schedulers. That is,
|
|
|
|
for the correct workload and with the correct tuning, they may be deployed in a
|
|
|
|
production environment with acceptable or possibly even improved performance.
|
|
|
|
Some of the examples could be improved to become production schedulers.
|
|
|
|
|
|
|
|
Please see the following README files for details on each of the various types
|
|
|
|
of schedulers:
|
|
|
|
|
2023-12-17 20:01:40 +00:00
|
|
|
- [rust](rust/README.md) describes all of the schedulers with rust
|
2023-12-06 22:35:08 +00:00
|
|
|
user space components. All of these schedulers are production ready.
|
2023-12-17 20:01:40 +00:00
|
|
|
- [c](c/README.md) describes all of the schedulers with C user space
|
2023-12-07 19:21:39 +00:00
|
|
|
components. All of these schedulers are production ready.
|
2023-12-06 22:35:08 +00:00
|
|
|
|
|
|
|
## Note on syncing
|
|
|
|
|
|
|
|
Note that there is a [sync-to-kernel.sh](sync-to-kernel.sh) script in this
|
2023-12-17 20:01:40 +00:00
|
|
|
directory. This is used to sync any changes to the specific schedulers
|
|
|
|
with the Linux kernel tree. If you've made any changes to a scheduler in please
|
|
|
|
use the script to synchronize with the sched_ext Linux
|
2023-12-06 22:35:08 +00:00
|
|
|
kernel tree:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ ./sync-to-kernel.sh /path/to/kernel/tree
|
|
|
|
```
|