* Paul E. McKenney <paul...@linux.vnet.ibm.com> wrote: > Hello, Ingo! > > This pull request contains the following changes: > > 1. Updates to the handling of expedited grace periods, perhaps most > notably parallelizing their initialization. Other changes > include fixes from Boqun Feng. > > http://lkml.kernel.org/r/20180423022047.ga20...@linux.vnet.ibm.com > > 2. Miscellaneous fixes. These include an nvme fix from Nitzan Carmi > that I am carrying because it depends on a new SRCU function > cleanup_srcu_struct_quiesced(). This branch also includes fixes > from Byungchul Park and Yury Norov. Note that several patches > were deferred to the v4.19 merge window due to late location > of bugs and late determination of a need for restructuring. > > http://lkml.kernel.org/r/20180423023150.ga21...@linux.vnet.ibm.com > > 3. 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 Torvalds in response to a security flaw > whose root cause included confusion between the multiple flavors > of RCU. There will be another series of contention-reduction > patches in the next merge window, hopefully accompanied by the > consolidation itself. > > http://lkml.kernel.org/r/20180423030258.ga23...@linux.vnet.ibm.com > > 4. Torture-test updates that save their users some time and effort. > > http://lkml.kernel.org/r/20180423031346.ga28...@linux.vnet.ibm.com > > The nvme patch called out in #2 above has a conflict with a commit in > Linus's tree, which was reported by Stephen Rothwell in the course of > his -next testing. He is carrying a resolution to this conflict as > reported on LKML here: > > http://lkml.kernel.org/r/20180514134636.61831...@canb.auug.org.au > > This resolution looks good to me. > > 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 22df7316ac71dc1ac57415349938737d2a229c59: > > Merge branches 'exp.2018.05.15a', 'fixes.2018.05.15a', 'lock.2018.05.15a' > and 'torture.2018.05.15a' into HEAD (2018-05-15 10:33:05 -0700) > > This merge commit is quite recent, however, the changes are exactly > the same as the previous merge commit (434533a52e8d) dated April 30th. > The only difference is the addition of Nick Piggin's Tested-by to all > of the commit logs (thank you, Nick!). > > ---------------------------------------------------------------- > 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 (36): > 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 > Merge branches 'exp.2018.05.15a', 'fixes.2018.05.15a', > 'lock.2018.05.15a' and 'torture.2018.05.15a' into HEAD > > Paul Gortmaker (1): > doc: Ensure whatisRCU.txt actually says what RCU is > > Yury Norov (1): > rcu: Declare rcu_eqs_special_set() in public header > > Documentation/RCU/whatisRCU.txt | 2 + > drivers/nvme/host/core.c | 2 +- > include/linux/rcupdate.h | 4 +- > include/linux/rcutree.h | 1 + > 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 | 355 > ++++++++------------- > 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 ------ > 29 files changed, 616 insertions(+), 628 deletions(-) > create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh > delete mode 100755 tools/testing/selftests/rcutorture/bin/parse-torture.sh
Pulled, thanks a lot Paul! Ingo