[PATCHSET v2 sched_ext/for-6.12] sched_ext: Add cgroup support

From: Tejun Heo
Date: Mon Aug 26 2024 - 18:58:35 EST


This is v2 of sched_ext cgroup support patchset. Changes from v1
(http://lkml.kernel.org/r/20240808002550.731248-1-tj@xxxxxxxxxx) are:

- cgroup interface file visiblity toggling based on SCX_OPS flags is dropped
as it caused more confusion than helping anything. sched_ext now just
warns when unimplemented features are used.

This was originally taken from the cgroup integration part of the sched_ext
v6 patchset:

http://lkml.kernel.org/r/20240501151312.635565-1-tj@xxxxxxxxxx

This patchset is on top of sched_ext/for-6.12 (9ad2861b773d ("sched_ext:
Allow dequeue_task_scx to fail")) and contains the following patches:

0001-sched-Expose-css_tg.patch
0002-sched-Make-cpu_shares_read_u64-use-tg_weight.patch
0003-sched-Introduce-CONFIG_GROUP_SCHED_WEIGHT.patch
0004-sched_ext-Add-cgroup-support.patch
0005-sched_ext-Add-a-cgroup-scheduler-which-uses-flattene.patch

0001-0003 are sched core preparations. Straightforward. No functional
changes.

0004 adds cgroup support to sched_ext.

0005 implements an example scheduler which uses the cgroup support.

The patchset is also available in the following git branch:

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

diffstat follows. Thanks.

include/linux/sched/ext.h | 3
init/Kconfig | 10
kernel/sched/core.c | 98 +++-
kernel/sched/ext.c | 519 ++++++++++++++++++++++++-
kernel/sched/ext.h | 22 +
kernel/sched/sched.h | 14
tools/sched_ext/Makefile | 2
tools/sched_ext/README.md | 12
tools/sched_ext/include/scx/common.bpf.h | 1
tools/sched_ext/scx_flatcg.bpf.c | 949 ++++++++++++++++++++++++++++++++++++++++++++++
tools/sched_ext/scx_flatcg.c | 233 +++++++++++
tools/sched_ext/scx_flatcg.h | 51 ++
tools/testing/selftests/sched_ext/maximal.bpf.c | 32 +
13 files changed, 1906 insertions(+), 40 deletions(-)

--
tejun