[PATCHSET v2 sched_ext/for-6.16] sched_ext: Introduce scx_sched

Tejun Heo
2025-04-25T21:58:44Z

v[1] -> v2:

- 0003-sched_ext-Use-dynamic-allocation-for-scx_sched.patch updated to store
scx_sched pointer in sched_ext_ops->priv so that bpf_scx_unreg() can
determine the scx_sched to destroy regardless of where initialization
failed. This will also help with supporting multiple schedulers.

- Minor updates to 0010-sched_ext-Move-event_stats_cpu-into-scx_sched.patch.

In preparation of supporting multiple hierarchical schedulers, this patchset
packages the states which are currently global but need to become per
scheduler instance into the new struct scx_sched.

Currently, the only supported scheduler instance is the system-wide root one
(scx_root) and the code assumes scx_root in many places. A follow-up
patchset will introduce multiple scheduler support scrutinizing and updating
each such occurrence appropriately.

There's significant amount of churning but most changes are straightforward
if not trivial, and no user visible changes are expected.

0001-sched_ext-Introduce-scx_sched.patch
0002-sched_ext-Avoid-NULL-scx_root-deref-through-SCX_HAS_.patch
0003-sched_ext-Use-dynamic-allocation-for-scx_sched.patch
0004-sched_ext-Inline-create_dsq-into-scx_bpf_create_dsq.patch
0005-sched_ext-Factor-out-scx_alloc_and_add_sched.patch
0006-sched_ext-Move-dsq_hash-into-scx_sched.patch
0007-sched_ext-Move-global_dsqs-into-scx_sched.patch
0008-sched_ext-Relocate-scx_event_stats-definition.patch
0009-sched_ext-Factor-out-scx_read_events.patch
0010-sched_ext-Move-event_stats_cpu-into-scx_sched.patch
0011-sched_ext-Move-disable-machinery-into-scx_sched.patch
0012-sched_ext-Clean-up-SCX_EXIT_NONE-handling-in-scx_dis.patch

and is also available in the following git branch:

git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git scx_sched-v2

diffstat follows. Thanks.

kernel/sched/ext.c | 892 ++++++++++++++++++++++++++----------------------
kernel/sched/ext_idle.c | 3
2 files changed, 496 insertions(+), 399 deletions(-)

--
tejun

[1] http://lkml.kernel.org/r/20250423234542.1890867-1-tj@kernel.org