sched: Request for idle balance during nohz idle load balance
authorSuresh Siddha <suresh.b.siddha@intel.com>
Mon, 3 Oct 2011 22:09:01 +0000 (15:09 -0700)
committerIngo Molnar <mingo@elte.hu>
Thu, 6 Oct 2011 10:46:27 +0000 (12:46 +0200)
commit6eb57e0d65ebd99a71d435dc96d83e725752eef8
tree0349de8e8478a9b39dd1c75d347c36b9ebbef24c
parentca38062e57e97791c2f62e3dbd06caf3ebb5721c
sched: Request for idle balance during nohz idle load balance

rq's idle_at_tick is set to idle/busy during the timer tick
depending on the cpu was idle or not. This will be used later in the load
balance that will be done in the softirq context (which is a process
context in -RT kernels).

For nohz kernels, for the cpu doing nohz idle load balance on behalf of
all the idle cpu's, its rq->idle_at_tick might have a stale value (which is
recorded when it got the timer tick presumably when it is busy).

As the nohz idle load balancing is also being done at the same place
as the regular load balancing, nohz idle load balancing was bailing out
when it sees rq's idle_at_tick not set.

Thus leading to poor system utilization.

Rename rq's idle_at_tick to idle_balance and set it when someone requests
for nohz idle balance on an idle cpu.

Reported-by: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20111003220934.892350549@sbsiddha-desk.sc.intel.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c
kernel/sched_fair.c