summaryrefslogtreecommitdiff
path: root/kernel/sched/ext.c
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2024-10-30 15:47:46 +0100
committerPeter Zijlstra <peterz@infradead.org>2025-10-16 11:13:51 +0200
commit1ae5f5dfe5adc64a90b1b0ab5bd9bd7c9d140c28 (patch)
tree62c65ad77a698c1dbb920100bf94330a7ffa0d08 /kernel/sched/ext.c
parent637b0682821b144d5993211cf0a768b322138a69 (diff)
sched: Cleanup sched_delayed handling for class switches
Use the new sched_class::switching_from() method to dequeue delayed tasks before switching to another class. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org> Reviewed-by: Juri Lelli <juri.lelli@redhat.com> Acked-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/sched/ext.c')
-rw-r--r--kernel/sched/ext.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
index a408c393ff15..b0a1e2a4c4a3 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -3922,9 +3922,6 @@ static void scx_disable_workfn(struct kthread_work *work)
if (old_class != new_class)
queue_flags |= DEQUEUE_CLASS;
- if (old_class != new_class && p->se.sched_delayed)
- dequeue_task(task_rq(p), p, DEQUEUE_SLEEP | DEQUEUE_DELAYED | DEQUEUE_NOCLOCK);
-
scoped_guard (sched_change, p, queue_flags) {
p->sched_class = new_class;
}
@@ -4673,9 +4670,6 @@ static int scx_enable(struct sched_ext_ops *ops, struct bpf_link *link)
if (old_class != new_class)
queue_flags |= DEQUEUE_CLASS;
- if (old_class != new_class && p->se.sched_delayed)
- dequeue_task(task_rq(p), p, DEQUEUE_SLEEP | DEQUEUE_DELAYED | DEQUEUE_NOCLOCK);
-
scoped_guard (sched_change, p, queue_flags) {
p->scx.slice = SCX_SLICE_DFL;
p->sched_class = new_class;