summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/stackcollapse.py
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2026-10-16 19:37:17 -1000
committerTejun Heo <tj@kernel.org>2026-10-17 04:35:37 -1000
commit5809f749fbdbaf9c6b34ecbe6d2b413e56eec6e3 (patch)
treec4d7b63f9d61ae4cb2d81ae7e0cb40a7618e1b9c /tools/perf/scripts/python/stackcollapse.py
parent30fb2b1e4d41a641a059f295a717ffa0e24307e7 (diff)
sched_ext: Fix a bypassed task stalling on a cpu its scheduler has no caps on
A bypassing sub-scheduler's tasks are run by its nearest ancestor that isn't bypassing. The ancestor puts them on the local DSQ under its own caps. Whether such a task may stay on the cpu and whether a cap revoke reenqueues it are still checked against the caps of the task's own scheduler. The bypass load balancer moves tasks between cpus without looking at caps, so a bypassed task can run on a cpu where its own scheduler holds none. Once its slice runs out, it can't stay. It goes to the ancestor's bypass DSQ without a kick, and the cpu can go idle with it queued until something else reschedules the cpu. Make both checks against the caps of the scheduler running the task. When bypass lifts, the running task keeps its slice without a cap check, so evict it then if it can't stay on the cpu. Fixes: 75a8c8202c91 ("sched_ext: Add reject DSQ for cap-rejected dispatches") Fixes: 46a85ae6fe5b ("sched_ext: Tie cpu occupancy to SCX_CAP_BASE through the task slice") Signed-off-by: Tejun Heo <tj@kernel.org> Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions