Re: [PATCH 1/2] sched: fix and clean up calculate_imbalance

Peter Zijlstra
2014-07-29T14:59:13Z

On Tue, Jul 29, 2014 at 11:04:50AM +0200, Vincent Guittot wrote:
> > In situations where all the domains are overloaded, or where only the
> > busiest domain is overloaded, that code is also superfluous, since
> > the normal env->imbalance calculation will figure out how much to move.
> > Remove the load_above_capacity calculation.
>
> IMHO, we should not remove that part which is used by prefer_sibling
>
> Originally, we had 2 type of busiest group: overloaded or imbalanced.
> You add a new one which has only a avg_load higher than other so you
> should handle this new case and keep the other ones unchanged

Right, so we want that code for overloaded -> overloaded migrations such
as not to cause idle cpus in an attempt to balance things. Idle cpus are
worse than imbalance.

But in case of overloaded/imb -> !overloaded migrations we can allow it,
and in fact want to allow it in order to balance idle cpus.