From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1162031AbdDUQtj (ORCPT ); Fri, 21 Apr 2017 12:49:39 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:45164 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1162007AbdDUQt3 (ORCPT ); Fri, 21 Apr 2017 12:49:29 -0400 Date: Fri, 21 Apr 2017 09:49:23 -0700 From: "Paul E. McKenney" To: mingo@kernel.org Cc: linux-kernel@vger.kernel.org, mixaskok@gmail.com, vichy.kuo@gmail.com, mst@redhat.com, der.herr@hofr.at, dvyukov@google.com, pbonzini@redhat.com, michaele@au1.ibm.com, sfr@canb.auug.org.au, rostedt@goodmis.org, corbet@lwn.net Subject: [GIT PULL rcu/next] RCU commits for 4.12 Reply-To: paulmck@linux.vnet.ibm.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-GCONF: 00 x-cbid: 17042116-0024-0000-0000-000002515ACE X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00006949; HX=3.00000240; KW=3.00000007; PH=3.00000004; SC=3.00000208; SDB=6.00850548; UDB=6.00420158; IPR=6.00629269; BA=6.00005306; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00015126; XFM=3.00000013; UTC=2017-04-21 16:49:26 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17042116-0025-0000-0000-0000438E3758 Message-Id: <20170421164923.GA28272@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-04-21_13:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1704210300 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, Ingo, This pull request contains the following changes: 1. Documentation updates. http://lkml.kernel.org/r/20170412163956.GA15691@linux.vnet.ibm.com 2. Miscellaneous fixes. http://lkml.kernel.org/r/20170417232714.GA19013@linux.vnet.ibm.com 3. Parallelize SRCU callback handling (plus overlapping patches). http://lkml.kernel.org/r/20170419165805.GB10874@linux.vnet.ibm.com http://lkml.kernel.org/r/87zifatu3a.fsf@concordia.ellerman.id.au 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