On failure we log the actual and expected value of the register we detect
a mismatch in. For SME one obvious potential source of corruption would be
if we had corrupted SVCR since changes in streaming mode will reset the
register values, log the value to aid in understanding issues.

Signed-off-by: Mark Brown <[email protected]>
---
 tools/testing/selftests/arm64/fp/sve-test.S | 10 ++++++++++
 tools/testing/selftests/arm64/fp/za-test.S  |  6 ++++++
 tools/testing/selftests/arm64/fp/zt-test.S  |  5 +++++
 3 files changed, 21 insertions(+)

diff --git a/tools/testing/selftests/arm64/fp/sve-test.S 
b/tools/testing/selftests/arm64/fp/sve-test.S
index 547d077e3517..fff60e2a25ad 100644
--- a/tools/testing/selftests/arm64/fp/sve-test.S
+++ b/tools/testing/selftests/arm64/fp/sve-test.S
@@ -515,6 +515,10 @@ function barf
        mov     x11, x1 // actual data
        mov     x12, x2 // data size
 
+#ifdef SSVE
+       mrs     x13, S3_3_C4_C2_2
+#endif
+
        puts    "Mismatch: PID="
        mov     x0, x20
        bl      putdec
@@ -534,6 +538,12 @@ function barf
        bl      dumphex
        puts    "]\n"
 
+#ifdef SSVE
+       puts    "\tSVCR: "
+       mov     x0, x13
+       bl      putdecn
+#endif
+
        mov     x8, #__NR_getpid
        svc     #0
 // fpsimd.c acitivty log dump hack
diff --git a/tools/testing/selftests/arm64/fp/za-test.S 
b/tools/testing/selftests/arm64/fp/za-test.S
index 9dcd70911397..095b45531640 100644
--- a/tools/testing/selftests/arm64/fp/za-test.S
+++ b/tools/testing/selftests/arm64/fp/za-test.S
@@ -333,6 +333,9 @@ function barf
 //     mov     w8, #__NR_exit
 //     svc     #0
 // end hack
+
+       mrs     x13, S3_3_C4_C2_2
+
        smstop
        mov     x10, x0 // expected data
        mov     x11, x1 // actual data
@@ -356,6 +359,9 @@ function barf
        mov     x1, x12
        bl      dumphex
        puts    "]\n"
+       puts    "\tSVCR: "
+       mov     x0, x13
+       bl      putdecn
 
        mov     x8, #__NR_getpid
        svc     #0
diff --git a/tools/testing/selftests/arm64/fp/zt-test.S 
b/tools/testing/selftests/arm64/fp/zt-test.S
index d63286397638..b5c81e81a379 100644
--- a/tools/testing/selftests/arm64/fp/zt-test.S
+++ b/tools/testing/selftests/arm64/fp/zt-test.S
@@ -267,6 +267,8 @@ function barf
 //     mov     w8, #__NR_exit
 //     svc     #0
 // end hack
+
+       mrs     x13, S3_3_C4_C2_2
        smstop
        mov     x10, x0 // expected data
        mov     x11, x1 // actual data
@@ -287,6 +289,9 @@ function barf
        mov     x1, x12
        bl      dumphex
        puts    "]\n"
+       puts    "\tSVCR: "
+       mov     x0, x13
+       bl      putdecn
 
        mov     x8, #__NR_getpid
        svc     #0

---
base-commit: 2cc14f52aeb78ce3f29677c2de1f06c0e91471ab
change-id: 20231204-arm64-kselftest-log-svcr-372a210520ae

Best regards,
-- 
Mark Brown <[email protected]>


Reply via email to