[PATCH tip/core/rcu 0/17] Torture-test changes for v4.20/v5.0
From: Paul E. McKenney
Date: Wed Aug 29 2018 - 17:47:33 EST
Hello!
This series contains torture-test changes that can be reasonably
separated from the RCU flavor consolidation and cleanup:
1. Stop overwriting Make.out file with obsolete version.
2. Force occasional reader waits to increase the probability
of quiescent states interacting with RCU's scheduler hooks.
3-4. Warn on bad torture type for built-in tests.
5. Remove TREE06 and TREE08 from the default test list, as they
are redundant after RCU flavor consolidation.
6. Add RCU-reader forward-progress tests for RCU grace periods.
7. Also use grace-period sequence numbers to judge forward progress.
8. Avoid forward-progress no-test complaint if too few
forward-progress tries.
9. Vary forward-progress test interval in order to exercise RCU's
varied forward-progress mechanisms.
10. Add self-propagating callback to forward-progress testing in
order to ensure that there is a reason for grace periods to
exist in the first place, let alone make forward progress.
11. Increase rcu_read_delay() longdelay_ms in order to exercise
RCU's forward-progress machinery that kicks into gear at
about 100 milliseconds into the grace period.
12. Limit reader duration if irq or bh disabled to avoid triggering
-rt bh-disabling complaints.
13. Reduce priority of forward-progress testing for !SMP kernels
and for PREEMPT kernels without RCU priority boosting.
14. Adjust number of reader kthreads per CPU-hotplug operations.
After all, having 32 readers is a great thing for a 32-CPU
system, but not so much if 31 of the CPUs has been offlined.
15. Print forward-progress test interval on error.
16. Check grace-period completion at stutter end: If the system is
idle, grace periods should complete quickly.
17. Maintain self-propagating CB only during forward-progress test.
Thanx, Paul
------------------------------------------------------------------------
include/linux/rcutiny.h | 1
include/linux/torture.h | 2
kernel/rcu/rcuperf.c | 1
kernel/rcu/rcutorture.c | 188 +++++++++++++--
kernel/rcu/update.c | 1
kernel/torture.c | 3
tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh | 1
tools/testing/selftests/rcutorture/configs/rcu/CFLIST | 2
8 files changed, 172 insertions(+), 27 deletions(-)