kselftest/arm64: Install signal handlers before output in FP stress tests
authorMark Brown <broonie@kernel.org>
Tue, 6 Sep 2022 22:00:56 +0000 (23:00 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 7 Sep 2022 13:25:31 +0000 (14:25 +0100)
To interface more robustly with other processes install the signal handers
in the floating point stress tests before we produce any output, this
means that a parent process can know that if it has seen any output from
the test then the test is ready to handle incoming signals.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220906220056.820295-1-broonie@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
tools/testing/selftests/arm64/fp/fpsimd-test.S
tools/testing/selftests/arm64/fp/sve-test.S
tools/testing/selftests/arm64/fp/za-test.S

index f0f9219..918d048 100644 (file)
@@ -216,6 +216,30 @@ endfunction
 .globl _start
 function _start
 _start:
+       mov     x23, #0         // signal count
+
+       mov     w0, #SIGINT
+       adr     x1, terminate_handler
+       mov     w2, #SA_SIGINFO
+       bl      setsignal
+
+       mov     w0, #SIGTERM
+       adr     x1, terminate_handler
+       mov     w2, #SA_SIGINFO
+       bl      setsignal
+
+       mov     w0, #SIGUSR1
+       adr     x1, irritator_handler
+       mov     w2, #SA_SIGINFO
+       orr     w2, w2, #SA_NODEFER
+       bl      setsignal
+
+       mov     w0, #SIGUSR2
+       adr     x1, tickle_handler
+       mov     w2, #SA_SIGINFO
+       orr     w2, w2, #SA_NODEFER
+       bl      setsignal
+
        // Sanity-check and report the vector length
 
        mov     x19, #128
@@ -246,30 +270,6 @@ _start:
        mov     x0, x20
        bl      putdecn
 
-       mov     x23, #0         // Irritation signal count
-
-       mov     w0, #SIGINT
-       adr     x1, terminate_handler
-       mov     w2, #SA_SIGINFO
-       bl      setsignal
-
-       mov     w0, #SIGTERM
-       adr     x1, terminate_handler
-       mov     w2, #SA_SIGINFO
-       bl      setsignal
-
-       mov     w0, #SIGUSR1
-       adr     x1, irritator_handler
-       mov     w2, #SA_SIGINFO
-       orr     w2, w2, #SA_NODEFER
-       bl      setsignal
-
-       mov     w0, #SIGUSR2
-       adr     x1, tickle_handler
-       mov     w2, #SA_SIGINFO
-       orr     w2, w2, #SA_NODEFER
-       bl      setsignal
-
        mov     x22, #0         // generation number, increments per iteration
 .Ltest_loop:
 
index 79c56e6..2a18cb4 100644 (file)
@@ -379,6 +379,30 @@ endfunction
 .globl _start
 function _start
 _start:
+       mov     x23, #0         // Irritation signal count
+
+       mov     w0, #SIGINT
+       adr     x1, terminate_handler
+       mov     w2, #SA_SIGINFO
+       bl      setsignal
+
+       mov     w0, #SIGTERM
+       adr     x1, terminate_handler
+       mov     w2, #SA_SIGINFO
+       bl      setsignal
+
+       mov     w0, #SIGUSR1
+       adr     x1, irritator_handler
+       mov     w2, #SA_SIGINFO
+       orr     w2, w2, #SA_NODEFER
+       bl      setsignal
+
+       mov     w0, #SIGUSR2
+       adr     x1, tickle_handler
+       mov     w2, #SA_SIGINFO
+       orr     w2, w2, #SA_NODEFER
+       bl      setsignal
+
 #ifdef SSVE
        puts    "Streaming mode "
        smstart_sm
@@ -414,30 +438,6 @@ _start:
        mov     x0, x20
        bl      putdecn
 
-       mov     x23, #0         // Irritation signal count
-
-       mov     w0, #SIGINT
-       adr     x1, terminate_handler
-       mov     w2, #SA_SIGINFO
-       bl      setsignal
-
-       mov     w0, #SIGTERM
-       adr     x1, terminate_handler
-       mov     w2, #SA_SIGINFO
-       bl      setsignal
-
-       mov     w0, #SIGUSR1
-       adr     x1, irritator_handler
-       mov     w2, #SA_SIGINFO
-       orr     w2, w2, #SA_NODEFER
-       bl      setsignal
-
-       mov     w0, #SIGUSR2
-       adr     x1, tickle_handler
-       mov     w2, #SA_SIGINFO
-       orr     w2, w2, #SA_NODEFER
-       bl      setsignal
-
 #ifdef SSVE
        smstart_sm              // syscalls will have exited streaming mode
 #endif
index 9018391..53c54af 100644 (file)
@@ -232,6 +232,30 @@ endfunction
 .globl _start
 function _start
 _start:
+       mov     x23, #0         // signal count
+
+       mov     w0, #SIGINT
+       adr     x1, terminate_handler
+       mov     w2, #SA_SIGINFO
+       bl      setsignal
+
+       mov     w0, #SIGTERM
+       adr     x1, terminate_handler
+       mov     w2, #SA_SIGINFO
+       bl      setsignal
+
+       mov     w0, #SIGUSR1
+       adr     x1, irritator_handler
+       mov     w2, #SA_SIGINFO
+       orr     w2, w2, #SA_NODEFER
+       bl      setsignal
+
+       mov     w0, #SIGUSR2
+       adr     x1, tickle_handler
+       mov     w2, #SA_SIGINFO
+       orr     w2, w2, #SA_NODEFER
+       bl      setsignal
+
        puts    "Streaming mode "
        smstart_za
 
@@ -264,30 +288,6 @@ _start:
        mov     x0, x20
        bl      putdecn
 
-       mov     x23, #0         // Irritation signal count
-
-       mov     w0, #SIGINT
-       adr     x1, terminate_handler
-       mov     w2, #SA_SIGINFO
-       bl      setsignal
-
-       mov     w0, #SIGTERM
-       adr     x1, terminate_handler
-       mov     w2, #SA_SIGINFO
-       bl      setsignal
-
-       mov     w0, #SIGUSR1
-       adr     x1, irritator_handler
-       mov     w2, #SA_SIGINFO
-       orr     w2, w2, #SA_NODEFER
-       bl      setsignal
-
-       mov     w0, #SIGUSR2
-       adr     x1, tickle_handler
-       mov     w2, #SA_SIGINFO
-       orr     w2, w2, #SA_NODEFER
-       bl      setsignal
-
        mov     x22, #0         // generation number, increments per iteration
 .Ltest_loop:
        rdsvl   0, 8