[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190701190358.GW3419@hirez.programming.kicks-ass.net>
Date: Mon, 1 Jul 2019 21:03:58 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Vincent Guittot <vincent.guittot@...aro.org>
Cc: linux-kernel@...r.kernel.org, mingo@...hat.com
Subject: Re: [PATCH v2] sched/fair: fix imbalance due to CPU affinity
On Mon, Jul 01, 2019 at 05:47:02PM +0200, 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@...aro.org>
Thanks!
Powered by blists - more mailing lists