162306a36Sopenharmony_ciThis directory contains a mix of tests integrated with kselftest and
262306a36Sopenharmony_cistandalone stress tests.
362306a36Sopenharmony_ci
462306a36Sopenharmony_cikselftest tests
562306a36Sopenharmony_ci===============
662306a36Sopenharmony_ci
762306a36Sopenharmony_cisve-probe-vls - Checks the SVE vector length enumeration interface
862306a36Sopenharmony_cisve-ptrace - Checks the SVE ptrace interface
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciRunning the non-kselftest tests
1162306a36Sopenharmony_ci===============================
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cisve-stress performs an SVE context switch stress test, as described
1462306a36Sopenharmony_cibelow.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci(The fpsimd-stress test works the same way; just substitute "fpsimd" for
1762306a36Sopenharmony_ci"sve" in the following commands.)
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciThe test runs until killed by the user.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciIf no context switch error was detected, you will see output such as
2362306a36Sopenharmony_cithe following:
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci$ ./sve-stress
2662306a36Sopenharmony_ci(wait for some time)
2762306a36Sopenharmony_ci^C
2862306a36Sopenharmony_ciVector length:        512 bits
2962306a36Sopenharmony_ciPID:    1573
3062306a36Sopenharmony_ciTerminated by signal 15, no error, iterations=9467, signals=1014
3162306a36Sopenharmony_ciVector length:  512 bits
3262306a36Sopenharmony_ciPID:    1575
3362306a36Sopenharmony_ciTerminated by signal 15, no error, iterations=9448, signals=1028
3462306a36Sopenharmony_ciVector length:  512 bits
3562306a36Sopenharmony_ciPID:    1577
3662306a36Sopenharmony_ciTerminated by signal 15, no error, iterations=9436, signals=1039
3762306a36Sopenharmony_ciVector length:  512 bits
3862306a36Sopenharmony_ciPID:    1579
3962306a36Sopenharmony_ciTerminated by signal 15, no error, iterations=9421, signals=1039
4062306a36Sopenharmony_ciVector length:  512 bits
4162306a36Sopenharmony_ciPID:    1581
4262306a36Sopenharmony_ciTerminated by signal 15, no error, iterations=9403, signals=1039
4362306a36Sopenharmony_ciVector length:  512 bits
4462306a36Sopenharmony_ciPID:    1583
4562306a36Sopenharmony_ciTerminated by signal 15, no error, iterations=9385, signals=1036
4662306a36Sopenharmony_ciVector length:  512 bits
4762306a36Sopenharmony_ciPID:    1585
4862306a36Sopenharmony_ciTerminated by signal 15, no error, iterations=9376, signals=1039
4962306a36Sopenharmony_ciVector length:  512 bits
5062306a36Sopenharmony_ciPID:    1587
5162306a36Sopenharmony_ciTerminated by signal 15, no error, iterations=9361, signals=1039
5262306a36Sopenharmony_ciVector length:  512 bits
5362306a36Sopenharmony_ciPID:    1589
5462306a36Sopenharmony_ciTerminated by signal 15, no error, iterations=9350, signals=1039
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciIf an error was detected, details of the mismatch will be printed
5862306a36Sopenharmony_ciinstead of "no error".
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciIdeally, the test should be allowed to run for many minutes or hours
6162306a36Sopenharmony_cito maximise test coverage.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ciKVM stress testing
6562306a36Sopenharmony_ci==================
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciTo try to reproduce the bugs that we have been observing, sve-stress
6862306a36Sopenharmony_cishould be run in parallel in two KVM guests, while simultaneously
6962306a36Sopenharmony_cirunning on the host.
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci1) Start 2 guests, using the following command for each:
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci$ lkvm run --console=virtio -pconsole=hvc0 --sve Image
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci(Depending on the hardware GIC implementation, you may also need
7662306a36Sopenharmony_ci--irqchip=gicv3.  New kvmtool defaults to that if appropriate, but I
7762306a36Sopenharmony_cican't remember whether my branch is new enough for that.  Try without
7862306a36Sopenharmony_cithe option first.)
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ciKvmtool occupies the terminal until you kill it (Ctrl+A x),
8162306a36Sopenharmony_cior until the guest terminates.  It is therefore recommended to run
8262306a36Sopenharmony_cieach instance in separate terminal (use screen or ssh etc.)  This
8362306a36Sopenharmony_ciallows multiple guests to be run in parallel while running other
8462306a36Sopenharmony_cicommands on the host.
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ciWithin the guest, the host filesystem is accessible, mounted on /host.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci2) Run the sve-stress on *each* guest with the Vector-Length set to 32:
8962306a36Sopenharmony_ciguest$ ./vlset --inherit 32 ./sve-stress
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci3) Run the sve-stress on the host with the maximum Vector-Length:
9262306a36Sopenharmony_cihost$ ./vlset --inherit --max ./sve-stress
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ciAgain, the test should be allowed to run for many minutes or hours to
9662306a36Sopenharmony_cimaximise test coverage.
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ciIf no error is detected, you will see output from each sve-stress
9962306a36Sopenharmony_ciinstance similar to that illustrated above; otherwise details of the
10062306a36Sopenharmony_ciobserved mismatches will be printed.
101