• Paul E. McKenney's avatar
    rcu: Suppress false-positive offline-CPU lockdep-RCU splat · 5554788e
    Paul E. McKenney authored
    The rcu_lockdep_current_cpu_online() function currently checks only the
    RCU-sched data structures to determine whether or not RCU believes that a
    given CPU is offline.  Unfortunately, there are multiple flavors of RCU,
    which means that there is a short window of time during which the various
    flavors disagree as to whether or not a given CPU is offline.  This can
    result in false-positive lockdep-RCU splats in which some other flavor
    of RCU tries to do something based on its view that the CPU is online,
    only to get hit with a lockdep-RCU splat because RCU-sched instead
    believes that the CPU is offline.
    
    This commit therefore changes rcu_lockdep_current_cpu_online() to scan
    all RCU flavors and to consider a given CPU to be online if any of the
    RCU flavors believe it to be online, thus preventing these false-positive
    splats.
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    5554788e
tree.c 129 KB