• Frederic Weisbecker's avatar
    rcu/nocb: Allow de-offloading rdp leader · 552cac80
    Frederic Weisbecker authored
    The only thing that prevented an rdp leader from being de-offloaded was
    the nocb_bypass_timer that used to lock the nocb_lock of the rdp leader.
    
    If an rdp gets de-offloaded, it will subtlely ignore rcu_nocb_lock()
    calls and do its job in the timer unsafely.  Worse yet:  If it gets
    re-offloaded in the middle of the timer, rcu_nocb_unlock() would try to
    unlock, leaving it imbalanced.
    
    Now that the nocb_bypass_timer doesn't use the nocb_lock anymore,
    de-offloading the rdp leader is now safe.  This commit therefore allows
    the rdp leader to be de-offloaded.
    Reported-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    Cc: Josh Triplett <josh@joshtriplett.org>
    Cc: Lai Jiangshan <jiangshanlai@gmail.com>
    Cc: Joel Fernandes <joel@joelfernandes.org>
    Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
    Cc: Boqun Feng <boqun.feng@gmail.com>
    Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    552cac80
tree_plugin.h 93 KB