Mark Brown broonie@kernel.org writes:
Add a stress test which runs one more process than we have CPUs spinning through a very recursive function with frequent syscalls immediately prior to return and signals being injected every 100ms. The goal is to flag up any scheduling related issues, for example failure to ensure that barriers are inserted when moving a GCS using task to another CPU. The test runs for a configurable amount of time, defaulting to 10 seconds.
Reviewed-by: Thiago Jung Bauermann thiago.bauermann@linaro.org Signed-off-by: Mark Brown broonie@kernel.org
tools/testing/selftests/arm64/gcs/.gitignore | 2 + tools/testing/selftests/arm64/gcs/Makefile | 6 +- tools/testing/selftests/arm64/gcs/asm-offsets.h | 0 .../selftests/arm64/gcs/gcs-stress-thread.S | 311 ++++++++++++ tools/testing/selftests/arm64/gcs/gcs-stress.c | 530 +++++++++++++++++++++ 5 files changed, 848 insertions(+), 1 deletion(-)
Unfortunately, gcs-stress still fails on my FVP setup. I tested on an arm64 defconfig with and without THP enabled with, the same results:
$ sudo ./run_kselftest.sh -t arm64:gcs-stress -o 600 TAP version 13 1..1 # overriding timeout to 600 # selftests: arm64: gcs-stress # TAP version 13 # 1..9 # # 8 CPUs, 9 GCS threads # # Will run for 10s # # Started Thread-4870 # # Started Thread-4871 # # Started Thread-4872 # # Started Thread-4873 # # Started Thread-4874 # # Started Thread-4875 # # Started Thread-4876 # # Started Thread-4877 # # Started Thread-4878 # # Waiting for 9 children # # Waiting for 9 children # # Thread-4870: Failed to enable GCS # # Thread-4871: Failed to enable GCS # # Thread-4872: Failed to enable GCS # # Thread-4873: Failed to enable GCS # # Thread-4876: Failed to enable GCS # # Thread-4875: Failed to enable GCS # # Thread-4874: Failed to enable GCS # # Thread-4878: Failed to enable GCS # # Thread-4877: Failed to enable GCS # # Sending signals, timeout remaining: 10000ms # # Sending signals, timeout remaining: 9900ms # # Sending signals, timeout remaining: 9800ms ⋮ # # Sending signals, timeout remaining: 300ms # # Sending signals, timeout remaining: 200ms # # Sending signals, timeout remaining: 100ms # # Finishing up... # # Thread-4870 exited with error code 255 # not ok 1 Thread-4870 # # Thread-4871 exited with error code 255 # not ok 2 Thread-4871 # # Thread-4872 exited with error code 255 # not ok 3 Thread-4872 # # Thread-4873 exited with error code 255 # not ok 4 Thread-4873 # # Thread-4874 exited with error code 255 # not ok 5 Thread-4874 # # Thread-4875 exited with error code 255 # not ok 6 Thread-4875 # # Thread-4876 exited with error code 255 # not ok 7 Thread-4876 # # Thread-4877 exited with error code 255 # not ok 8 Thread-4877 # # Thread-4878 exited with error code 255 # not ok 9 Thread-4878 # # Totals: pass:0 fail:9 xfail:0 xpass:0 skip:0 error:0 ok 1 selftests: arm64: gcs-stress bauermann@armv94:/var/tmp/selftests-arm64-gcs-v10$ echo $? 0