@@ -6998,9 +6998,10 @@ static inline void calculate_imbalance(struct lb_env *env, struct sd_lb_stats *s
}
/*
- * In the presence of smp nice balancing, certain scenarios can have
- * max load less than avg load(as we skip the groups at or below
- * its cpu_capacity, while calculating max_load..)
+ * Avg load of busiest sg can be less and avg load of local sg can
+ * be greater than avg load across all sgs of sd because avg load
+ * factors in sg capacity and sgs with smaller group_type are
+ * skipped when updating the busiest sg.
*/
if (busiest->avg_load <= sds->avg_load ||
local->avg_load >= sds->avg_load) {
The comment survived from commit 2dd73a4f09be ("[PATCH] sched: implement smpnice") in which the selection of busiest and busiest->avg_load (max_load) was based on if(avg_load > max_load && sum_nr_running > group->cpu_power / SCHED_LOAD_SCALE). Commit b18855500fc4 ("sched/balancing: Fix 'local->avg_load > sds->avg_load' case in calculate_imbalance()") added the second operand of the or operator. Update this comment accordingly and also use the current variable names. Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com> --- kernel/sched/fair.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) -- 1.9.1