{"push_id":957664682,"size":1,"distinct_size":1,"ref":"refs/heads/cm-13.0","head":"3cefec432a8f4fa3e5ef2254832944a9dbde6616","before":"2fec3d3c0539c7020225a3645a7d4165ce1287ce","commits":[{"sha":"3cefec432a8f4fa3e5ef2254832944a9dbde6616","author":{"email":"695db642e8bc2a781029b5690bc796db9446cc2f@linux.intel.com","name":"Tim Chen"},"message":"sched/fair: Implement fast idling of CPUs when the system is partially loaded\n\nWhen a system is lightly loaded (i.e. no more than 1 job per cpu),\nattempt to pull job to a cpu before putting it to idle is unnecessary and\ncan be skipped.  This patch adds an indicator so the scheduler can know\nwhen there's no more than 1 active job is on any CPU in the system to\nskip needless job pulls.\n\nOn a 4 socket machine with a request/response kind of workload from\nclients, we saw about 0.13 msec delay when we go through a full load\nbalance to try pull job from all the other cpus.  While 0.1 msec was\nspent on processing the request and generating a response, the 0.13 msec\nload balance overhead was actually more than the actual work being done.\nThis overhead can be skipped much of the time for lightly loaded systems.\n\nWith this patch, we tested with a netperf request/response workload that\nhas the server busy with half the cpus in a 4 socket system.  We found\nthe patch eliminated 75% of the load balance attempts before idling a cpu.\n\nThe overhead of setting/clearing the indicator is low as we already gather\nthe necessary info while we call add_nr_running() and update_sd_lb_stats.()\nWe switch to full load balance load immediately if any cpu got more than\none job on its run queue in add_nr_running.  We'll clear the indicator\nto avoid load balance when we detect no cpu's have more than one job\nwhen we scan the work queues in update_sg_lb_stats().  We are aggressive\nin turning on the load balance and opportunistic in skipping the load\nbalance.\n\nSigned-off-by: Tim Chen <tim.c.chen@linux.intel.com>\nAcked-by: Rik van Riel <riel@redhat.com>\nAcked-by: Jason Low <jason.low2@hp.com>\nCc: \"Paul E.McKenney\" <paulmck@linux.vnet.ibm.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Davidlohr Bueso <davidlohr@hp.com>\nCc: Alex Shi <alex.shi@linaro.org>\nCc: Michel Lespinasse <walken@google.com>\nCc: Peter Hurley <peter@hurleysoftware.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nLink: http://lkml.kernel.org/r/1403551009.2970.613.camel@schen9-DESK\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\n\nConflicts:\n\tkernel/sched/fair.c\n\tkernel/sched/sched.h\n\nConflicts:\n\tkernel/sched/fair.c","distinct":true,"url":"https://api.github.com/repos/Ander-Alvarez/Ultra-Osprey/commits/3cefec432a8f4fa3e5ef2254832944a9dbde6616"}]}