[PATCHSET sched_ext/for-7.4] sched_ext: Add ops.sub_child_ecaps_updated()

From: Tejun Heo

Date: Wed Oct 07 2026 - 20:04:00 EST


Hello,

A grant or revoke only records the target caps. They take effect on a cid at
its next dispatch, and nothing tells the parent when. Until then the parent
cannot act on a revoke, such as resetting the cpuperf target a child left on
the cid.

Patch 1 adds ops.sub_child_ecaps_updated(), delivered to the direct parent
right after the child's own ops.sub_ecaps_updated(), with the child's cgroup
id and the same before and after caps. A sub's disable reports the caps it
still held as revoked before the parent's ops.sub_detach(). Patch 2 makes
scx_qmap reset a child's cpuperf target once its PERF revoke takes effect.

Based on sched_ext/for-7.4 (3d7c2f550eef).

This patchset contains the following 2 patches.

0001 sched_ext: Add ops.sub_child_ecaps_updated() to report a child's effective cap changes
0002 sched_ext: scx_qmap: Reset a child's cpuperf targets once its PERF revoke takes effect

The patchset is also available in the following git branch:

git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git sub-child-ecaps

diffstat follows. Thanks.

kernel/sched/ext/ext.c | 4 ++
kernel/sched/ext/internal.h | 29 ++++++++-
kernel/sched/ext/sub.c | 130 ++++++++++++++++++++++++++++++++++-------
tools/sched_ext/scx_qmap.bpf.c | 15 +++++
tools/sched_ext/scx_qmap.c | 7 ++-
tools/sched_ext/scx_qmap.h | 1 +
6 files changed, 161 insertions(+), 25 deletions(-)

--
tejun