README 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. This directory contains a mix of tests integrated with kselftest and
  2. standalone stress tests.
  3. kselftest tests
  4. ===============
  5. sve-probe-vls - Checks the SVE vector length enumeration interface
  6. sve-ptrace - Checks the SVE ptrace interface
  7. Running the non-kselftest tests
  8. ===============================
  9. sve-stress performs an SVE context switch stress test, as described
  10. below.
  11. (The fpsimd-stress test works the same way; just substitute "fpsimd" for
  12. "sve" in the following commands.)
  13. The test runs until killed by the user.
  14. If no context switch error was detected, you will see output such as
  15. the following:
  16. $ ./sve-stress
  17. (wait for some time)
  18. ^C
  19. Vector length: 512 bits
  20. PID: 1573
  21. Terminated by signal 15, no error, iterations=9467, signals=1014
  22. Vector length: 512 bits
  23. PID: 1575
  24. Terminated by signal 15, no error, iterations=9448, signals=1028
  25. Vector length: 512 bits
  26. PID: 1577
  27. Terminated by signal 15, no error, iterations=9436, signals=1039
  28. Vector length: 512 bits
  29. PID: 1579
  30. Terminated by signal 15, no error, iterations=9421, signals=1039
  31. Vector length: 512 bits
  32. PID: 1581
  33. Terminated by signal 15, no error, iterations=9403, signals=1039
  34. Vector length: 512 bits
  35. PID: 1583
  36. Terminated by signal 15, no error, iterations=9385, signals=1036
  37. Vector length: 512 bits
  38. PID: 1585
  39. Terminated by signal 15, no error, iterations=9376, signals=1039
  40. Vector length: 512 bits
  41. PID: 1587
  42. Terminated by signal 15, no error, iterations=9361, signals=1039
  43. Vector length: 512 bits
  44. PID: 1589
  45. Terminated by signal 15, no error, iterations=9350, signals=1039
  46. If an error was detected, details of the mismatch will be printed
  47. instead of "no error".
  48. Ideally, the test should be allowed to run for many minutes or hours
  49. to maximise test coverage.
  50. KVM stress testing
  51. ==================
  52. To try to reproduce the bugs that we have been observing, sve-stress
  53. should be run in parallel in two KVM guests, while simultaneously
  54. running on the host.
  55. 1) Start 2 guests, using the following command for each:
  56. $ lkvm run --console=virtio -pconsole=hvc0 --sve Image
  57. (Depending on the hardware GIC implementation, you may also need
  58. --irqchip=gicv3. New kvmtool defaults to that if appropriate, but I
  59. can't remember whether my branch is new enough for that. Try without
  60. the option first.)
  61. Kvmtool occupies the terminal until you kill it (Ctrl+A x),
  62. or until the guest terminates. It is therefore recommended to run
  63. each instance in separate terminal (use screen or ssh etc.) This
  64. allows multiple guests to be run in parallel while running other
  65. commands on the host.
  66. Within the guest, the host filesystem is accessible, mounted on /host.
  67. 2) Run the sve-stress on *each* guest with the Vector-Length set to 32:
  68. guest$ ./vlset --inherit 32 ./sve-stress
  69. 3) Run the sve-stress on the host with the maximum Vector-Length:
  70. host$ ./vlset --inherit --max ./sve-stress
  71. Again, the test should be allowed to run for many minutes or hours to
  72. maximise test coverage.
  73. If no error is detected, you will see output from each sve-stress
  74. instance similar to that illustrated above; otherwise details of the
  75. observed mismatches will be printed.