Skip to content

Conversation

@etsal
Copy link
Contributor

@etsal etsal commented Jan 6, 2026

C schedulers have historically been used as a demonstration of how to start writing scheduler code, but as the ecosystem has matured are no longer representative of how we develop schedulers. Keeping the C schedulers solely in the kernel removes the need to support a C-based build system and toolchain in this repo, and avoids confusing newcomers who may try to deploy or hack on our example C schedulers we've had.

Any C schedulers missing from the kernel will be added to tools/sched_ext along with the rest.

EDIT: Please see comment in this thread for more details.

Copy link
Contributor

@oxyzenQ oxyzenQ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😵‍💫

@arighi
Copy link
Contributor

arighi commented Jan 6, 2026

Honestly I'd prefer to keep the C schedulers in the repo, some devs are not familiar with Rust and may want to create a scheduler in C. Having the C schedulers as template / examples is useful. Also for quick experimentation, it is so much easier to create a C scheduler than a Rust one.

@likewhatevs
Copy link
Contributor

Keeping the C schedulers solely in the kernel removes the need to support a C-based build system and toolchain in this repo, and avoids confusing newcomers who may try to deploy or hack on our example C schedulers we've had.

If the motivation is to get rid of meson/complexity, maybe replace meson with a (few?) Makefile(s?)?

@oxyzenQ
Copy link
Contributor

oxyzenQ commented Jan 6, 2026

keep C scheduler or for alternative.

@etsal
Copy link
Contributor Author

etsal commented Jan 6, 2026

Updating with the discussion we had during scx office hours:

  1. The ability to write and load C schedulers is not going away. This is just a change to separate the C schedulers from the Rust schedulers because they share almost no code, and effectively function as separate repos.
  2. Existing schedulers will all go in tools/sched_ext. We will "lose" no schedulers in the process.
  3. C schedulers are still nice for prototyping, so there is a case for keeping a C scheduler repository. We can keep a (read-only) separate scx-c-examples repository in this org.

@etsal
Copy link
Contributor Author

etsal commented Jan 6, 2026

Honestly I'd prefer to keep the C schedulers in the repo, some devs are not familiar with Rust and may want to create a scheduler in C. Having the C schedulers as template / examples is useful. Also for quick experimentation, it is so much easier to create a C scheduler than a Rust one.

Another followup from the office hours discussion today: https://github.com/etsal/scx-c-examples should be a self-contained repo for C schedulers that can be used for experimentation. We can add it to the org as a repo, and if we find out there is interest from people to contribute complex C schedulers that would be difficult to add into the tools/sched_ext directory we can place them there.

@etsal etsal force-pushed the remove-c-schedulers branch 3 times, most recently from 27fa017 to 309f7c5 Compare January 9, 2026 21:49
@etsal etsal force-pushed the remove-c-schedulers branch from 309f7c5 to ccf5625 Compare January 9, 2026 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants