[PATCH 0/2] load balancing fixes

riel
2014-07-28T18:16:50Z

Currently update_sd_pick_busiest only identifies the busiest sd
that is either overloaded, or has a group imbalance. When no
sd is imbalanced or overloaded, the load balancer fails to find
the busiest domain.

This breaks load balancing between domains that are not overloaded,
in the !SD_ASYM_PACKING case. This patch makes update_sd_pick_busiest
return true when the busiest sd yet is encountered.

Groups are ranked in the order overloaded > imbalanced > other,
with higher ranked groups getting priority even when their load
is lower. This is necessary due to the possibility of unequal
capacities and cpumasks between domains within a sched group.

Calculate_imbalance knows how to deal with the situation where
a less loaded group is picked, but will only do so when
sgs->group_imb is set. This handling needs to be extended to
all situations where the busiest load is below the average load.