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