• Linus Torvalds's avatar
    Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 226da0db
    Linus Torvalds authored
    Pull RCU changes from Ingo Molnar:
     "This is the v3.5 RCU tree from Paul E.  McKenney:
    
     1) A set of improvements and fixes to the RCU_FAST_NO_HZ feature (with
        more on the way for 3.6).  Posted to LKML:
           https://lkml.org/lkml/2012/4/23/324 (commits 1-3 and 5),
           https://lkml.org/lkml/2012/4/16/611 (commit 4),
           https://lkml.org/lkml/2012/4/30/390 (commit 6), and
           https://lkml.org/lkml/2012/5/4/410 (commit 7, combined with
           the other commits for the convenience of the tester).
    
     2) Changes to make rcu_barrier() avoid disrupting execution of CPUs
        that have no RCU callbacks.  Posted to LKML:
           https://lkml.org/lkml/2012/4/23/322.
    
     3) A couple of commits that improve the efficiency of the interaction
        between preemptible RCU and the scheduler, these two being all that
        survived an abortive attempt to allow preemptible RCU's
        __rcu_read_lock() to be inlined.  The full set was posted to LKML at
        https://lkml.org/lkml/2012/4/14/143, and the first and third patches
        of that set remain.
    
     4) Lai Jiangshan's algorithmic implementation of SRCU, which includes
        call_srcu() and srcu_barrier().  A major feature of this new
        implementation is that synchronize_srcu() no longer disturbs the
        execution of other CPUs.  This work is based on earlier
        implementations by Peter Zijlstra and Paul E.  McKenney.  Posted to
        LKML: https://lkml.org/lkml/2012/2/22/82.
    
     5) A number of miscellaneous bug fixes and improvements which were
        posted to LKML at: https://lkml.org/lkml/2012/4/23/353 with
        subsequent updates posted to LKML."
    
    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
      rcu: Make rcu_barrier() less disruptive
      rcu: Explicitly initialize RCU_FAST_NO_HZ per-CPU variables
      rcu: Make RCU_FAST_NO_HZ handle timer migration
      rcu: Update RCU maintainership
      rcu: Make exit_rcu() more precise and consolidate
      rcu: Move PREEMPT_RCU preemption to switch_to() invocation
      rcu: Ensure that RCU_FAST_NO_HZ timers expire on correct CPU
      rcu: Add rcutorture test for call_srcu()
      rcu: Implement per-domain single-threaded call_srcu() state machine
      rcu: Use single value to handle expedited SRCU grace periods
      rcu: Improve srcu_readers_active_idx()'s cache locality
      rcu: Remove unused srcu_barrier()
      rcu: Implement a variant of Peter's SRCU algorithm
      rcu: Improve SRCU's wait_idx() comments
      rcu: Flip ->completed only once per SRCU grace period
      rcu: Increment upper bit only for srcu_read_lock()
      rcu: Remove fast check path from __synchronize_srcu()
      rcu: Direct algorithmic SRCU implementation
      rcu: Introduce rcutorture testing for rcu_barrier()
      timer: Fix mod_timer_pinned() header comment
      ...
    226da0db
core.c 195 KB