Skip to content

Torture-test changes for 3.16

Paul E. McKenney lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest0 of 44 patches 1 replyIn review

Patches in v1 No applies recorded yet

None of the 44 patches the cover letter announces are in this archive.

Reviews trailers per patch

PatchJosh TriplettChristoph Lameter
SeriesR-b R-b R-b R-b R-b R-b R-b R-b R-b R-b R-b R-b R-b R-b A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH tip/core/rcu 0/44] Torture-test changes for 3.16

Hello!

This series provides torture-test updates:

1. Add forward-progress checking to distinguish between stalls in
the RCU implementation and in the torture test itself.

2. Remove the --builddir and --relbuilddir options, which have been
obsoleted by the parallel testing facility.

3. Make "--dryrun sched" output more readable by clearly indicating
where each batch of concurrent runs starts.

4. Make torture-test errors less RCU-specific. ("Hey, why did
my locktorture run complain about RCU???")

5,8-14. Rename variables to reflect the new RCU-independence of a number
of the torture-test scripts.

6. Reduce locktorture sleeping to increase intensity.

7. Add a --defconfig argument to allow other default configs to
be specified.

15. Make config-fragment filtering RCU-independent.

16. Mark private functions as static in kernel/rcu/torture.c,
courtesy of Rashika Kheria.

17-18. Make the output of "--dryrun script" independently runnable.

19. Print negative numbers when SRCU counters wrap instead of
huge 64-bit integers.

20. Fix "Stopping" torture messages.

21. Report any diagnostics issued by qemu.

22. Make kthreads spin during the last jiffy of a stutter period
to increase the intensity of torture stop-start events.

23. Permit multiple qemu and boot arguments to be specified on
the command line.

24. Choose bzImage location based on architecture.

25. Add tracing-enabled variant of TREE02 to aid debugging.

26. Dump the ftrace buffer when the RCU grace period stalls.

27. Export the RCU grace-period kthread wait state to rcutorture
to ease diagnosis of RCU grace-period stalls.

28. Fix bug in raw_cpu_inc_return().

29. Make cond_resched() report RCU quiescent states.

30. Make rcu_torture_reader() use cond_resched() instead of
unconditionally invoking schedule().

31. Complain if an all-zero cpumask is specified during a torture
shuffle operation, courtesy of Iulia Manda.

32. Make build failures more evident.

33. Capture and report the torture_create_kthread() return value when
creating the rcu_torture_fqs kthread.

34. Use elapsed time to detect hangs rather than counting "sleep 1"
commands.

35. Rearrange config fragments to ensure that RCU-sched primitives are
tested in TREE_PREEMPT_RCU kernels.

36. Add rcutorture tests for get_state_synchronize_rcu() and
cond_synchronize_rcu().

37. Add explicit tests for synchronous grace-period primitives.

38. Add missing destroy_timer_on_stack(), courtesy of Thomas Gleixner.

39. Make scripts record "git diff HEAD" to ease reproduction of
an unexpected torture-test result.

40. Run rcu_torture_writer() at normal priority.

41. Put the qemu process into the background to better handle
kernel hangs.

42. Remove reference to a non-existent Kconfig parameter.

43. Refuse to run multiple concurrent torture tests.

44. Remove __init from torture_init_begin() and torture_init_end()
to allow rcutorture to once again work as a loadable module.

45. Remove unused torture_parm() macro.

Thanx, Paul

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

 b/include/linux/percpu.h                                     |    2 
 b/include/linux/rcupdate.h                                   |   19 +
 b/include/linux/rcutiny.h                                    |    4 
 b/include/linux/rcutree.h                                    |    1 
 b/include/linux/torture.h                                    |    2 
 b/kernel/locking/locktorture.c                               |    3 
 b/kernel/rcu/rcutorture.c                                    |   37 ++
 b/kernel/rcu/tree.c                                          |   18 +
 b/kernel/rcu/tree.h                                          |    8 
 b/kernel/rcu/update.c                                        |   18 +
 b/kernel/sched/core.c                                        |    7 
 b/kernel/torture.c                                           |    5 
 b/tools/testing/selftests/rcutorture/bin/configinit.sh       |    2 
 b/tools/testing/selftests/rcutorture/bin/functions.sh        |   12 
 b/tools/testing/selftests/rcutorture/bin/kvm-build.sh        |    2 
 b/tools/testing/selftests/rcutorture/bin/kvm-recheck-lock.sh |    2 
 b/tools/testing/selftests/rcutorture/bin/kvm-recheck-rcu.sh  |    2 
 b/tools/testing/selftests/rcutorture/bin/kvm-recheck.sh      |    2 
 b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh   |    2 
 b/tools/testing/selftests/rcutorture/bin/kvm.sh              |   16 
 b/tools/testing/selftests/rcutorture/bin/parse-torture.sh    |  106 ++++++
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE02-T    |   25 +
 b/tools/testing/selftests/rcutorture/configs/rcu/TREE08.boot |    1 
 include/linux/rcupdate.h                                     |   36 ++
 include/linux/torture.h                                      |    6 
 kernel/locking/locktorture.c                                 |    7 
 kernel/rcu/rcutorture.c                                      |  193 +++++++----
 kernel/rcu/tree.c                                            |   17 
 kernel/torture.c                                             |   36 +-
 tools/testing/selftests/rcutorture/bin/functions.sh          |   35 +
 tools/testing/selftests/rcutorture/bin/kvm-build.sh          |    4 
 tools/testing/selftests/rcutorture/bin/kvm-recheck.sh        |   24 +
 tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh     |   44 +-
 tools/testing/selftests/rcutorture/bin/kvm.sh                |  162 +++++----
 tools/testing/selftests/rcutorture/bin/parse-rcutorture.sh   |  106 ------
 35 files changed, 649 insertions(+), 317 deletions(-)