diff options
| author | Tejun Heo <tj@kernel.org> | 2026-07-27 11:20:32 -1000 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-07-27 11:20:32 -1000 |
| commit | 3c4b38064937a761ebbf85b1649e812db85eb59e (patch) | |
| tree | ab631aac19b384beaf6ede39c78ca1cc5b5f8412 /tools/perf/scripts/python | |
| parent | e06ece82d7b078b511d36fbaca46df231c647e16 (diff) | |
sched_ext: Abort directly from the hardlockup handler
scx_hardlockup() defers the abort to an irq_work because exit claiming used
to take scx_sched_lock and couldn't run from NMI. The deferral is now
unnecessary - claiming is NMI-safe and asserting ->aborting is exactly what
breaks the live-locks that hard-lock CPUs. Call handle_lockup() directly and
drop the irq_work. This also makes the self-detected case recoverable: the
perf watchdog fires on the hard-locked CPU itself, where a queued irq_work
never runs with IRQs off.
Also fix the return value: %true used to be returned whenever sched_ext was
loaded, suppressing the kernel's hardlockup report even when the abort was
refused. Return %true only when this call initiated the abort.
Fixes: bd2d76455b65 ("sched_ext: Defer scx_hardlockup() out of NMI")
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
