Re: [PATCH 3/3 v2] sched/fair: reduce cases for active balance

From: Vincent Guittot
Date: Fri Jan 08 2021 - 03:12:29 EST


On Thu, 7 Jan 2021 at 18:40, Valentin Schneider
<valentin.schneider@xxxxxxx> wrote:
>
> On 07/01/21 13:20, Vincent Guittot wrote:
> > On Thu, 7 Jan 2021 at 12:26, Valentin Schneider
> > <valentin.schneider@xxxxxxx> wrote:
> >> > @@ -9499,13 +9499,32 @@ asym_active_balance(struct lb_env *env)
> >> > }
> >> >
> >> > static inline bool
> >> > -voluntary_active_balance(struct lb_env *env)
> >> > +imbalanced_active_balance(struct lb_env *env)
> >> > +{
> >> > + struct sched_domain *sd = env->sd;
> >> > +
> >> > + /*
> >> > + * The imbalanced case includes the case of pinned tasks preventing a fair
> >> > + * distribution of the load on the system but also the even distribution of the
> >> > + * threads on a system with spare capacity
> >> > + */
> >>
> >> Do you mean s/imbalanced/migrate_task/? This part here will affect
> >> group_imbalanced, group_asym_packing, and some others.
> >
> > I really mean the imbalanced case which refers to the function name
> > and includes:
> > - the pinned tasks case aka group_imbalanced and which is the primary
> > target of this function ( which explains its name)
> > - but also the case where we want to evenly spread tasks on system
> > with spare capacity and removed this imbalance
> >
>
> But can't this also affect other group_types? calculate_imbalance() can
> set
>
> env->migration_type = migrate_task;
>
> for
>
> busiest->group_type > group_fully_busy

yes but we are still in the case of evenly spread tasks on system with
spare capacity. Also, this is already the behavior for such cases.