]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - kernel/sched/fair.c
sched/fair: Correct unit of load_above_capacity
[linux.git] / kernel / sched / fair.c
index 23381056b4b546dd2bff42734a074253b17f8697..218f8e83db731e4afe4d4aaf7d7919a588087a12 100644 (file)
@@ -7067,9 +7067,11 @@ static inline void calculate_imbalance(struct lb_env *env, struct sd_lb_stats *s
        if (busiest->group_type == group_overloaded &&
            local->group_type   == group_overloaded) {
                load_above_capacity = busiest->sum_nr_running * SCHED_CAPACITY_SCALE;
-               if (load_above_capacity > busiest->group_capacity)
+               if (load_above_capacity > busiest->group_capacity) {
                        load_above_capacity -= busiest->group_capacity;
-               else
+                       load_above_capacity *= NICE_0_LOAD;
+                       load_above_capacity /= busiest->group_capacity;
+               } else
                        load_above_capacity = ~0UL;
        }