[PATCH tip/core/rcu 0/30] Add read-side scalability tests for v5.9

Paul E. McKenney
2020-06-23T00:29:44Z

Hello!

This series adds a refscale set of read-side scalability tests for
reference counting, reader-writer locking, and RCU.

1. Remove useless while loops around wait_event, courtesy of
Joel Fernandes.

2. Add a test to measure performance of read-side synchronization,
courtesy of Joel Fernandes.

3. Add comments explaining the high reader overhead.

4. Add refperf to the rcutorture scripting.

5. Add holdoff parameter to allow CPUs to come online.

6. Hoist function-pointer calls out of the loop.

7. Allow decimal nanoseconds.

8. Convert nreaders to a module parameter.

9. Provide module parameter to specify number of experiments.

10. Dynamically allocate experiment-summary output buffer.

11. Dynamically allocate thread-summary output buffer.

12. Make functions static.

13. Tune reader measurement interval.

14. Convert reader_task structure's "start" field to int.

15. More closely synchronize reader start times.

16. Add warmup and cooldown processing phases.

17. Label experiment-number column "Runs".

18. Output per-experiment data points.

19. Simplify initialization-time wakeup protocol.

20. Add read-side delay module parameter.

21. Adjust refperf.loop default value.

22. Document rcuperf's module parameters.

23. Work around 64-bit division, courtesy of Arnd Bergmann.

24. Change readdelay module parameter to nanoseconds.

25. Add test for RCU Tasks Trace readers..

26. Add test for RCU Tasks readers.

27. rcu-tasks: Fix synchronize_rcu_tasks_trace() header comment.

28. Rename RCU_REF_PERF_TEST to RCU_REF_SCALE_TEST.

29. Rename refperf.c to refscale.c and change internal names.

30. Change --torture type from refperf to refscale.

Thanx, Paul

------------------------------------------------------------------------

Documentation/admin-guide/kernel-parameters.txt | 53
include/linux/rcupdate_trace.h | 4
kernel/rcu/Kconfig.debug | 23
kernel/rcu/Makefile | 5
kernel/rcu/rcuperf.c | 25
kernel/rcu/refperf.c | 1037 ++++++++--
kernel/rcu/refscale.c | 182 -
kernel/rcu/tasks.h | 9
tools/testing/selftests/rcutorture/bin/kvm-recheck-refperf.sh | 73
tools/testing/selftests/rcutorture/bin/kvm-recheck-refscale.sh | 8
tools/testing/selftests/rcutorture/bin/kvm.sh | 17
tools/testing/selftests/rcutorture/bin/parse-console.sh | 8
tools/testing/selftests/rcutorture/configs/refperf/CFLIST | 2
tools/testing/selftests/rcutorture/configs/refperf/CFcommon | 4
tools/testing/selftests/rcutorture/configs/refperf/NOPREEMPT | 18
tools/testing/selftests/rcutorture/configs/refperf/PREEMPT | 18
tools/testing/selftests/rcutorture/configs/refperf/ver_functions.sh | 20
tools/testing/selftests/rcutorture/configs/refscale/ver_functions.sh | 1
18 files changed, 1205 insertions(+), 302 deletions(-)