Skip to content
  • Paul E. McKenney's avatar
    doc: CPU-hotplug notifiers cannot invoke synchronize_srcu() or srcu_barrier() · f38d4115
    Paul E. McKenney authored
    
    
    SRCU's synchronize_srcu() may not be invoked from CPU-hotplug notifiers,
    due to the fact that SRCU grace periods make use of timers and the
    possibility of timers being temporarily stranded on the outgoing CPU.
    This stranding of timers means that timers posted to the outgoing CPU
    will not fire until late in the CPU-hotplug process.  The problem is
    that if a notifier is waiting on an SRCU grace period, that grace period
    is waiting on a timer, and that timer is stranded on the outgoing CPU,
    then the notifier will never be awakened, in other words, deadlock has
    occurred.  This same situation of course also prohibits srcu_barrier()
    from being invoked from CPU-hotplug notifiers.
    
    This commit therefore updates the requirements to include this restriction.
    
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
    f38d4115