[PATCH sched_ext/for-6.12] sched_ext: Don't trigger ops.quiescent/runnable() on migrations

Tejun Heo posted 1 patch 2 months, 3 weeks ago
kernel/sched/ext.c |    4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH sched_ext/for-6.12] sched_ext: Don't trigger ops.quiescent/runnable() on migrations
Posted by Tejun Heo 2 months, 3 weeks ago
A task moving across CPUs should not trigger quiescent/runnable task state
events as the task is staying runnable the whole time and just stopping and
then starting on different CPUs. Suppress quiescent/runnable task state
events if task_on_rq_migrating().

Signed-off-by: Tejun Heo <tj@kernel.org>
Suggested-by: David Vernet <void@manifault.com>
Cc: Daniel Hodges <hodges.daniel.scott@gmail.com>
Cc: Changwoo Min <multics69@gmail.com>
Cc: Andrea Righi <andrea.righi@linux.dev>
Cc: Dan Schatzberg <schatzberg.dan@gmail.com>
---
 kernel/sched/ext.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -2050,7 +2050,7 @@ static void enqueue_task_scx(struct rq *
 	rq->scx.nr_running++;
 	add_nr_running(rq, 1);
 
-	if (SCX_HAS_OP(runnable))
+	if (SCX_HAS_OP(runnable) && !task_on_rq_migrating(p))
 		SCX_CALL_OP_TASK(SCX_KF_REST, runnable, p, enq_flags);
 
 	if (enq_flags & SCX_ENQ_WAKEUP)
@@ -2134,7 +2134,7 @@ static bool dequeue_task_scx(struct rq *
 		SCX_CALL_OP_TASK(SCX_KF_REST, stopping, p, false);
 	}
 
-	if (SCX_HAS_OP(quiescent))
+	if (SCX_HAS_OP(quiescent) && !task_on_rq_migrating(p))
 		SCX_CALL_OP_TASK(SCX_KF_REST, quiescent, p, deq_flags);
 
 	if (deq_flags & SCX_DEQ_SLEEP)
Re: [PATCH sched_ext/for-6.12] sched_ext: Don't trigger ops.quiescent/runnable() on migrations
Posted by Tejun Heo 2 months, 2 weeks ago
On Mon, Sep 09, 2024 at 01:40:44PM -1000, Tejun Heo wrote:
> A task moving across CPUs should not trigger quiescent/runnable task state
> events as the task is staying runnable the whole time and just stopping and
> then starting on different CPUs. Suppress quiescent/runnable task state
> events if task_on_rq_migrating().
> 
> Signed-off-by: Tejun Heo <tj@kernel.org>
> Suggested-by: David Vernet <void@manifault.com>
> Cc: Daniel Hodges <hodges.daniel.scott@gmail.com>
> Cc: Changwoo Min <multics69@gmail.com>
> Cc: Andrea Righi <andrea.righi@linux.dev>
> Cc: Dan Schatzberg <schatzberg.dan@gmail.com>

Applied to sched_ext/for-6.12.

Thanks.

-- 
tejun