[GIT PULL rcu/next] RCU commits for 5.3

From: Paul E. McKenney
Date: Tue Jun 18 2019 - 14:12:53 EST


Hello, Ingo,

This pull request contains the following changes:

1. Yet another round of flavor-consolidation cleanups.

http://lkml.kernel.org/r/20190530145204.GA28526@xxxxxxxxxxxxx

2. Documentation updates.

http://lkml.kernel.org/r/20190530145504.GA29820@xxxxxxxxxxxxx

3. Miscellaneous fixes.

http://lkml.kernel.org/r/20190530145942.GA30318@xxxxxxxxxxxxx

4. SRCU updates.

http://lkml.kernel.org/r/20190530150347.GA31311@xxxxxxxxxxxxx

5. RCU-sync updates.

http://lkml.kernel.org/r/20190530150816.GA32130@xxxxxxxxxxxxx

6. Torture-test updates.

http://lkml.kernel.org/r/20190530151650.GA422@xxxxxxxxxxxxx

This pull request does not contain LKMM updates, which will be the
subject of a later pull request. (Apologies for the hassle, but there
is still work in progress on handling plain assignment statements.)

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 8bec773060bd068bddc1014d25a7d16ac84c4fd4:

Merge branches 'consolidate.2019.05.28a', 'doc.2019.05.28a', 'fixes.2019.06.13a', 'fixes.2019.05.28a', 'srcu.2019.05.28a', 'sync.2019.05.28a' and 'torture.2019.05.28a' into HEAD (2019-06-13 15:39:55 -0700)

----------------------------------------------------------------
Andrea Parri (2):
rcu: Don't return a value from rcu_assign_pointer()
rcu: Don't return a value from rcu_assign_pointer()

Jiang Biao (2):
rcu: Remove unused rdp local from synchronize_rcu_expedited()
rcu: Make __call_srcu static

Joel Fernandes (Google) (7):
lockdep: Add assertion to check if in an interrupt
rcu: Add checks for dynticks counters in rcu_is_cpu_rrupt_from_idle()
doc/rcuref: Document real world examples in kernel
srcu: Remove unused vmlinux srcu linker entries
module: Make srcu_struct ptr array as read-only
rcutorture: Select from only online CPUs
rcutorture: Add cpu0 to the set of CPUs to add jitter

Neeraj Upadhyay (2):
rcu: Dump specified number of blocked tasks
rcu: Correctly unlock root node in rcu_check_gp_start_stall()

Oleg Nesterov (4):
rcu/sync: Kill rcu_sync_type/gp_type
uprobes: Use DEFINE_STATIC_PERCPU_RWSEM() to initialize dup_mmap_sem
locking/percpu-rwsem: Add DEFINE_PERCPU_RWSEM(), use it to initialize cgroup_threadgroup_rwsem
rcu/sync: Simplify the state machine

Paul E. McKenney (35):
rcu: Check for wakeup-safe conditions in rcu_read_unlock_special()
rcu: Only do rcu_read_unlock_special() wakeups if expedited
rcu: Allow rcu_read_unlock_special() to raise_softirq() if in_irq()
rcu: Use irq_work to get scheduler's attention in clean context
rcu: Inline invoke_rcu_callbacks() into its sole remaining caller
rcu: Avoid self-IPI in sync_rcu_exp_select_node_cpus()
rcu: Avoid self-IPI in sync_sched_exp_online_cleanup()
rcu: Rename rcu_data's ->deferred_qs to ->exp_deferred_qs
rcu: Upgrade sync_exp_work_done() to smp_mb()
rcu: Make kfree_rcu() ignore NULL pointers
rcu: Fix irritating whitespace error in rcu_assign_pointer()
rcu: Set a maximum limit for back-to-back callback invocation
doc: Remove ".vnet" from paulmck email addresses
srcu: Allocate per-CPU data for DEFINE_SRCU() in modules
rcutorture: Add cond_resched() to forward-progress free-up loop
rcutorture: Fix stutter_wait() return value and freelist checks
torture: Allow inter-stutter interval to be specified
torture: Make kvm-find-errors.sh and kvm-recheck.sh provide exit status
rcutorture: Provide rudimentary Makefile
rcutorture: Exempt tasks RCU from timely draining of grace periods
rcutorture: Exempt TREE01 from forward-progress testing
rcutorture: Give the scheduler a chance on PREEMPT && NO_HZ_FULL kernels
rcutorture: Halt forward-progress checks at end of run
rcutorture: Add trivial RCU implementation
torture: Capture qemu output
torture: Add function graph-tracing cheat sheet
torture: Run kernel build in source directory
torture: Make --cpus override idleness calculations
torture: Add --trust-make to suppress "make clean"
rcutorture: Dump trace buffer for callback pipe drain failures
torture: Suppress propagating trace_printk() warning
rcutorture: Upper case solves the case of the vanishing NULL pointer
rcu: Upgrade sync_exp_work_done() to smp_mb()
rcu: Fix irritating whitespace error in rcu_assign_pointer()
Merge branches 'consolidate.2019.05.28a', 'doc.2019.05.28a', 'fixes.2019.06.13a', 'fixes.2019.05.28a', 'srcu.2019.05.28a', 'sync.2019.05.28a' and 'torture.2019.05.28a' into HEAD

Sebastian Andrzej Siewior (2):
rcu: Enable elimination of Tree-RCU softirq processing
rcutorture: Tweak kvm options

Waiman Long (2):
rcu: Force inlining of rcu_read_lock()
rcu: Force inlining of rcu_read_lock()

Zhenzhong Duan (1):
doc: Fixup definition of rcupdate.rcu_task_stall_timeout

Documentation/RCU/rcuref.txt | 21 +-
Documentation/RCU/stallwarn.txt | 2 +-
Documentation/RCU/whatisRCU.txt | 8 +-
Documentation/admin-guide/kernel-parameters.txt | 6 +
Documentation/core-api/circular-buffers.rst | 2 +-
Documentation/memory-barriers.txt | 2 +-
.../translations/ko_KR/memory-barriers.txt | 2 +-
include/linux/lockdep.h | 7 +
include/linux/module.h | 5 +
include/linux/percpu-rwsem.h | 10 +-
include/linux/rcu_sync.h | 40 ++--
include/linux/rcupdate.h | 21 +-
include/linux/sched.h | 2 +-
include/linux/srcutree.h | 14 +-
include/linux/torture.h | 2 +-
kernel/cgroup/cgroup.c | 3 +-
kernel/events/uprobes.c | 4 +-
kernel/locking/locktorture.c | 2 +-
kernel/locking/percpu-rwsem.c | 2 +-
kernel/module.c | 5 +
kernel/rcu/rcu.h | 5 +
kernel/rcu/rcutorture.c | 96 +++++++--
kernel/rcu/srcutree.c | 69 ++++++-
kernel/rcu/sync.c | 214 ++++++++++-----------
kernel/rcu/tree.c | 164 +++++++++++++---
kernel/rcu/tree.h | 6 +-
kernel/rcu/tree_exp.h | 53 +++--
kernel/rcu/tree_plugin.h | 195 ++++++-------------
kernel/rcu/tree_stall.h | 4 +-
kernel/rcu/update.c | 13 ++
kernel/torture.c | 23 ++-
tools/include/linux/rcu.h | 4 +-
tools/testing/radix-tree/linux/rcupdate.h | 2 +-
tools/testing/selftests/rcutorture/Makefile | 3 +
.../testing/selftests/rcutorture/bin/configinit.sh | 39 ++--
tools/testing/selftests/rcutorture/bin/cpus2use.sh | 5 +
.../testing/selftests/rcutorture/bin/functions.sh | 13 +-
tools/testing/selftests/rcutorture/bin/jitter.sh | 13 +-
.../testing/selftests/rcutorture/bin/kvm-build.sh | 9 +-
.../selftests/rcutorture/bin/kvm-find-errors.sh | 3 +
.../selftests/rcutorture/bin/kvm-recheck.sh | 13 +-
.../selftests/rcutorture/bin/kvm-test-1-run.sh | 23 +--
tools/testing/selftests/rcutorture/bin/kvm.sh | 14 +-
.../selftests/rcutorture/bin/parse-build.sh | 2 +-
.../selftests/rcutorture/bin/parse-console.sh | 1 +
.../selftests/rcutorture/configs/rcu/CFcommon | 3 +
.../selftests/rcutorture/configs/rcu/TREE01.boot | 1 +
.../selftests/rcutorture/configs/rcu/TRIVIAL | 14 ++
.../selftests/rcutorture/configs/rcu/TRIVIAL.boot | 3 +
49 files changed, 736 insertions(+), 431 deletions(-)
create mode 100644 tools/testing/selftests/rcutorture/Makefile
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL.boot