|
@@ -4896,7 +4896,8 @@ static inline void calculate_imbalance(struct lb_env *env, struct sd_lb_stats *s
|
|
* max load less than avg load(as we skip the groups at or below
|
|
* max load less than avg load(as we skip the groups at or below
|
|
* its cpu_power, while calculating max_load..)
|
|
* its cpu_power, while calculating max_load..)
|
|
*/
|
|
*/
|
|
- if (busiest->avg_load < sds->avg_load) {
|
|
|
|
|
|
+ if (busiest->avg_load <= sds->avg_load ||
|
|
|
|
+ local->avg_load >= sds->avg_load) {
|
|
env->imbalance = 0;
|
|
env->imbalance = 0;
|
|
return fix_small_imbalance(env, sds);
|
|
return fix_small_imbalance(env, sds);
|
|
}
|
|
}
|