• Paul E. McKenney's avatar
    rcu: Decrease memory-barrier usage based on semi-formal proof · 23b5c8fa
    Paul E. McKenney authored
    (Note: this was reverted, and is now being re-applied in pieces, with
    this being the fifth and final piece.  See below for the reason that
    it is now felt to be safe to re-apply this.)
    
    Commit d09b62df fixed grace-period synchronization, but left some smp_mb()
    invocations in rcu_process_callbacks() that are no longer needed, but
    sheer paranoia prevented them from being removed.  This commit removes
    them and provides a proof of correctness in their absence.  It also adds
    a memory barrier to rcu_report_qs_rsp() immediately before the update to
    rsp->completed in order to handle the theoretical possibility that the
    compiler or CPU might move massive quantities of code into a lock-based
    critical section.  This also proves that the sheer paranoia was not
    entirely unjustified, at least from a theoretical point of view.
    
    In addition, the old dyntick-idle synchronization depended on the fact
    that grace periods were many milliseconds in duration, so that i...
    23b5c8fa
rcutree_trace.c 13.7 KB