Back to home page

OSCL-LXR

 
 

    


0001 This directory contains a mix of tests integrated with kselftest and
0002 standalone stress tests.
0003 
0004 kselftest tests
0005 ===============
0006 
0007 sve-probe-vls - Checks the SVE vector length enumeration interface
0008 sve-ptrace - Checks the SVE ptrace interface
0009 
0010 Running the non-kselftest tests
0011 ===============================
0012 
0013 sve-stress performs an SVE context switch stress test, as described
0014 below.
0015 
0016 (The fpsimd-stress test works the same way; just substitute "fpsimd" for
0017 "sve" in the following commands.)
0018 
0019 
0020 The test runs until killed by the user.
0021 
0022 If no context switch error was detected, you will see output such as
0023 the following:
0024 
0025 $ ./sve-stress
0026 (wait for some time)
0027 ^C
0028 Vector length:        512 bits
0029 PID:    1573
0030 Terminated by signal 15, no error, iterations=9467, signals=1014
0031 Vector length:  512 bits
0032 PID:    1575
0033 Terminated by signal 15, no error, iterations=9448, signals=1028
0034 Vector length:  512 bits
0035 PID:    1577
0036 Terminated by signal 15, no error, iterations=9436, signals=1039
0037 Vector length:  512 bits
0038 PID:    1579
0039 Terminated by signal 15, no error, iterations=9421, signals=1039
0040 Vector length:  512 bits
0041 PID:    1581
0042 Terminated by signal 15, no error, iterations=9403, signals=1039
0043 Vector length:  512 bits
0044 PID:    1583
0045 Terminated by signal 15, no error, iterations=9385, signals=1036
0046 Vector length:  512 bits
0047 PID:    1585
0048 Terminated by signal 15, no error, iterations=9376, signals=1039
0049 Vector length:  512 bits
0050 PID:    1587
0051 Terminated by signal 15, no error, iterations=9361, signals=1039
0052 Vector length:  512 bits
0053 PID:    1589
0054 Terminated by signal 15, no error, iterations=9350, signals=1039
0055 
0056 
0057 If an error was detected, details of the mismatch will be printed
0058 instead of "no error".
0059 
0060 Ideally, the test should be allowed to run for many minutes or hours
0061 to maximise test coverage.
0062 
0063 
0064 KVM stress testing
0065 ==================
0066 
0067 To try to reproduce the bugs that we have been observing, sve-stress
0068 should be run in parallel in two KVM guests, while simultaneously
0069 running on the host.
0070 
0071 1) Start 2 guests, using the following command for each:
0072 
0073 $ lkvm run --console=virtio -pconsole=hvc0 --sve Image
0074 
0075 (Depending on the hardware GIC implementation, you may also need
0076 --irqchip=gicv3.  New kvmtool defaults to that if appropriate, but I
0077 can't remember whether my branch is new enough for that.  Try without
0078 the option first.)
0079 
0080 Kvmtool occupies the terminal until you kill it (Ctrl+A x),
0081 or until the guest terminates.  It is therefore recommended to run
0082 each instance in separate terminal (use screen or ssh etc.)  This
0083 allows multiple guests to be run in parallel while running other
0084 commands on the host.
0085 
0086 Within the guest, the host filesystem is accessible, mounted on /host.
0087 
0088 2) Run the sve-stress on *each* guest with the Vector-Length set to 32:
0089 guest$ ./vlset --inherit 32 ./sve-stress
0090 
0091 3) Run the sve-stress on the host with the maximum Vector-Length:
0092 host$ ./vlset --inherit --max ./sve-stress
0093 
0094 
0095 Again, the test should be allowed to run for many minutes or hours to
0096 maximise test coverage.
0097 
0098 If no error is detected, you will see output from each sve-stress
0099 instance similar to that illustrated above; otherwise details of the
0100 observed mismatches will be printed.