123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- This directory contains a mix of tests integrated with kselftest and
- standalone stress tests.
- kselftest tests
- ===============
- sve-probe-vls - Checks the SVE vector length enumeration interface
- sve-ptrace - Checks the SVE ptrace interface
- Running the non-kselftest tests
- ===============================
- sve-stress performs an SVE context switch stress test, as described
- below.
- (The fpsimd-stress test works the same way; just substitute "fpsimd" for
- "sve" in the following commands.)
- The test runs until killed by the user.
- If no context switch error was detected, you will see output such as
- the following:
- $ ./sve-stress
- (wait for some time)
- ^C
- Vector length: 512 bits
- PID: 1573
- Terminated by signal 15, no error, iterations=9467, signals=1014
- Vector length: 512 bits
- PID: 1575
- Terminated by signal 15, no error, iterations=9448, signals=1028
- Vector length: 512 bits
- PID: 1577
- Terminated by signal 15, no error, iterations=9436, signals=1039
- Vector length: 512 bits
- PID: 1579
- Terminated by signal 15, no error, iterations=9421, signals=1039
- Vector length: 512 bits
- PID: 1581
- Terminated by signal 15, no error, iterations=9403, signals=1039
- Vector length: 512 bits
- PID: 1583
- Terminated by signal 15, no error, iterations=9385, signals=1036
- Vector length: 512 bits
- PID: 1585
- Terminated by signal 15, no error, iterations=9376, signals=1039
- Vector length: 512 bits
- PID: 1587
- Terminated by signal 15, no error, iterations=9361, signals=1039
- Vector length: 512 bits
- PID: 1589
- Terminated by signal 15, no error, iterations=9350, signals=1039
- If an error was detected, details of the mismatch will be printed
- instead of "no error".
- Ideally, the test should be allowed to run for many minutes or hours
- to maximise test coverage.
- KVM stress testing
- ==================
- To try to reproduce the bugs that we have been observing, sve-stress
- should be run in parallel in two KVM guests, while simultaneously
- running on the host.
- 1) Start 2 guests, using the following command for each:
- $ lkvm run --console=virtio -pconsole=hvc0 --sve Image
- (Depending on the hardware GIC implementation, you may also need
- --irqchip=gicv3. New kvmtool defaults to that if appropriate, but I
- can't remember whether my branch is new enough for that. Try without
- the option first.)
- Kvmtool occupies the terminal until you kill it (Ctrl+A x),
- or until the guest terminates. It is therefore recommended to run
- each instance in separate terminal (use screen or ssh etc.) This
- allows multiple guests to be run in parallel while running other
- commands on the host.
- Within the guest, the host filesystem is accessible, mounted on /host.
- 2) Run the sve-stress on *each* guest with the Vector-Length set to 32:
- guest$ ./vlset --inherit 32 ./sve-stress
- 3) Run the sve-stress on the host with the maximum Vector-Length:
- host$ ./vlset --inherit --max ./sve-stress
- Again, the test should be allowed to run for many minutes or hours to
- maximise test coverage.
- If no error is detected, you will see output from each sve-stress
- instance similar to that illustrated above; otherwise details of the
- observed mismatches will be printed.
|