]> git.baikalelectronics.ru Git - kernel.git/commit
sched: fix nohz load balancer on cpu offline
authorSuresh Siddha <suresh.b.siddha@intel.com>
Wed, 4 Feb 2009 19:59:44 +0000 (11:59 -0800)
committerIngo Molnar <mingo@elte.hu>
Wed, 4 Feb 2009 21:31:19 +0000 (22:31 +0100)
commitfefd167c95ed0d17eb9ec48b0f35edd70f60a65b
tree2fbf152e6bb6377a16a1fb0d1aa503d19e0c0f63
parent94e14cca112663ee7f98f8ce082edfe356cdcc3c
sched: fix nohz load balancer on cpu offline

Christian Borntraeger reports:

> After a logical cpu offline, even on a complete idle system, there
> is one cpu with full ticks. It turns out that nohz.cpu_mask has the
> the offlined cpu still set.
>
> In select_nohz_load_balancer() we check if the system is completely
> idle to turn of load balancing. We compare cpu_online_map with
> nohz.cpu_mask.  Since cpu_online_map is updated on cpu unplug,
> but nohz.cpu_mask is not, the check fails and the scheduler believes
> that we need an "idle load balancer" even on a fully idle system.
> Since the ilb cpu does not deactivate the timer tick this breaks NOHZ.

Fix the select_nohz_load_balancer() to not set the nohz.cpu_mask
while a cpu is going offline.

Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c