summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/bin
diff options
context:
space:
mode:
authorAndrea Righi <arighi@nvidia.com>2026-07-09 07:17:08 +0200
committerTejun Heo <tj@kernel.org>2026-07-09 12:37:17 -1000
commit3d1519011e395ea96c7fbc5ced35b49cfe60d93e (patch)
tree754acd41002a839de1f25dbee6151092cb8522a0 /tools/perf/scripts/python/bin
parentb38332be61a8a76cf77586fb769849257ff217ae (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/bin')
0 files changed, 0 insertions, 0 deletions