mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCHSET sched_ext/for-7.4] sched_ext: Add scx_bpf_cgroup_nr_cpus()
@ 2026-09-29  8:37 Andrea Righi
  2026-09-29  8:37 ` [PATCH 1/3] cgroup/cpuset: Protect is_in_v2_mode() in cpuset_num_cpus() Andrea Righi
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Andrea Righi @ 2026-09-29  8:37 UTC (permalink / raw)
  To: Tejun Heo, David Vernet, Changwoo Min
  Cc: Waiman Long, Ridong Chen, Johannes Weiner, Michal Koutny,
	sched-ext, cgroups, linux-kernel

Hierarchical BPF schedulers need to know how many CPUs a cgroup can run on when
distributing group-wide weights. For example, fair's group share calculation
scales a group's weight by the smaller of its estimated runnable task count and
the number of CPUs in its effective cpuset (tg_cpus() -> cpuset_num_cpus()).
Without that count, a BPF scheduler can only use the machine-wide CPU count and
may give a group confined to a few CPUs excessive shares.

This patchset adds scx_bpf_cgroup_nr_cpus(), a kfunc that returns the same count
fair uses. This allows scx_eevdf to implement proper group scheduling, computing
per-cgroup shares the same way fair does, including for groups confined to a
subset of CPUs through cpuset.

Andrea Righi (3):
      cgroup/cpuset: Protect is_in_v2_mode() in cpuset_num_cpus()
      sched_ext: Introduce scx_bpf_cgroup_nr_cpus()
      selftests/sched_ext: Test scx_bpf_cgroup_nr_cpus()

 kernel/cgroup/cpuset.c                             |   6 +-
 kernel/sched/ext/ext.c                             |  22 ++
 tools/sched_ext/include/scx/common.bpf.h           |   1 +
 tools/sched_ext/include/scx/compat.bpf.h           |   7 +
 tools/testing/selftests/sched_ext/Makefile         |   6 +-
 .../selftests/sched_ext/cgroup_nr_cpus.bpf.c       |  60 +++
 tools/testing/selftests/sched_ext/cgroup_nr_cpus.c | 419 +++++++++++++++++++++
 tools/testing/selftests/sched_ext/config           |   1 +
 8 files changed, 519 insertions(+), 3 deletions(-)
 create mode 100644 tools/testing/selftests/sched_ext/cgroup_nr_cpus.bpf.c
 create mode 100644 tools/testing/selftests/sched_ext/cgroup_nr_cpus.c

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-09-29 19:58 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-29  8:37 [PATCHSET sched_ext/for-7.4] sched_ext: Add scx_bpf_cgroup_nr_cpus() Andrea Righi
2026-09-29  8:37 ` [PATCH 1/3] cgroup/cpuset: Protect is_in_v2_mode() in cpuset_num_cpus() Andrea Righi
2026-09-29 13:47   ` Michal Koutný
2026-09-29 15:32     ` Waiman Long
2026-09-29 17:35       ` Andrea Righi
2026-09-29 18:10         ` Waiman Long
2026-09-29 19:08           ` Peter Zijlstra
2026-09-29 19:46             ` Waiman Long
2026-09-29 19:57     ` Andrea Righi
2026-09-29  8:37 ` [PATCH 2/3] sched_ext: Introduce scx_bpf_cgroup_nr_cpus() Andrea Righi
2026-09-29  8:37 ` [PATCH 3/3] selftests/sched_ext: Test scx_bpf_cgroup_nr_cpus() Andrea Righi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®