1
0
Files
linux/kernel
Ken Chen ec4e0e2fe0 sched: fix inconsistency when redistribute per-cpu tg->cfs_rq shares
Impact: make load-balancing more consistent

In the update_shares() path leading to tg_shares_up(), the calculation of
per-cpu cfs_rq shares is rather erratic even under moderate task wake up
rate.  The problem is that the per-cpu tg->cfs_rq load weight used in the
sd_rq_weight aggregation and actual redistribution of the cfs_rq->shares
are collected at different time.  Under moderate system load, we've seen
quite a bit of variation on the cfs_rq->shares and ultimately wildly
affects sched_entity's load weight.

This patch caches the result of initial per-cpu load weight when doing the
sum calculation, and then pass it down to update_group_shares_cpu() for
redistributing per-cpu cfs_rq shares.  This allows consistent total cfs_rq
shares across all CPUs. It also simplifies the rounding and zero load
weight check.

Signed-off-by: Ken Chen <kenchen@google.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-11-19 18:39:37 +01:00
..
2008-10-22 07:37:17 +02:00
2008-10-16 11:21:30 -07:00
2008-09-14 16:25:35 +02:00
2008-07-28 14:37:38 +02:00
2008-08-13 12:55:10 +02:00
2008-10-28 11:19:07 +01:00
2008-11-19 09:44:37 +01:00
2008-09-02 19:21:40 -07:00
2008-10-20 08:52:39 -07:00
2008-10-21 15:59:53 +02:00
2008-11-18 15:08:56 +01:00
2008-11-11 11:57:22 +01:00
2008-11-05 10:30:14 +01:00
2008-11-06 08:41:56 +01:00
2008-10-16 11:21:31 -07:00
2008-10-16 11:21:51 -07:00
2008-07-25 10:53:45 -07:00
2008-10-16 11:21:47 -07:00
2008-10-16 11:21:31 -07:00