linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 0/9] sched: use runnable load avg in balance
@ 2013-06-07  7:20 Alex Shi
  2013-06-07  7:20 ` [patch v8 1/9] Revert "sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking" Alex Shi
                   ` (11 more replies)
  0 siblings, 12 replies; 73+ messages in thread
From: Alex Shi @ 2013-06-07  7:20 UTC (permalink / raw)
  To: mingo, peterz, tglx, akpm, bp, pjt, namhyung, efault, morten.rasmussen
  Cc: vincent.guittot, preeti, viresh.kumar, linux-kernel, alex.shi,
	mgorman, riel, wangyun, Jason Low, Changlong Xie, sgruszka,
	fweisbec

Peter&Ingo:

v8: add a marco div64_ul and used it in task_h_load()
v7: rebasing on tip/sched/core tree.

I tested on Intel core2, NHM, SNB, IVB, 2 and 4 sockets machines with
benchmark kbuild, aim7, dbench, tbench, hackbench, oltp, and netperf
loopback etc. 

On SNB EP 4 sockets machine, the hackbench increased about 50%, and
result become stable. on other machines, hackbench increased about
2~10%. oltp increased about 30% in NHM EX box. netperf loopback also
increased on SNB EP 4 sockets box. 
No clear changes on other benchmarks.

Michael Wang gotten better performance on pgbench on his box with this
patchset. https://lkml.org/lkml/2013/5/16/82

And Morten tested previous version with better power consumption.
http://comments.gmane.org/gmane.linux.kernel/1463371

Changlong found ltp cgroup stress testing get faster on SNB EP
machine with the last patch.  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.
---

Jason also found java server load benefited on his 8 sockets machine
with last patch. 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%.
---

We also tried to include blocked load avg in balance. but find many
benchmark performance drop a lot! Seems accumulating current
blocked_load_avg into cpu load isn't a good idea. Because:
1, The blocked_load_avg is decayed same as runnable load, sometime is far
bigger than runnable load, that drive tasks to other idle or slight
load cpu, than cause both performance and power issue. But if the
blocked load is decayed too fast, it lose its effect. 
2, Another issue of blocked load is that when waking up task, we can not 
know blocked load proportion of the task on rq. So, the blocked load is
meaningless in wake affine decision.  

According to above problem, we can not figure out a right way now to use 
blocked_load_avg in balance.

Since using runnable load avg in balance brings much benefit on
performance and power. and this patch was reviewed for long time.
So seems it's time to let it be clobbered in some sub tree, like 
tip or linux-next.  Any comments?

Regards
Alex


^ permalink raw reply	[flat|nested] 73+ messages in thread

end of thread, other threads:[~2013-06-21 13:26 UTC | newest]

Thread overview: 73+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-07  7:20 [patch 0/9] sched: use runnable load avg in balance Alex Shi
2013-06-07  7:20 ` [patch v8 1/9] Revert "sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking" Alex Shi
2013-06-07  7:20 ` [patch v8 2/9] sched: move few runnable tg variables into CONFIG_SMP Alex Shi
2013-06-17 12:26   ` Paul Turner
2013-06-17 15:32     ` Alex Shi
2013-06-07  7:20 ` [patch v8 3/9] sched: set initial value of runnable avg for new forked task Alex Shi
2013-06-10  1:51   ` Gu Zheng
2013-06-14 10:02   ` Lei Wen
2013-06-14 13:59     ` Alex Shi
2013-06-15 12:09       ` Lei Wen
2013-06-17  0:33         ` Alex Shi
2013-06-20 10:23         ` Morten Rasmussen
2013-06-21  2:57           ` Lei Wen
2013-06-17  9:20     ` Peter Zijlstra
2013-06-17 12:26       ` Lei Wen
2013-06-17 12:33         ` Peter Zijlstra
2013-06-14 11:09   ` Paul Turner
2013-06-14 14:16     ` Alex Shi
2013-06-17  9:21       ` Peter Zijlstra
2013-06-17  9:39         ` Paul Turner
2013-06-17 13:00           ` Peter Zijlstra
2013-06-17  9:57         ` Alex Shi
2013-06-17 13:07           ` Peter Zijlstra
2013-06-17 13:23             ` Alex Shi
2013-06-07  7:20 ` [patch v8 4/9] sched: fix slept time double counting in enqueue entity Alex Shi
2013-06-17 11:51   ` Paul Turner
2013-06-17 15:41     ` Alex Shi
2013-06-20  1:43       ` Lei Wen
2013-06-20  1:46         ` Alex Shi
2013-06-20  2:46         ` Lei Wen
2013-06-20 14:59           ` Alex Shi
2013-06-21  2:30             ` Lei Wen
2013-06-21  2:39               ` Alex Shi
2013-06-21  2:50                 ` Lei Wen
2013-06-21  8:56                   ` Alex Shi
2013-06-21  9:18                     ` Lei Wen
2013-06-21 11:09                       ` Alex Shi
2013-06-21 13:26                         ` Lei Wen
2013-06-07  7:20 ` [patch v8 5/9] sched: update cpu load after task_tick Alex Shi
2013-06-17 11:54   ` Paul Turner
2013-06-07  7:20 ` [patch v8 6/9] sched: compute runnable load avg in cpu_load and cpu_avg_load_per_task Alex Shi
2013-06-10  1:49   ` Gu Zheng
2013-06-10  2:01     ` Alex Shi
2013-06-10  2:05       ` Gu Zheng
2013-06-17 10:51   ` Paul Turner
2013-06-17 12:17     ` Paul Turner
2013-06-17 13:39       ` Peter Zijlstra
2013-06-17 13:59         ` Alex Shi
2013-06-17 13:57       ` Alex Shi
2013-06-17 23:00         ` Paul Turner
2013-06-18  3:44           ` Alex Shi
2013-06-18  9:44             ` Alex Shi
2013-06-19  8:15               ` Alex Shi
2013-06-20  0:33                 ` Alex Shi
2013-06-17 14:57     ` Alex Shi
2013-06-17 15:21       ` Alex Shi
2013-06-07  7:20 ` [patch v8 7/9] math64: add div64_ul macro Alex Shi
2013-06-07  7:20 ` [patch v8 8/9] sched: consider runnable load average in move_tasks Alex Shi
2013-06-17 10:58   ` Paul Turner
2013-06-17 14:01     ` Alex Shi
2013-06-17 14:15       ` Alex Shi
2013-06-17 13:59   ` Peter Zijlstra
2013-06-17 14:29     ` Alex Shi
2013-06-07  7:20 ` [patch v8 9/9] sched/tg: remove blocked_load_avg in balance Alex Shi
2013-06-17  9:38   ` Peter Zijlstra
2013-06-17 12:20   ` Paul Turner
2013-06-17 14:01     ` Peter Zijlstra
2013-06-19  9:49       ` Alex Shi
2013-06-20  1:33     ` Alex Shi
2013-06-08  2:37 ` [patch 0/9] sched: use runnable load avg " Alex Shi
2013-06-10  1:35 ` Alex Shi
2013-06-10 15:01 ` Peter Zijlstra
2013-06-11  3:30   ` Alex Shi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).