Re: [PATCH v2] sched/fair: fix imbalance due to CPU affinity

From: Vincent Guittot
Date: Tue Jul 02 2019 - 06:00:23 EST


On Tue, 2 Jul 2019 at 11:34, Valentin Schneider
<valentin.schneider@xxxxxxx> wrote:
>
> On 01/07/2019 16:47, Vincent Guittot wrote:
> > The load_balance() has a dedicated mecanism to detect when an imbalance
> > is due to CPU affinity and must be handled at parent level. In this case,
> > the imbalance field of the parent's sched_group is set.
> >
> > The description of sg_imbalanced() gives a typical example of two groups
> > of 4 CPUs each and 4 tasks each with a cpumask covering 1 CPU of the first
> > group and 3 CPUs of the second group. Something like:
> >
> > { 0 1 2 3 } { 4 5 6 7 }
> > * * * *
> >
> > But the load_balance fails to fix this UC on my octo cores system
> > made of 2 clusters of quad cores.
> >
> > Whereas the load_balance is able to detect that the imbalanced is due to
> > CPU affinity, it fails to fix it because the imbalance field is cleared
> > before letting parent level a chance to run. In fact, when the imbalance is
> > detected, the load_balance reruns without the CPU with pinned tasks. But
> > there is no other running tasks in the situation described above and
> > everything looks balanced this time so the imbalance field is immediately
> > cleared.
> >
> > The imbalance field should not be cleared if there is no other task to move
> > when the imbalance is detected.
> >
> > Signed-off-by: Vincent Guittot <vincent.guittot@xxxxxxxxxx>
>
> Does that want a
>
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: afdeee0510db ("sched: Fix imbalance flag reset")

I was not sure that this has been introduced by this patch or
following changes. I haven't been able to test it on such old kernel
with my platform

>
> ?
>