RCU commits for 4.7
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/[email protected]
2. Further improvements to the new-age expedited grace periods.
http://lkml.kernel.org/g/[email protected]
3. Miscellaneous fixes.
http://lkml.kernel.org/g/[email protected]
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/[email protected]
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
Quoted 167 lines · Paul E. McKenney
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/[email protected]
2. Further improvements to the new-age expedited grace periods.
http://lkml.kernel.org/g/[email protected]3. Miscellaneous fixes.
http://lkml.kernel.org/g/[email protected]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/[email protected]
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.gitfor-mingofor 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 transitionsArtem Savkov (1):
rcuperf: Do not wake up shutdown wait queue if "shutdown" is false.Boqun Feng (1):
rcu: Remove superfluous versions ofrcu_read_lock_sched_held()Paul E. McKenney (53):
rcu: Consolidate dumping of ftrace buffer
documentation: Add real-time requirements from CPU-bound workloads
documentation: Addsynchronize_rcu_mult()to the requirements
documentation: Explain whyrcu_read_lock()needs nobarrier()
documentation: Document illegality ofcall_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 thecall_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: Makecond_resched_rcu_qs()supply RCU-sched expedited QS
rcu: Fixsynchronize_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: Addexp_funnel_lock()fastpath
rcu: Consolidate expedited GP code intorcu_exp_wait_wake()
rcu: Consolidate expedited GP tracing intorcu_exp_gp_seq_snap()
rcu: Consolidate expedited GP code intoexp_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 forcall_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 HEADYao 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
Quoted 8 lines
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