diff options
| author | Tejun Heo <tj@kernel.org> | 2026-04-25 03:31:36 +0300 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-04-25 03:31:36 +0300 |
| commit | 207d76a372fb1bb324eadc8cb5bcaa0a8da7cefd (patch) | |
| tree | 829c04fa70360042cae90f67778b6b5362e16e83 /include/linux/atmdev.h | |
| parent | 7fb39e4eb4c3db52e4707a6a1cd45362f7e803f5 (diff) | |
| download | linux-207d76a372fb1bb324eadc8cb5bcaa0a8da7cefd.tar.xz | |
sched_ext: Pass held rq to SCX_CALL_OP() for dump_cpu/dump_task
scx_dump_state() walks CPUs with rq_lock_irqsave() held and invokes
ops.dump_cpu / ops.dump_task with NULL locked_rq, leaving
scx_locked_rq_state NULL. If the BPF callback calls a kfunc that
re-acquires rq based on scx_locked_rq() - e.g. scx_bpf_cpuperf_set(cpu)
- it re-acquires the already-held rq.
Pass the held rq to SCX_CALL_OP(). Thread it into scx_dump_task() too.
The pre-loop ops.dump call runs before rq_lock_irqsave() so keeps
rq=NULL.
Fixes: 07814a9439a3 ("sched_ext: Print debug dump after an error exit")
Cc: stable@vger.kernel.org # v6.12+
Reported-by: Chris Mason <clm@meta.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'include/linux/atmdev.h')
0 files changed, 0 insertions, 0 deletions
