* Paul E. McKenney <paul...@linux.vnet.ibm.com> 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.ga19...@linux.vnet.ibm.com > > 2. Updates to simplify RCU's dyntick-idle handling. > > http://lkml.kernel.org/r/20171201193625.ga20...@linux.vnet.ibm.com > > 3. Miscellaneous fixes. > > http://lkml.kernel.org/r/20171201194139.ga22...@linux.vnet.ibm.com > > 4. Updates to remove almost all uses of smp_read_barrier_depends() > and read_barrier_depends(). > > http://lkml.kernel.org/r/20171201195053.ga23...@linux.vnet.ibm.com > > 5. Torture-test updates. > > http://lkml.kernel.org/r/20171201200819.ga25...@linux.vnet.ibm.com > > 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