sched/fair: Skip update_blocked_averages if we are defering load balance
authorVincent Guittot <vincent.guittot@linaro.org>
Tue, 19 Oct 2021 12:35:34 +0000 (14:35 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Sun, 31 Oct 2021 10:11:37 +0000 (11:11 +0100)
commit9d783c8dd112ad4b619e74e4bf57d2be0b400693
treecf68010c9b8ecc7df550466273d627d67c830401
parent9e9af819db5dbe4bf99101628955a26e2a41a1a5
sched/fair: Skip update_blocked_averages if we are defering load balance

In newidle_balance(), the scheduler skips load balance to the new idle cpu
when the 1st sd of this_rq is:

   this_rq->avg_idle < sd->max_newidle_lb_cost

Doing a costly call to update_blocked_averages() will not be useful and
simply adds overhead when this condition is true.

Check the condition early in newidle_balance() to skip
update_blocked_averages() when possible.

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Acked-by: Mel Gorman <mgorman@suse.de>
Link: https://lore.kernel.org/r/20211019123537.17146-3-vincent.guittot@linaro.org
kernel/sched/fair.c