mbox series

[v2,0/6] kselftest/arm64: Test floating point signal context restore in fp-stress

Message ID 20241107-arm64-fp-stress-irritator-v2-0-c4b9622e36ee@kernel.org
Headers show
Series kselftest/arm64: Test floating point signal context restore in fp-stress | expand

Message

Mark Brown Nov. 7, 2024, 1:39 a.m. UTC
Currently we test signal delivery to the programs run by fp-stress but
our signal handlers simply count the number of signals seen and don't do
anything with the floating point state.  The original fpsimd-test and
sve-test programs had signal handlers called irritators which modify the
live register state, verifying that we restore the signal context on
return, but a combination of misleading comments and code resulted in
them never being used and the equivalent handlers in the other tests
being stubbed or omitted.

Clarify the code, implement effective irritator handlers for the test
programs that can have them and then switch the signals generated by the
fp-stress program over to use the irritators, ensuring that we validate
that we restore the saved signal context properly.

Signed-off-by: Mark Brown <broonie@kernel.org>
---
Changes in v2:
- Change instruction and commit log for corruption of predicat
  registers.
- Link to v1: https://lore.kernel.org/r/20241023-arm64-fp-stress-irritator-v1-0-a51af298d449@kernel.org

---
Mark Brown (6):
      kselftest/arm64: Correct misleading comments on fp-stress irritators
      kselftest/arm64: Remove unused ADRs from irritator handlers
      kselftest/arm64: Corrupt P0 in the irritator when testing SSVE
      kselftest/arm64: Implement irritators for ZA and ZT
      kselftest/arm64: Provide a SIGUSR1 handler in the kernel mode FP stress test
      kselftest/arm64: Test signal handler state modification in fp-stress

 tools/testing/selftests/arm64/fp/fp-stress.c   |  2 +-
 tools/testing/selftests/arm64/fp/fpsimd-test.S |  4 +---
 tools/testing/selftests/arm64/fp/kernel-test.c |  4 ++++
 tools/testing/selftests/arm64/fp/sve-test.S    |  8 +++-----
 tools/testing/selftests/arm64/fp/za-test.S     | 13 ++++---------
 tools/testing/selftests/arm64/fp/zt-test.S     | 13 ++++---------
 6 files changed, 17 insertions(+), 27 deletions(-)
---
base-commit: 8e929cb546ee42c9a61d24fae60605e9e3192354
change-id: 20241023-arm64-fp-stress-irritator-5415fe92adef

Best regards,

Comments

Catalin Marinas Nov. 7, 2024, 6:40 p.m. UTC | #1
On Thu, 07 Nov 2024 01:39:19 +0000, Mark Brown wrote:
> Currently we test signal delivery to the programs run by fp-stress but
> our signal handlers simply count the number of signals seen and don't do
> anything with the floating point state.  The original fpsimd-test and
> sve-test programs had signal handlers called irritators which modify the
> live register state, verifying that we restore the signal context on
> return, but a combination of misleading comments and code resulted in
> them never being used and the equivalent handlers in the other tests
> being stubbed or omitted.
> 
> [...]

Applied to arm64 (for-next/kselftest), thanks!

[1/6] kselftest/arm64: Correct misleading comments on fp-stress irritators
      https://git.kernel.org/arm64/c/94de486e4215
[2/6] kselftest/arm64: Remove unused ADRs from irritator handlers
      https://git.kernel.org/arm64/c/ffca567fef9c
[4/6] kselftest/arm64: Implement irritators for ZA and ZT
      https://git.kernel.org/arm64/c/d65f27d240bb
[5/6] kselftest/arm64: Provide a SIGUSR1 handler in the kernel mode FP stress test
      https://git.kernel.org/arm64/c/7368debf275a
[6/6] kselftest/arm64: Test signal handler state modification in fp-stress
      https://git.kernel.org/arm64/c/ead1c35ce3b3

I did not merge patch 3 in case Mark R has any other comments.
Catalin Marinas Nov. 12, 2024, 4:07 p.m. UTC | #2
On Thu, 07 Nov 2024 01:39:19 +0000, Mark Brown wrote:
> Currently we test signal delivery to the programs run by fp-stress but
> our signal handlers simply count the number of signals seen and don't do
> anything with the floating point state.  The original fpsimd-test and
> sve-test programs had signal handlers called irritators which modify the
> live register state, verifying that we restore the signal context on
> return, but a combination of misleading comments and code resulted in
> them never being used and the equivalent handlers in the other tests
> being stubbed or omitted.
> 
> [...]

Applied to arm64 (for-next/kselftest), thanks!

[3/6] kselftest/arm64: Corrupt P0 in the irritator when testing SSVE
      https://git.kernel.org/arm64/c/3e360ef0c0a1