Messages in this thread Patch in this message | | | From | Alex Shi <> | Subject | [patch v8 9/9] sched/tg: remove blocked_load_avg in balance | Date | Fri, 7 Jun 2013 15:20:52 +0800 |
| |
blocked_load_avg sometime is too heavy and far bigger than runnable load avg, that make balance make wrong decision. So remove it.
Changlong tested this patch, found ltp cgroup stress testing get better performance: https://lkml.org/lkml/2013/5/23/65 --- 3.10-rc1 patch1-7 patch1-8 duration=764 duration=754 duration=750 duration=764 duration=754 duration=751 duration=763 duration=755 duration=751
duration means the seconds of testing cost. ---
And Jason also tested this patchset on his 8 sockets machine: https://lkml.org/lkml/2013/5/29/673 --- When using a 3.10-rc2 tip kernel with patches 1-8, there was about a 40% improvement in performance of the workload compared to when using the vanilla 3.10-rc2 tip kernel with no patches. When using a 3.10-rc2 tip kernel with just patches 1-7, the performance improvement of the workload over the vanilla 3.10-rc2 tip kernel was about 25%. ---
Signed-off-by: Alex Shi <alex.shi@intel.com> Tested-by: Changlong Xie <changlongx.xie@intel.com> Tested-by: Jason Low <jason.low2@hp.com> --- kernel/sched/fair.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 3aa1dc0..985d47e 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1358,7 +1358,7 @@ static inline void __update_cfs_rq_tg_load_contrib(struct cfs_rq *cfs_rq, struct task_group *tg = cfs_rq->tg; s64 tg_contrib; - tg_contrib = cfs_rq->runnable_load_avg + cfs_rq->blocked_load_avg; + tg_contrib = cfs_rq->runnable_load_avg; tg_contrib -= cfs_rq->tg_load_contrib; if (force_update || abs64(tg_contrib) > cfs_rq->tg_load_contrib / 8) { -- 1.7.12
| |