diff options
author | Ken Chen <[email protected]> | 2008-11-18 22:41:57 -0800 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2008-11-19 18:39:37 +0100 |
commit | ec4e0e2fe018992d980910db901637c814575914 (patch) | |
tree | 58f5df8581387afc90774ee2d1923302ae209b3c /net/lapb/lapb_subr.c | |
parent | 3ac3ba0b396fd99550e08034b0e4c27fdf39c252 (diff) |
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 <[email protected]>
Acked-by: Peter Zijlstra <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'net/lapb/lapb_subr.c')
0 files changed, 0 insertions, 0 deletions