sched_ext: Add scx_enabled() test to @start_class promotion in put_prev_task_balance()
authorTejun Heo <tj@kernel.org>
Tue, 6 Aug 2024 19:40:10 +0000 (09:40 -1000)
committerTejun Heo <tj@kernel.org>
Tue, 6 Aug 2024 19:40:10 +0000 (09:40 -1000)
SCX needs its balance() invoked even when waking up from a lower priority
sched class (idle) and put_prev_task_balance() thus has the logic to promote
@start_class if it's lower than ext_sched_class. This is only needed when
SCX is enabled. Add scx_enabled() test to avoid unnecessary overhead when
SCX is disabled.

Signed-off-by: Tejun Heo <tj@kernel.org>
Suggested-by: Peter Zijlstra <peterz@infradead.org>
Acked-by: David Vernet <void@manifault.com>
kernel/sched/core.c

index 38df84d5a9f6a3576534ad4415ede18793e1748b..957c1a6626d2768866762d31eef33b99d18b1460 100644 (file)
@@ -5867,7 +5867,7 @@ static void put_prev_task_balance(struct rq *rq, struct task_struct *prev,
         * when waking up from SCHED_IDLE. If @start_class is below SCX, start
         * from SCX instead.
         */
-       if (sched_class_above(&ext_sched_class, start_class))
+       if (scx_enabled() && sched_class_above(&ext_sched_class, start_class))
                start_class = &ext_sched_class;
 #endif