• Suresh Siddha's avatar
    sched: fix nohz load balancer on cpu offline · 483b4ee6
    Suresh Siddha authored
    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: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
    Tested-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    483b4ee6
sched.c 232 KB