Re: [GIT PULL rcu/next] RCU commits for 4.7

From: Ingo Molnar
Date: Wed Apr 27 2016 - 10:59:36 EST



* Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:

> Hello, Ingo,
>
> The changes in this series include:
>
> 1. Documentation updates, including fixes to the design-level
> requirements documentation and a fixed version of the design-level
> data-structure documentation. These fixes include removing
> cartoons and getting rid of the html/htmlx duplication.
>
> http://lkml.kernel.org/g/20160412151755.GA22416@xxxxxxxxxxxxxxxxxx
>
> 2. Further improvements to the new-age expedited grace periods.
>
> http://lkml.kernel.org/g/20160412152906.GA23395@xxxxxxxxxxxxxxxxxx
>
> 3. Miscellaneous fixes.
>
> http://lkml.kernel.org/g/20160412150157.GA19367@xxxxxxxxxxxxxxxxxx
>
> 4. Torture-test changes, including a new rcuperf module for measuring
> RCU grace-period performance and scalability, which is useful for
> the expedited-grace-period changes.
>
> http://lkml.kernel.org/g/20160412154332.GA24983@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 dcd36d01fb3f99d1d5df01714f6ccbe3fbbaf81f:
>
> Merge branches 'doc.2016.04.19a', 'exp.2016.03.31d', 'fixes.2016.03.31d' and 'torture.2016.04.21a' into HEAD (2016-04-21 13:48:20 -0700)
>
> ----------------------------------------------------------------
> Anna-Maria Gleixner (1):
> rcutorture: Consider FROZEN hotplug notifier transitions
>
> Artem Savkov (1):
> rcuperf: Do not wake up shutdown wait queue if "shutdown" is false.
>
> Boqun Feng (1):
> rcu: Remove superfluous versions of rcu_read_lock_sched_held()
>
> Paul E. McKenney (53):
> rcu: Consolidate dumping of ftrace buffer
> documentation: Add real-time requirements from CPU-bound workloads
> documentation: Add synchronize_rcu_mult() to the requirements
> documentation: Explain why rcu_read_lock() needs no barrier()
> documentation: Document illegality of call_rcu() from offline CPUs
> documentation: Remove unnecessary images from requirements
> documentation: Get rid of duplicate .htmlx file
> documentation: Sharpen up the no-readers quick quiz
> documentation: Emphasize the call_rcu() is illegal from idle
> rcu: Make expedited RCU-sched grace period immediately detect idle
> rcu: Make expedited RCU-preempt stall warnings count accurately
> rcu: Make cond_resched_rcu_qs() supply RCU-sched expedited QS
> rcu: Fix synchronize_rcu_expedited() header comment
> rcu: Add event tracing definitions for expedited grace periods
> rcu: Add funnel-locking tracing for expedited grace periods
> rcu: Add expedited-grace-period event tracing
> rcu: Remove expedited GP funnel-lock bypass
> rcu: Force boolean subscript for expedited stall warnings
> rcu: Shorten expedited_workdone* to exp_workdone*
> rcu: Enforce expedited-GP fairness via funnel wait queue
> rcu: Add exp_funnel_lock() fastpath
> rcu: Consolidate expedited GP code into rcu_exp_wait_wake()
> rcu: Consolidate expedited GP tracing into rcu_exp_gp_seq_snap()
> rcu: Consolidate expedited GP code into exp_funnel_lock()
> rcu: Overlap wakeups with next expedited grace period
> rcu: Awaken grace-period kthread when stalled
> rcu: Make FQS schedule advance only if FQS happened
> rcu: Awaken grace-period kthread if too long since FQS
> rcu: Dump ftrace buffer when kicking grace-period kthread
> rcutorture: Update scripting to accommodate rcuperf
> rcutorture: Allow for rcupdate.rcu_normal
> rcutorture: Expedited-GP batch progress access to torturing
> rcutorture: Add RCU grace-period performance tests
> rcutorture: Documentation for rcuperf kernel parameters
> rcutorture: Bind rcuperf reader/writer kthreads to CPUs
> rcutorture: Set rcuperf writer kthreads to real-time priority
> rcutorture: Print measure of batching efficiency
> rcutorture: Make rcuperf collect expedited event-trace data
> rcutorture: Make scripts analyze rcuperf trace data, if present
> rcutorture: Add rcuperf holdoff boot parameter to reduce interference
> rcutorture: Avoid RCU CPU stall warning and RT throttling
> rcutorture: Add largish-system rcuperf scenario
> rcutorture: Remove redundant initialization to zero
> torture: Clarify refusal to run more than one torture test
> torture: Kill qemu, not parent process
> rcutorture: Convert test duration to seconds early
> documentation: Add documentation for RCU's major data structures
> rcutorture: Add OS-jitter capability
> rcutorture: Don't rebuild identical kernel
> rcutorture: Dump trace buffer upon shutdown
> rcutorture: Add irqs-disabled test for call_rcu()
> rcutorture: Add boot-time adjustment of leaf fanout
> Merge branches 'doc.2016.04.19a', 'exp.2016.03.31d', 'fixes.2016.03.31d' and 'torture.2016.04.21a' into HEAD
>
> Yao Dongdong (1):
> documentation: Make sample code and documentation consistent
>
> .../Design/Data-Structures/BigTreeClassicRCU.svg | 474 ++++
> .../Design/Data-Structures/BigTreeClassicRCUBH.svg | 499 ++++
> .../Data-Structures/BigTreeClassicRCUBHdyntick.svg | 695 +++++
> .../Data-Structures/BigTreePreemptRCUBHdyntick.svg | 741 ++++++
> .../BigTreePreemptRCUBHdyntickCB.svg | 858 ++++++
> .../Design/Data-Structures/Data-Structures.html | 1333 ++++++++++
> .../Design/Data-Structures/HugeTreeClassicRCU.svg | 939 +++++++
> .../RCU/Design/Data-Structures/TreeLevel.svg | 828 ++++++
> .../RCU/Design/Data-Structures/TreeMapping.svg | 305 +++
> .../Design/Data-Structures/TreeMappingLevel.svg | 380 +++
> .../RCU/Design/Data-Structures/blkd_task.svg | 843 ++++++
> .../RCU/Design/Data-Structures/nxtlist.svg | 396 +++
> .../RCU/Design/Requirements/2013-08-is-it-dead.png | Bin 100825 -> 0 bytes
> .../RCU/Design/Requirements/RCUApplicability.svg | 237 --
> .../RCU/Design/Requirements/Requirements.html | 941 ++++---
> .../RCU/Design/Requirements/Requirements.htmlx | 2741 --------------------
> Documentation/RCU/Design/htmlqqz.sh | 108 -
> Documentation/RCU/trace.txt | 10 +-
> Documentation/RCU/whatisRCU.txt | 22 +-
> Documentation/kernel-parameters.txt | 38 +
> include/linux/rcupdate.h | 30 +-
> include/linux/rcutiny.h | 16 +
> include/linux/rcutree.h | 2 +
> include/trace/events/rcu.h | 79 +-
> kernel/rcu/Makefile | 1 +
> kernel/rcu/rcuperf.c | 655 +++++
> kernel/rcu/rcutorture.c | 29 +-
> kernel/rcu/tree.c | 302 ++-
> kernel/rcu/tree.h | 20 +-
> kernel/rcu/tree_plugin.h | 37 +-
> kernel/rcu/tree_trace.c | 13 +-
> kernel/rcu/update.c | 4 +-
> kernel/torture.c | 4 +-
> lib/Kconfig.debug | 33 +
> tools/testing/selftests/rcutorture/bin/jitter.sh | 90 +
> .../rcutorture/bin/kvm-recheck-rcuperf-ftrace.sh | 121 +
> .../rcutorture/bin/kvm-recheck-rcuperf.sh | 96 +
> .../selftests/rcutorture/bin/kvm-recheck.sh | 5 +-
> .../selftests/rcutorture/bin/kvm-test-1-run.sh | 59 +-
> tools/testing/selftests/rcutorture/bin/kvm.sh | 24 +-
> .../selftests/rcutorture/configs/rcu/TREE04 | 2 +-
> .../selftests/rcutorture/configs/rcu/TREE04.boot | 2 +-
> .../selftests/rcutorture/configs/rcuperf/CFLIST | 1 +
> .../selftests/rcutorture/configs/rcuperf/CFcommon | 2 +
> .../selftests/rcutorture/configs/rcuperf/TREE | 20 +
> .../selftests/rcutorture/configs/rcuperf/TREE54 | 23 +
> .../rcutorture/configs/rcuperf/ver_functions.sh | 52 +
> 47 files changed, 10417 insertions(+), 3693 deletions(-)
> create mode 100644 Documentation/RCU/Design/Data-Structures/BigTreeClassicRCU.svg
> create mode 100644 Documentation/RCU/Design/Data-Structures/BigTreeClassicRCUBH.svg
> create mode 100644 Documentation/RCU/Design/Data-Structures/BigTreeClassicRCUBHdyntick.svg
> create mode 100644 Documentation/RCU/Design/Data-Structures/BigTreePreemptRCUBHdyntick.svg
> create mode 100644 Documentation/RCU/Design/Data-Structures/BigTreePreemptRCUBHdyntickCB.svg
> create mode 100644 Documentation/RCU/Design/Data-Structures/Data-Structures.html
> create mode 100644 Documentation/RCU/Design/Data-Structures/HugeTreeClassicRCU.svg
> create mode 100644 Documentation/RCU/Design/Data-Structures/TreeLevel.svg
> create mode 100644 Documentation/RCU/Design/Data-Structures/TreeMapping.svg
> create mode 100644 Documentation/RCU/Design/Data-Structures/TreeMappingLevel.svg
> create mode 100644 Documentation/RCU/Design/Data-Structures/blkd_task.svg
> create mode 100644 Documentation/RCU/Design/Data-Structures/nxtlist.svg
> delete mode 100644 Documentation/RCU/Design/Requirements/2013-08-is-it-dead.png
> delete mode 100644 Documentation/RCU/Design/Requirements/RCUApplicability.svg
> delete mode 100644 Documentation/RCU/Design/Requirements/Requirements.htmlx
> delete mode 100755 Documentation/RCU/Design/htmlqqz.sh
> create mode 100644 kernel/rcu/rcuperf.c
> create mode 100755 tools/testing/selftests/rcutorture/bin/jitter.sh
> create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-recheck-rcuperf-ftrace.sh
> create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-recheck-rcuperf.sh
> create mode 100644 tools/testing/selftests/rcutorture/configs/rcuperf/CFLIST
> create mode 100644 tools/testing/selftests/rcutorture/configs/rcuperf/CFcommon
> create mode 100644 tools/testing/selftests/rcutorture/configs/rcuperf/TREE
> create mode 100644 tools/testing/selftests/rcutorture/configs/rcuperf/TREE54
> create mode 100644 tools/testing/selftests/rcutorture/configs/rcuperf/ver_functions.sh

Pulled, thanks a lot Paul!

Ingo