diff options
| author | Tejun Heo <tj@kernel.org> | 2026-10-07 23:15:39 -1000 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-10-09 11:37:27 -1000 |
| commit | da3bad759ef2df9db38ad851a061d719091d74dd (patch) | |
| tree | e6958a0c01b6822165d0d1ce12221b20ae8fa385 /tools/perf/scripts/python/bin | |
| parent | 3d7c2f550eefe30e90fbb031897b0170d8dee303 (diff) | |
sched_ext: Add ops.sub_child_ecaps_updated() to report a child's effective cap changes
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. Without that the
parent cannot act on a revoke: a child that ran a cid at a low cpuperf
target leaves the target there when PERF is revoked, as the kernel resets
targets only at root enable. Nor can the parent tell when it may schedule on
the cid again.
Add 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, in the same dispatch context. Both
deliveries are suppressed while the child is bypassing and replayed together
afterwards. A disabled child reports nothing: ops.sub_detach() is where the
parent restores what it had delegated.
A sub is now bypassed before it is linked, so that the grants queued for it
from ops.sub_attach() are consumed while it is bypassed and replayed to it
and the parent once it is enabled. Otherwise a sync consumed before the
sub's ops are registered would reach the parent but never the sub.
v2: Drop the disable report with its sleep lock and nested-dispatch gate,
the parent restores from ops.sub_detach() instead.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions
