Message ID | 20241023-arm64-fp-stress-irritator-v1-1-a51af298d449@kernel.org |
---|---|
State | Superseded |
Headers | show |
Series | kselftest/arm64: Test floating point signal context restore in fp-stress | expand |
On Wed, Oct 23, 2024 at 09:38:29PM +0100, Mark Brown wrote: > The comments in the handlers for the irritator signal in the test threads > for fp-stress suggest that the irritator will corrupt the register state > observed by the main thread but this is not the case, instead the FPSIMD > and SVE irritators (which are the only ones that are implemented) modify > the current register state which is expected to be overwritten on return > from the handler by the saved register state. Update the comment to reflect > what the handler is actually doing. > > Signed-off-by: Mark Brown <broonie@kernel.org> Acked-by: Mark Rutland <mark.rutland@arm.com> Mark. > --- > tools/testing/selftests/arm64/fp/fpsimd-test.S | 3 +-- > tools/testing/selftests/arm64/fp/sve-test.S | 3 +-- > 2 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/tools/testing/selftests/arm64/fp/fpsimd-test.S b/tools/testing/selftests/arm64/fp/fpsimd-test.S > index 8b960d01ed2e0ef516893b68794078ddf8c01e1f..bdfb7cf2e4ec175fda62c1c2f38c6ebb1a1c48bf 100644 > --- a/tools/testing/selftests/arm64/fp/fpsimd-test.S > +++ b/tools/testing/selftests/arm64/fp/fpsimd-test.S > @@ -134,8 +134,7 @@ function check_vreg > b memcmp > endfunction > > -// Any SVE register modified here can cause corruption in the main > -// thread -- but *only* the registers modified here. > +// Modify live register state, the signal return will undo our changes > function irritator_handler > // Increment the irritation signal count (x23): > ldr x0, [x2, #ucontext_regs + 8 * 23] > diff --git a/tools/testing/selftests/arm64/fp/sve-test.S b/tools/testing/selftests/arm64/fp/sve-test.S > index fff60e2a25addfd4850ef71aa3cf6535ac880ffd..e3c0d585684df29723a49265f3df6d23817498c7 100644 > --- a/tools/testing/selftests/arm64/fp/sve-test.S > +++ b/tools/testing/selftests/arm64/fp/sve-test.S > @@ -291,8 +291,7 @@ function check_ffr > #endif > endfunction > > -// Any SVE register modified here can cause corruption in the main > -// thread -- but *only* the registers modified here. > +// Modify live register state, the signal return will undo our changes > function irritator_handler > // Increment the irritation signal count (x23): > ldr x0, [x2, #ucontext_regs + 8 * 23] > > -- > 2.39.2 >
diff --git a/tools/testing/selftests/arm64/fp/fpsimd-test.S b/tools/testing/selftests/arm64/fp/fpsimd-test.S index 8b960d01ed2e0ef516893b68794078ddf8c01e1f..bdfb7cf2e4ec175fda62c1c2f38c6ebb1a1c48bf 100644 --- a/tools/testing/selftests/arm64/fp/fpsimd-test.S +++ b/tools/testing/selftests/arm64/fp/fpsimd-test.S @@ -134,8 +134,7 @@ function check_vreg b memcmp endfunction -// Any SVE register modified here can cause corruption in the main -// thread -- but *only* the registers modified here. +// Modify live register state, the signal return will undo our changes function irritator_handler // Increment the irritation signal count (x23): ldr x0, [x2, #ucontext_regs + 8 * 23] diff --git a/tools/testing/selftests/arm64/fp/sve-test.S b/tools/testing/selftests/arm64/fp/sve-test.S index fff60e2a25addfd4850ef71aa3cf6535ac880ffd..e3c0d585684df29723a49265f3df6d23817498c7 100644 --- a/tools/testing/selftests/arm64/fp/sve-test.S +++ b/tools/testing/selftests/arm64/fp/sve-test.S @@ -291,8 +291,7 @@ function check_ffr #endif endfunction -// Any SVE register modified here can cause corruption in the main -// thread -- but *only* the registers modified here. +// Modify live register state, the signal return will undo our changes function irritator_handler // Increment the irritation signal count (x23): ldr x0, [x2, #ucontext_regs + 8 * 23]
The comments in the handlers for the irritator signal in the test threads for fp-stress suggest that the irritator will corrupt the register state observed by the main thread but this is not the case, instead the FPSIMD and SVE irritators (which are the only ones that are implemented) modify the current register state which is expected to be overwritten on return from the handler by the saved register state. Update the comment to reflect what the handler is actually doing. Signed-off-by: Mark Brown <broonie@kernel.org> --- tools/testing/selftests/arm64/fp/fpsimd-test.S | 3 +-- tools/testing/selftests/arm64/fp/sve-test.S | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-)