Re: [GIT PULL rcu/next] RCU commits for 4.12
From: Ingo Molnar
Date: Sun Apr 23 2017 - 05:14:15 EST
* Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:
> Hello, Ingo,
>
> This pull request contains the following changes:
>
> 1. Documentation updates.
>
> http://lkml.kernel.org/r/20170412163956.GA15691@xxxxxxxxxxxxxxxxxx
>
> 2. Miscellaneous fixes.
>
> http://lkml.kernel.org/r/20170417232714.GA19013@xxxxxxxxxxxxxxxxxx
>
> 3. Parallelize SRCU callback handling (plus overlapping patches).
>
> http://lkml.kernel.org/r/20170419165805.GB10874@xxxxxxxxxxxxxxxxxx
>
> http://lkml.kernel.org/r/87zifatu3a.fsf@xxxxxxxxxxxxxxxxxxxxxxxx
>
> All of these changes have been subjected to 0day Test Robot and -next
> testing, and are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git for-mingo
>
> for you to fetch changes up to f2094107ac82bf867184efd77cee30b6a98e2e20:
>
> Merge branches 'doc.2017.04.12a', 'fixes.2017.04.19a' and 'srcu.2017.04.21a' into HEAD (2017-04-21 06:00:13 -0700)
>
> ----------------------------------------------------------------
> Dmitry Vyukov (1):
> rcu: Fix warning in rcu_seq_end()
>
> Michael S. Tsirkin (1):
> hlist_add_tail_rcu disable sparse warning
>
> Michalis Kokologiannakis (1):
> doc: Update the comparisons rule in rcu_dereference.txt
>
> Nicholas Mc Guire (2):
> rcu: Use bool value directly
> rcu: Use true/false in assignment to bool
>
> Paul E. McKenney (56):
> doc: Synchronous RCU grace periods are now legal throughout boot
> doc: Add mid-boot operation to expedited grace periods
> doc: Update stallwarn.txt to make causes more prominent
> doc: Update RCU data-structure documentation for rcu_segcblist
> doc: Update requirements based on recent changes
> doc: Update rcu_assign_pointer() definition in whatisRCU.txt
> doc: Emphasize that "toy" RCU requires recursive rwlock
> rcu: Maintain special bits at bottom of ->dynticks counter
> rcu: Make arch select smp_mb__after_unlock_lock() strength
> srcu: Consolidate batch checking into rcu_all_batches_empty()
> srcu: Check for tardy grace-period activity in cleanup_srcu_struct()
> rcu: Semicolon inside RCU_TRACE() for rcu.h
> rcu: Semicolon inside RCU_TRACE() for Tiny RCU
> rcu: Semicolon inside RCU_TRACE() for tree.c
> rcu: Pull rcu_sched_qs_mask into rcu_dynticks structure
> rcu: Pull rcu_qs_ctr into rcu_dynticks structure
> rcu: Eliminate flavor scan in rcu_momentary_dyntick_idle()
> rcu: Place guard on rcu_all_qs() and rcu_note_context_switch() actions
> rcu: Default RCU_FANOUT_LEAF to 16 unless explicitly changed
> srcu: Abstract multi-tail callback list handling
> srcu: Allow SRCU to access rcu_scheduler_active
> srcu: Allow early boot use of synchronize_srcu()
> rcu: Add single-element dequeue functions to rcu_segcblist
> srcu: Move rcu_seq_start() and friends to rcu.h
> rcu: Expedited wakeups need to be fully ordered
> srcu: Push srcu_advance_batches() fastpath into common case
> srcu: Move to state-based grace-period sequencing
> srcu: Add grace-period sequence numbers
> srcu: Use rcu_segcblist to track SRCU callbacks
> srcu: Move combining-tree definitions for SRCU's benefit
> srcu: Move rcu_init_levelspread() to rcu_tree_node.h
> rcu: Remove redundant levelcnt[] array from rcu_init_one()
> srcu: Move rcu_node traversal macros to rcu.h
> srcu: Make num_rcu_lvl[] array be external
> srcu: Fix bogus try_check_zero() comment
> srcu: Improve rcu_seq grace-period-counter abstraction
> srcu: Allow a second bit in rcu_seq for SRCU state
> srcu: Merge ->srcu_state into ->srcu_gp_seq
> srcu: Crude control of expedited grace periods
> mm: Use static initialization for "srcu"
> srcu: Create a tiny SRCU
> srcutorture: Print Tiny SRCU reader statistics
> srcu: Introduce CLASSIC_SRCU Kconfig option
> mm: Rename SLAB_DESTROY_BY_RCU to SLAB_TYPESAFE_BY_RCU
> lockdep: Use "WARNING" tag on lockdep splats
> types: Update obsolete callback_head comment
> rcu: Make RCU_FANOUT_LEAF help text more explicit about skew_tick
> rcu: Remove obsolete comment from rcu_future_gp_cleanup() header
> rcu: Improve comments for hotplug/suspend/hibernate functions
> torture: Use correct path for Kconfig fragment for duplicates
> rcu: Fix typo in PER_RCU_NODE_PERIOD header comment
> kvm: Move srcu_struct fields to end of struct kvm
> srcu: Parallelize callback handling
> srcu: Expedite srcu_schedule_cbs_snp() callback invocation
> rcu: Make non-preemptive schedule be Tasks RCU quiescent state
> Merge branches 'doc.2017.04.12a', 'fixes.2017.04.19a' and 'srcu.2017.04.21a' into HEAD
>
> pierre Kuo (1):
> doc: Update control-dependencies section of memory-barriers.txt
>
> Documentation/RCU/00-INDEX | 2 +-
> .../Design/Data-Structures/Data-Structures.html | 233 +++--
> .../RCU/Design/Data-Structures/nxtlist.svg | 34 +-
> .../Expedited-Grace-Periods.html | 47 +-
> .../RCU/Design/Requirements/Requirements.html | 195 ++--
> Documentation/RCU/rcu_dereference.txt | 9 +
> Documentation/RCU/rculist_nulls.txt | 6 +-
> Documentation/RCU/stallwarn.txt | 190 ++--
> Documentation/RCU/whatisRCU.txt | 32 +-
> Documentation/memory-barriers.txt | 2 +-
> arch/Kconfig | 3 +
> arch/powerpc/Kconfig | 1 +
> drivers/gpu/drm/i915/i915_gem.c | 2 +-
> drivers/gpu/drm/i915/i915_gem_request.h | 2 +-
> drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 2 +-
> fs/jbd2/journal.c | 2 +-
> fs/signalfd.c | 2 +-
> include/linux/dma-fence.h | 4 +-
> include/linux/kvm_host.h | 4 +-
> include/linux/rcu_node_tree.h | 99 ++
> include/linux/rcu_segcblist.h | 712 +++++++++++++++
> include/linux/rculist.h | 3 +-
> include/linux/rcupdate.h | 17 +-
> include/linux/rcutiny.h | 24 +-
> include/linux/rcutree.h | 5 +-
> include/linux/slab.h | 6 +-
> include/linux/srcu.h | 84 +-
> include/linux/srcuclassic.h | 101 +++
> include/linux/srcutiny.h | 81 ++
> include/linux/srcutree.h | 139 +++
> include/linux/types.h | 2 +-
> include/net/sock.h | 2 +-
> init/Kconfig | 39 +-
> kernel/fork.c | 4 +-
> kernel/locking/lockdep.c | 86 +-
> kernel/locking/rtmutex-debug.c | 9 +-
> kernel/rcu/Makefile | 4 +-
> kernel/rcu/rcu.h | 153 +++-
> kernel/rcu/rcutorture.c | 35 +-
> kernel/rcu/srcu.c | 12 +-
> kernel/rcu/srcutiny.c | 215 +++++
> kernel/rcu/srcutree.c | 996 +++++++++++++++++++++
> kernel/rcu/tiny.c | 20 +-
> kernel/rcu/tiny_plugin.h | 13 +-
> kernel/rcu/tree.c | 696 ++++++--------
> kernel/rcu/tree.h | 164 +---
> kernel/rcu/tree_exp.h | 25 +-
> kernel/rcu/tree_plugin.h | 64 +-
> kernel/rcu/tree_trace.c | 26 +-
> kernel/rcu/update.c | 53 +-
> kernel/sched/core.c | 2 +-
> kernel/signal.c | 2 +-
> mm/kasan/kasan.c | 6 +-
> mm/kmemcheck.c | 2 +-
> mm/mmu_notifier.c | 14 +-
> mm/rmap.c | 4 +-
> mm/slab.c | 6 +-
> mm/slab.h | 4 +-
> mm/slab_common.c | 6 +-
> mm/slob.c | 6 +-
> mm/slub.c | 12 +-
> net/dccp/ipv4.c | 2 +-
> net/dccp/ipv6.c | 2 +-
> net/ipv4/tcp_ipv4.c | 2 +-
> net/ipv6/tcp_ipv6.c | 2 +-
> net/llc/af_llc.c | 2 +-
> net/llc/llc_conn.c | 4 +-
> net/llc/llc_sap.c | 2 +-
> net/netfilter/nf_conntrack_core.c | 8 +-
> net/smc/af_smc.c | 2 +-
> .../selftests/rcutorture/bin/kvm-test-1-run.sh | 2 +-
> 71 files changed, 3637 insertions(+), 1116 deletions(-)
> create mode 100644 include/linux/rcu_node_tree.h
> create mode 100644 include/linux/rcu_segcblist.h
> create mode 100644 include/linux/srcuclassic.h
> create mode 100644 include/linux/srcutiny.h
> create mode 100644 include/linux/srcutree.h
> create mode 100644 kernel/rcu/srcutiny.c
> create mode 100644 kernel/rcu/srcutree.c
Pulled into tip:core/rcu, thanks a lot Paul!
Ingo