Re: [PATCH] sched/fair: improve spreading of utilization

From: Valentin Schneider
Date: Fri Mar 13 2020 - 08:42:52 EST



On Fri, Mar 13 2020, Valentin Schneider wrote:
> On Fri, Mar 13 2020, Vincent Guittot wrote:
>>> > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
>>> > index 3c8a379c357e..97a0307312d9 100644
>>> > --- a/kernel/sched/fair.c
>>> > +++ b/kernel/sched/fair.c
>>> > @@ -9025,6 +9025,14 @@ static struct rq *find_busiest_queue(struct lb_env *env,
>>> > case migrate_util:
>>> > util = cpu_util(cpu_of(rq));
>>> >
>>> > + /*
>>> > + * Don't try to pull utilization from a CPU with one
>>> > + * running task. Whatever its utilization, we will fail
>>> > + * detach the task.
>>> > + */
>>> > + if (nr_running <= 1)
>>> > + continue;
>>> > +
>>>
>>> Doesn't this break misfit? If the busiest group is group_misfit_task, it
>>> is totally valid for the runqueues to have a single running task -
>>> that's the CPU-bound task we want to upmigrate.
>>
>> group_misfit_task has its dedicated migrate_misfit case
>>
>
> Doh, yes, sorry. I think my rambling on ASYM_PACKING / reduced capacity
> migration is still relevant, though.
>

And with more coffee that's another Doh, ASYM_PACKING would end up as
migrate_task. So this only affects the reduced capacity migration, which
might be hard to notice in benchmarks.