summaryrefslogtreecommitdiffstats
path: root/scripts/bash-completion/make
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2026-09-15 12:34:44 -1000
committerTejun Heo <tj@kernel.org>2026-09-15 12:34:44 -1000
commit7de9a6fb44eae4f05e68c805d58b9c618815adfa (patch)
treeb97f1f711082e3cbd8302005449d7fdc619796e1 /scripts/bash-completion/make
parenta9e3760b0838299649c0d57cca44daaf40ba3c33 (diff)
downloadlinux-stable-7de9a6fb44eae4f05e68c805d58b9c618815adfa.tar.gz
linux-stable-7de9a6fb44eae4f05e68c805d58b9c618815adfa.zip
sched_ext: Wait for SCX_OPSS_DISPATCHING before reenqueueing a task
ebf1ccff79c4 ("sched_ext: Fix ops.dequeue() semantics") moved the final ops_state store in scx_dispatch_enqueue() after the DSQ unlock so that the custody update and ops.dequeue() precede it. A task can thus be found on a DSQ while still SCX_OPSS_DISPATCHING. The dequeue and core-sched pick paths wait for the state to clear in ops_dequeue() but the reenqueue paths don't. A reenqueue in that window runs ops.enqueue() and sets SCX_OPSS_QUEUED before the dispatch has completed. The dispatcher's final store then overwrites it with SCX_OPSS_NONE and finish_dispatch() drops every later dispatch of the task. Wait for SCX_OPSS_DISPATCHING to clear before dequeueing a task for reenqueue, the same way ops_dequeue() does. Fixes: ebf1ccff79c4 ("sched_ext: Fix ops.dequeue() semantics") Cc: stable@vger.kernel.org # v7.1+ Signed-off-by: Tejun Heo <tj@kernel.org> Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'scripts/bash-completion/make')
0 files changed, 0 insertions, 0 deletions