Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull scheduler fixes from Ingo Molnar:
"Three small fixes"

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched/balancing: Fix cfs_rq->task_h_load calculation
sched/balancing: Fix 'local->avg_load > busiest->avg_load' case in fix_small_imbalance()
sched/balancing: Fix 'local->avg_load > sds->avg_load' case in calculate_imbalance()

+5 -4
+5 -4
kernel/sched/fair.c
··· 4242 4242 } 4243 4243 4244 4244 if (!se) { 4245 - cfs_rq->h_load = rq->avg.load_avg_contrib; 4245 + cfs_rq->h_load = cfs_rq->runnable_load_avg; 4246 4246 cfs_rq->last_h_load_update = now; 4247 4247 } 4248 4248 ··· 4823 4823 (busiest->load_per_task * SCHED_POWER_SCALE) / 4824 4824 busiest->group_power; 4825 4825 4826 - if (busiest->avg_load - local->avg_load + scaled_busy_load_per_task >= 4827 - (scaled_busy_load_per_task * imbn)) { 4826 + if (busiest->avg_load + scaled_busy_load_per_task >= 4827 + local->avg_load + (scaled_busy_load_per_task * imbn)) { 4828 4828 env->imbalance = busiest->load_per_task; 4829 4829 return; 4830 4830 } ··· 4896 4896 * max load less than avg load(as we skip the groups at or below 4897 4897 * its cpu_power, while calculating max_load..) 4898 4898 */ 4899 - if (busiest->avg_load < sds->avg_load) { 4899 + if (busiest->avg_load <= sds->avg_load || 4900 + local->avg_load >= sds->avg_load) { 4900 4901 env->imbalance = 0; 4901 4902 return fix_small_imbalance(env, sds); 4902 4903 }