Messages in this thread |  | | Subject | Re: [PATCH v3 4/5] sched/fair: Remove sysctl_sched_migration_cost condition | From | Dietmar Eggemann <> | Date | Fri, 29 Oct 2021 12:01:51 +0200 |
| |
On 19/10/2021 14:35, Vincent Guittot wrote: > With a default value of 500us, sysctl_sched_migration_cost is > significanlty higher than the cost of load_balance. Remove the
Shouldn't this be rather `load balance cost on the lowest sd`? I assume here that lb cost stands for sd->max_newidle_lb_cost of the 1st sd.
We still use sysctl_sched_migration_cost as a floor against max_cost (i.e. lb cost of all sd's) when setting rq->max_idle_balance_cost in rebalance_domains().
And in the add-on discussion (disabling the call to nohz_newidle_balance() you mention that sd->max_newidle_lb_cost can be higher than sysctl_sched_migration_cost (even when default 500us).
> condition and rely on the sd->max_newidle_lb_cost to abort > newidle_balance. > > Suggested-by: Peter Zijlstra (Intel) <peterz@infradead.org> > Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org> > --- > kernel/sched/fair.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index e50fd751e1df..57eae0ebc492 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -10895,8 +10895,7 @@ static int newidle_balance(struct rq *this_rq, struct rq_flags *rf) > rcu_read_lock(); > sd = rcu_dereference_check_sched_domain(this_rq->sd); > > - if (this_rq->avg_idle < sysctl_sched_migration_cost || > - !READ_ONCE(this_rq->rd->overload) || > + if (!READ_ONCE(this_rq->rd->overload) || > (sd && this_rq->avg_idle < sd->max_newidle_lb_cost)) { > > if (sd) >
|  |