[GIT PULL] RCU changes for v4.18

From: Ingo Molnar
Date: Mon Jun 04 2018 - 04:50:05 EST


Linus,

Please pull the latest core-rcu-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core-rcu-for-linus

# HEAD: 52f2b34f46223ca2789320fa10c13f6664c1b628 Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu

The changes in this cycle were:

- Updates to the handling of expedited grace periods.

- Updates to reduce lock contention in the rcu_node combining tree.
( These are in preparation for the consolidation of RCU-bh,
RCU-preempt, and RCU-sched into a single flavor, which was
requested by Linus in response to a security flaw whose root cause
included confusion between the multiple flavors of RCU. )

- Torture-test updates that save their users some time and effort.

- Miscellaneous fixes.

Thanks,

Ingo

------------------>
Boqun Feng (2):
rcu: exp: Fix "must hold exp_mutex" comments for QS reporting functions
rcu: exp: Protect all sync_rcu_preempt_exp_done() with rcu_node lock

Byungchul Park (3):
rcu: Inline rcu_preempt_do_callback() into its sole caller
rcu: Call wake_nocb_leader_defer() with 'FORCE' when nocb_q_count is high
rcu: Remove deprecated RCU debugfs tracing code

Nitzan Carmi (1):
nvme: Avoid flush dependency in delete controller flow

Paul E. McKenney (35):
rcu: Parallelize expedited grace-period initialization
rcu: Don't allocate rcu_nocb_mask if no one needs it
rcu: Rename cond_resched_rcu_qs() to cond_resched_tasks_rcu_qs()
softirq: Eliminate unused cond_resched_softirq() macro
rcu: Move __rcu_read_lock() and __rcu_read_unlock() to tree_plugin.h
rcu: Update rcu_bind_gp_kthread() header comment
srcu: Add cleanup_srcu_struct_quiesced()
rcu: Add leaf-node macros
rcu: Improve non-root rcu_cbs_completed() accuracy
rcu: Make rcu_start_future_gp()'s grace-period check more precise
rcu: Add accessor macros for the ->need_future_gp[] array
rcu: Make rcu_gp_kthread() check for early-boot activity
rcu: Make rcu_gp_cleanup() more accurately predict need for new GP
rcu: Avoid losing ->need_future_gp[] values due to GP start/end races
rcu: Make rcu_future_needs_gp() check all ->need_future_gps[] elements
rcu: Convert ->need_future_gp[] array to boolean
rcu: Make rcu_migrate_callbacks wake GP kthread when needed
rcu: Avoid __call_rcu_core() root rcu_node ->lock acquisition
rcu: Switch __rcu_process_callbacks() to rcu_accelerate_cbs()
rcu: Cleanup, don't put ->completed into an int
rcu: Clear request other than RCU_GP_FLAG_INIT at GP end
rcu: Inline rcu_start_gp_advanced() into rcu_start_future_gp()
rcu: Make rcu_start_future_gp() caller select grace period
rcu: Add funnel locking to rcu_start_this_gp()
rcu: Make rcu_start_this_gp() check for out-of-range requests
rcu: The rcu_gp_cleanup() function does not need cpu_needs_another_gp()
rcu: Simplify and inline cpu_needs_another_gp()
rcu: Drop early GP request check from rcu_gp_kthread()
rcu: Update list of rcu_future_grace_period() trace events
torture: Add a script to edit output from failed runs
torture: Fold parse-torture.sh into parse-console.sh
rcutorture: Print end-of-test state
rcutorture: Print end-of-test state in kvm.sh summary
rcutorture: Abbreviate kvm.sh summary lines
torture: Make kvm-find-errors.sh find build warnings

Paul Gortmaker (1):
doc: Ensure whatisRCU.txt actually says what RCU is

Peter Zijlstra (1):
rcu/x86: Provide early rcu_cpu_starting() callback

Yury Norov (1):
rcu: Declare rcu_eqs_special_set() in public header


Documentation/RCU/whatisRCU.txt | 2 +
arch/x86/kernel/cpu/mtrr/main.c | 4 +
drivers/nvme/host/core.c | 2 +-
include/linux/rcupdate.h | 5 +-
include/linux/rcutiny.h | 1 +
include/linux/rcutree.h | 2 +
include/linux/sched.h | 8 -
include/linux/srcu.h | 36 +-
include/trace/events/rcu.h | 13 +-
kernel/rcu/rcu.h | 12 +-
kernel/rcu/rcu_segcblist.c | 18 -
kernel/rcu/rcu_segcblist.h | 2 -
kernel/rcu/rcuperf.c | 2 +-
kernel/rcu/rcutorture.c | 15 +-
kernel/rcu/srcutiny.c | 9 +-
kernel/rcu/srcutree.c | 30 +-
kernel/rcu/tree.c | 364 ++++++++-------------
kernel/rcu/tree.h | 36 +-
kernel/rcu/tree_exp.h | 235 +++++++------
kernel/rcu/tree_plugin.h | 98 +++---
kernel/rcu/update.c | 50 +--
kernel/sched/core.c | 14 -
kernel/softirq.c | 3 +-
kernel/torture.c | 2 +-
kernel/trace/trace_benchmark.c | 4 +-
.../selftests/rcutorture/bin/kvm-find-errors.sh | 56 ++++
.../selftests/rcutorture/bin/kvm-recheck-rcu.sh | 12 +-
.../selftests/rcutorture/bin/kvm-recheck.sh | 4 -
.../selftests/rcutorture/bin/kvm-test-1-run.sh | 1 -
.../selftests/rcutorture/bin/parse-console.sh | 115 ++++++-
.../selftests/rcutorture/bin/parse-torture.sh | 105 ------
31 files changed, 631 insertions(+), 629 deletions(-)
create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh
delete mode 100755 tools/testing/selftests/rcutorture/bin/parse-torture.sh