• Paul E. McKenney's avatar
    rcu: Don't wake rcuc/X kthreads on NOCB CPUs · 630c7ed9
    Paul E. McKenney authored
    Chris Friesen notice that rcuc/X kthreads were consuming CPU even on
    NOCB CPUs.  This makes no sense because the only purpose or these
    kthreads is to invoke normal (non-offloaded) callbacks, of which there
    will never be any on NOCB CPUs.  This problem was due to a bug in
    cpu_has_callbacks_ready_to_invoke(), which should have been checking
    ->nxttail[RCU_NEXT_TAIL] for NULL, but which was instead (incorrectly)
    checking ->nxttail[RCU_DONE_TAIL].  Because ->nxttail[RCU_DONE_TAIL] is
    never NULL, the only effect is to cause the rcuc/X kthread to execute
    when it should not do so.
    
    This commit therefore checks ->nxttail[RCU_NEXT_TAIL], which is NULL
    for NOCB CPUs.
    Reported-by: default avatarChris Friesen <chris.friesen@windriver.com>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
    630c7ed9
tree.c 131 KB