diff options
| author | Tejun Heo <tj@kernel.org> | 2026-08-03 11:02:03 -1000 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-08-03 11:02:03 -1000 |
| commit | e158e309cd90249a90cc84e6d29e46a3d5551b7b (patch) | |
| tree | 79464fe506393cbfbbd121bd7c39495d4c9656b3 /tools/perf/scripts/python/bin/stackcollapse-report | |
| parent | 62069801861973fb90b15049dbab7544f927f216 (diff) | |
sched_ext: scx_qmap - Add rescue support
A sched holds only the cids its parent granted and nothing guarantees that
they cover its tasks' affinities. A task that can run on none of them has
nowhere to go and qmap stalls out: it force-inserts the task onto its first
allowed cid, but the kernel bounces the insert back and the task parks in
SHARED_DSQ, which is drained only on self cids it can't run on.
Set SCX_ENQ_RESCUE on these inserts so the kernel diverts such tasks to its
rescue path instead of bouncing them. The force-insert covers scheds with
and without children and fires on re-enqueues, and the SHARED_DSQ scan on
every dispatch rescues tasks stranded there - the enqueue-time check misses
a task whose cids were lost while it was already queued. The wrong-cid fault
injection carries the flag too and doubles as a deterministic rescue-traffic
generator.
-B and -q set the root-only rescue bandwidth and quantum ops knobs. -B 0
maps to SCX_RESCUE_DISABLE and turns rescue off kernel-side. Rescue inserts
are counted and reported in the hier stats line.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-report')
0 files changed, 0 insertions, 0 deletions
