Messages in this thread | | | From | Vincent Guittot <> | Date | Wed, 6 Apr 2022 14:59:05 +0200 | Subject | Re: [PATCH] sched/fair: Return the busiest group only if imbalance is meaningful |
| |
On Wed, 6 Apr 2022 at 13:23, zgpeng <zgpeng.linux@gmail.com> wrote: > > When calculate_imbalance function calculate the imbalance, it may > actually get a negative number. In this case, it is meaningless to
We should not return a negative imbalance but I suppose this can happen when we are using the avg_load metrics to calculate imbalance. Have you faced a use case where imbalance is negative ?
> return the so-called busiest group and continue to search for the > busiest cpu later. Therefore, only when the imbalance is greater > than 0 should return the busiest group, otherwise return NULL. > > Signed-off-by: zgpeng <zgpeng@tencent.com> > Reviewed-by: Samuel Liao <samuelliao@tencent.com> > --- > kernel/sched/fair.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 601f8bd..9f75303 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -9639,7 +9639,7 @@ static struct sched_group *find_busiest_group(struct lb_env *env) > force_balance: > /* Looks like there is an imbalance. Compute it */ > calculate_imbalance(env, &sds); > - return env->imbalance ? sds.busiest : NULL; > + return env->imbalance > 0 ? sds.busiest : NULL; > > out_balanced: > env->imbalance = 0; > -- > 2.9.5 >
| |