[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(-)