Re: [GIT PULL rcu/next] RCU commits for 4.15
From: Ingo Molnar
Date: Wed Jan 03 2018 - 08:17:29 EST
* Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:
> Hello, Ingo, and Happy New Year!
Happy new year to you too Paul!
> This pull request contains the following changes:
>
> 1. Updates to use cond_resched() instead of cond_resched_rcu_qs()
> where feasible (currently everywhere except in kernel/rcu and
> in kernel/torture.c). Also a couple of fixes to avoid sending
> IPIs to offline CPUs.
>
> http://lkml.kernel.org/r/20171201192122.GA19301@xxxxxxxxxxxxxxxxxx
>
> 2. Updates to simplify RCU's dyntick-idle handling.
>
> http://lkml.kernel.org/r/20171201193625.GA20681@xxxxxxxxxxxxxxxxxx
>
> 3. Miscellaneous fixes.
>
> http://lkml.kernel.org/r/20171201194139.GA22722@xxxxxxxxxxxxxxxxxx
>
> 4. Updates to remove almost all uses of smp_read_barrier_depends()
> and read_barrier_depends().
>
> http://lkml.kernel.org/r/20171201195053.GA23494@xxxxxxxxxxxxxxxxxx
>
> 5. Torture-test updates.
>
> http://lkml.kernel.org/r/20171201200819.GA25519@xxxxxxxxxxxxxxxxxx
>
> 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 1dfa55e01987288d847220b8c027204871440ed1:
>
> Merge branches 'cond_resched.2017.12.04a', 'dyntick.2017.11.28a', 'fixes.2017.12.11a', 'srbd.2017.12.05a' and 'torture.2017.12.11a' into HEAD (2017-12-11 09:21:58 -0800)
>
> ----------------------------------------------------------------
> Davidlohr Bueso (2):
> locking/locktorture: Fix rwsem reader_delay
> locking/locktorture: Fix num reader/writer corner cases
>
> Paul E. McKenney (59):
> rcu: Avoid ->dynticks_nmi_nesting store tearing
> rcu: Reduce dyntick-idle state space
> rcu: Move rcu_nmi_{enter,exit}() to prepare for consolidation
> rcu: Clamp ->dynticks_nmi_nesting at eqs entry/exit
> rcu: Define rcu_irq_{enter,exit}() in terms of rcu_nmi_{enter,exit}()
> rcu: Make ->dynticks_nesting be a simple counter
> rcu: Eliminate rcu_irq_enter_disabled()
> rcu: Add tracing to irq/NMI dyntick-idle transitions
> rcu: Shrink ->dynticks_{nmi_,}nesting from long long to long
> rcu: Add ->dynticks field to rcu_dyntick trace event
> rcu: Stop duplicating lockdep checks in RCU's idle-entry code
> rcu: Avoid ->dynticks_nesting store tearing
> rcu: Fold rcu_eqs_enter_common() into rcu_eqs_enter()
> rcu: Fold rcu_eqs_exit_common() into rcu_eqs_exit()
> rcu: Simplify rcu_eqs_{enter,exit}() non-idle task debug code
> doc: Update dyntick-idle design documentation for NMI/irq consolidation
> srcu: Prohibit call_srcu() use under raw spinlocks
> torture: Suppress CPU stall warnings during shutdown ftrace dump
> torture: Prepare scripting for shift from %p to %pK
> sched: Stop resched_cpu() from sending IPIs to offline CPUs
> sched: Stop switched_to_rt() from sending IPIs to offline CPUs
> netfilter: Eliminate cond_resched_rcu_qs() in favor of cond_resched()
> mm: Eliminate cond_resched_rcu_qs() in favor of cond_resched()
> workqueue: Eliminate cond_resched_rcu_qs() in favor of cond_resched()
> trace: Eliminate cond_resched_rcu_qs() in favor of cond_resched()
> softirq: Eliminate cond_resched_rcu_qs() in favor of cond_resched()
> fs: Eliminate cond_resched_rcu_qs() in favor of cond_resched()
> doc: Eliminate cond_resched_rcu_qs() in favor of cond_resched()
> rcu: Account for rcu_all_qs() in cond_resched()
> doc: READ_ONCE() now implies smp_barrier_depends()
> mn10300: READ_ONCE() now implies smp_read_barrier_depends()
> drivers/net/ethernet/qlogic/qed: Fix __qed_spq_block() ordering
> fs/dcache: Use release-acquire for name/length update
> percpu: READ_ONCE() now implies smp_read_barrier_depends()
> rcu: Adjust read-side accessor comments for READ_ONCE()
> rtnetlink: Update now-misleading smp_read_barrier_depends() comment
> seqlock: Remove now-redundant smp_read_barrier_depends()
> uprobes: Remove now-redundant smp_read_barrier_depends()
> locking: Remove smp_read_barrier_depends() from queued_spin_lock_slowpath()
> tracepoint: Remove smp_read_barrier_depends() from comment
> lib/assoc_array: Remove smp_read_barrier_depends()
> mm/ksm: Remove now-redundant smp_read_barrier_depends()
> netfilter: Remove now-redundant smp_read_barrier_depends()
> keyring: Remove now-redundant smp_read_barrier_depends()
> drivers/infiniband: Remove now-redundant smp_read_barrier_depends()
> drivers/dma/ioat: Remove now-redundant smp_read_barrier_depends()
> doc: De-emphasize smp_read_barrier_depends
> genetlink: Remove smp_read_barrier_depends() from comment
> netlink: Remove smp_read_barrier_depends() from comment
> checkpatch: Add warnings for {smp_,}read_barrier_depends()
> drivers/vhost: Remove now-redundant read_barrier_depends()
> rcu: Add comment giving debug strategy for double call_rcu()
> torture: Reduce #ifdefs for preempt_schedule()
> rcutorture: Preempt RCU-preempt readers more vigorously
> torture: Place all torture-test modules in one MAINTAINERS group
> torture: Make stutter less vulnerable to compilers and races
> torture: Eliminate torture_runnable and perf_runnable
> torture: Save a line in stutter_wait(): while -> for
> Merge branches 'cond_resched.2017.12.04a', 'dyntick.2017.11.28a', 'fixes.2017.12.11a', 'srbd.2017.12.05a' and 'torture.2017.12.11a' into HEAD
>
> Rakib Mullick (1):
> rcu: Remove have_rcu_nocb_mask from tree_plugin.h
>
> SeongJae Park (9):
> rcutorture/configinit: Fix build directory error message
> rcutorture: Remove unused script, config2frag.sh
> rcutorture/kvm.sh: Remove unused variable, `alldone`
> rcutorture/kvm.sh: Use consistent help text for --qemu-args
> rcutorture/kvm.sh: Support execution from any directory
> rcutorture/kvm-recheck-*: Improve result directory readability check
> rcutorture: Simplify logging
> rcutorture: Simplify functions.sh include path
> rcutorture/kvm-build.sh: Skip build directory check
>
> Steven Rostedt (VMware) (2):
> tracing, rcu: Remove no longer used trace event rcu_prep_idle
> tracing, rcu: Hide trace event rcu_nocb_wake when not used
>
> .../Design/Data-Structures/Data-Structures.html | 49 ++-
> .../RCU/Design/Requirements/Requirements.html | 7 +-
> Documentation/RCU/rcu_dereference.txt | 6 +-
> Documentation/RCU/stallwarn.txt | 10 +-
> Documentation/RCU/whatisRCU.txt | 3 +-
> Documentation/admin-guide/kernel-parameters.txt | 9 -
> Documentation/circular-buffers.txt | 3 +-
> Documentation/locking/locktorture.txt | 5 -
> Documentation/memory-barriers.txt | 22 +-
> MAINTAINERS | 22 +-
> arch/mn10300/kernel/mn10300-serial.c | 7 +-
> drivers/dma/ioat/dma.c | 2 -
> drivers/infiniband/Kconfig | 1 +
> drivers/infiniband/hw/hfi1/rc.c | 4 -
> drivers/infiniband/hw/hfi1/ruc.c | 1 -
> drivers/infiniband/hw/hfi1/sdma.c | 1 -
> drivers/infiniband/hw/hfi1/uc.c | 2 -
> drivers/infiniband/hw/hfi1/ud.c | 2 -
> drivers/infiniband/hw/qib/qib_rc.c | 3 -
> drivers/infiniband/hw/qib/qib_ruc.c | 1 -
> drivers/infiniband/hw/qib/qib_uc.c | 2 -
> drivers/infiniband/hw/qib/qib_ud.c | 2 -
> drivers/infiniband/sw/rdmavt/qp.c | 1 -
> drivers/net/ethernet/qlogic/qed/qed_spq.c | 4 +-
> drivers/vhost/vhost.c | 7 +-
> fs/dcache.c | 10 +-
> fs/file.c | 2 +-
> include/linux/genetlink.h | 3 +-
> include/linux/netfilter/nfnetlink.h | 3 +-
> include/linux/percpu-refcount.h | 6 +-
> include/linux/rcupdate.h | 25 +-
> include/linux/rcutiny.h | 1 -
> include/linux/rcutree.h | 1 -
> include/linux/rtnetlink.h | 3 +-
> include/linux/seqlock.h | 3 +-
> include/linux/srcutree.h | 8 +-
> include/linux/torture.h | 8 +-
> include/linux/tracepoint.h | 5 +-
> include/trace/events/rcu.h | 75 ++---
> kernel/events/uprobes.c | 12 +-
> kernel/locking/locktorture.c | 108 +++----
> kernel/locking/qspinlock.c | 12 +-
> kernel/rcu/rcu.h | 27 +-
> kernel/rcu/rcuperf.c | 6 +-
> kernel/rcu/rcutorture.c | 12 +-
> kernel/rcu/srcutree.c | 109 ++++---
> kernel/rcu/tree.c | 355 ++++++++-------------
> kernel/rcu/tree.h | 5 +-
> kernel/rcu/tree_plugin.h | 13 +-
> kernel/sched/core.c | 3 +-
> kernel/sched/rt.c | 2 +-
> kernel/softirq.c | 2 +-
> kernel/torture.c | 39 ++-
> kernel/trace/trace.c | 11 -
> kernel/trace/trace_benchmark.c | 2 +-
> kernel/tracepoint.c | 9 +-
> kernel/workqueue.c | 2 +-
> lib/assoc_array.c | 37 +--
> lib/percpu-refcount.c | 8 +-
> mm/ksm.c | 9 +-
> mm/mlock.c | 2 +-
> net/ipv4/netfilter/arp_tables.c | 7 +-
> net/ipv4/netfilter/ip_tables.c | 7 +-
> net/ipv6/netfilter/ip6_tables.c | 7 +-
> net/netfilter/nf_conntrack_core.c | 2 +-
> scripts/checkpatch.pl | 6 +
> security/keys/keyring.c | 7 -
> .../selftests/rcutorture/bin/config2frag.sh | 25 --
> .../testing/selftests/rcutorture/bin/configinit.sh | 2 +-
> .../testing/selftests/rcutorture/bin/kvm-build.sh | 5 -
> .../selftests/rcutorture/bin/kvm-recheck-lock.sh | 2 +-
> .../selftests/rcutorture/bin/kvm-recheck-rcu.sh | 4 +-
> .../rcutorture/bin/kvm-recheck-rcuperf-ftrace.sh | 2 +-
> .../rcutorture/bin/kvm-recheck-rcuperf.sh | 4 +-
> .../selftests/rcutorture/bin/kvm-recheck.sh | 2 +-
> .../selftests/rcutorture/bin/kvm-test-1-run.sh | 6 +-
> tools/testing/selftests/rcutorture/bin/kvm.sh | 42 +--
> .../selftests/rcutorture/bin/parse-torture.sh | 2 +-
> .../rcutorture/configs/lock/ver_functions.sh | 1 -
> .../rcutorture/configs/rcu/ver_functions.sh | 1 -
> .../rcutorture/configs/rcuperf/ver_functions.sh | 1 -
> 81 files changed, 501 insertions(+), 748 deletions(-)
> delete mode 100755 tools/testing/selftests/rcutorture/bin/config2frag.sh
Assuming that the subject line wanted to say v4.16, not v4.15 (which would be
really scary set of changes so late in the v4.15 cycle), I have pulled these into
tip:core/rcu, thanks Paul!
Ingo