diff options
| author | Peter Zijlstra <peterz@infradead.org> | 2024-10-30 15:47:46 +0100 |
|---|---|---|
| committer | Peter Zijlstra <peterz@infradead.org> | 2025-10-16 11:13:51 +0200 |
| commit | 1ae5f5dfe5adc64a90b1b0ab5bd9bd7c9d140c28 (patch) | |
| tree | 62c65ad77a698c1dbb920100bf94330a7ffa0d08 /kernel/sched/ext.c | |
| parent | 637b0682821b144d5993211cf0a768b322138a69 (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.c | 6 |
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; |