016d659e | 12-Nov-2024 |
Catalin Marinas <catalin.marinas@arm.com> |
kselftest/arm64: Fix missing printf() argument in gcs/gcs-stress.c
Compiling the child_cleanup() function results in:
gcs-stress.c: In function ‘child_cleanup’: gcs-stress.c:266:75: warning: format
kselftest/arm64: Fix missing printf() argument in gcs/gcs-stress.c
Compiling the child_cleanup() function results in:
gcs-stress.c: In function ‘child_cleanup’: gcs-stress.c:266:75: warning: format ‘%d’ expects a matching ‘int’ argument [-Wformat=] 266 | ksft_print_msg("%s: Exited due to signal %d\n", | ~^ | | | int
Add the missing child->exit_signal argument.
Fixes: 05e6cfff58c4 ("kselftest/arm64: Add a GCS stress test") Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
show more ...
|
9b9be782 | 11-Oct-2024 |
Mark Brown <broonie@kernel.org> |
kselftest/arm64: Ensure stable names for GCS stress test results
The GCS stress test program currently uses the PID of the threads it creates in the test names it reports, resulting in unstable test
kselftest/arm64: Ensure stable names for GCS stress test results
The GCS stress test program currently uses the PID of the threads it creates in the test names it reports, resulting in unstable test names between runs. Fix this by using a thread number instead.
Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20241011-arm64-gcs-stress-stable-name-v1-1-4950f226218e@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
show more ...
|
48f8d9ce | 05-Oct-2024 |
Mark Brown <broonie@kernel.org> |
kselftest/arm64: Validate that GCS push and write permissions work
Add trivial assembly programs which give themselves the appropriate permissions and then execute GCSPUSHM and GCSSTR, they will rep
kselftest/arm64: Validate that GCS push and write permissions work
Add trivial assembly programs which give themselves the appropriate permissions and then execute GCSPUSHM and GCSSTR, they will report errors by generating signals on the non-permitted instructions. Not using libc minimises the interaction with any policy set for the system but we skip on failure to get the permissions in case the system is locked down to make them inaccessible.
Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20241005-arm64-gcs-test-flags-v1-1-03cb9786c5cd@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
show more ...
|
05e6cfff | 02-Oct-2024 |
Mark Brown <broonie@kernel.org> |
kselftest/arm64: Add a GCS stress test
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 a
kselftest/arm64: Add a GCS stress test
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> Tested-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20241001-arm64-gcs-v13-38-222b78d87eee@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
show more ...
|
58d69a3e | 02-Oct-2024 |
Mark Brown <broonie@kernel.org> |
kselftest/arm64: Add test coverage for GCS mode locking
Verify that we can lock individual GCS mode bits, that other modes aren't affected and as a side effect also that every combination of modes c
kselftest/arm64: Add test coverage for GCS mode locking
Verify that we can lock individual GCS mode bits, that other modes aren't affected and as a side effect also that every combination of modes can be enabled.
Normally the inability to reenable GCS after disabling it would be an issue with testing but fortunately the kselftest_harness runs each test within a fork()ed child. This can be inconvenient for some kinds of testing but here it means that each test is in a separate thread and therefore won't be affected by other tests in the suite.
Once we get toolchains with support for enabling GCS by default we will need to take care to not do that in the build system but there are no such toolchains yet so it is not yet an issue.
Reviewed-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org> Tested-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20241001-arm64-gcs-v13-36-222b78d87eee@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
show more ...
|
a505a52b | 02-Oct-2024 |
Mark Brown <broonie@kernel.org> |
kselftest/arm64: Add a GCS test program built with the system libc
There are things like threads which nolibc struggles with which we want to add coverage for, and the ABI allows us to test most of
kselftest/arm64: Add a GCS test program built with the system libc
There are things like threads which nolibc struggles with which we want to add coverage for, and the ABI allows us to test most of these even if libc itself does not understand GCS so add a test application built using the system libc.
Reviewed-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org> Tested-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20241001-arm64-gcs-v13-35-222b78d87eee@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
show more ...
|