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

From: Valentin Schneider
Date: Thu Jan 07 2021 - 12:41:23 EST


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