diff options
| author | Andrea Righi <arighi@nvidia.com> | 2026-07-09 07:17:08 +0200 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-07-09 12:37:17 -1000 |
| commit | 3d1519011e395ea96c7fbc5ced35b49cfe60d93e (patch) | |
| tree | 754acd41002a839de1f25dbee6151092cb8522a0 /tools/perf/scripts/python/stackcollapse.py | |
| parent | b38332be61a8a76cf77586fb769849257ff217ae (diff) | |
sched_ext: Keep rq tracking accurate in the consume path
consume_remote_task() drops this_rq before unlinking a remote task from
its DSQ and locking src_rq. When called from ops.dispatch(),
scx_locked_rq() keeps pointing to this_rq across the lock dance. The
subsequent switch_rq_lock(src_rq, this_rq) cannot update the tracking
because its guard does not match, leaving the tracking stale while
src_rq is held.
Keep this_rq locked until the task has been unlinked and the DSQ lock
released, then use switch_rq_lock() to switch directly to src_rq. Use
the same helper to restore this_rq after losing the dequeue race. The
successful path already switches back through
move_remote_task_to_local_dsq(), so scx_locked_rq() now follows the
actually held rq throughout the consume path.
Suggested-by: Tejun Heo <tj@kernel.org>
Link: https://lore.kernel.org/all/455e701bca66bdecde530d225f4dba0a@kernel.org
Signed-off-by: Andrea Righi <arighi@nvidia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
