diff --git a/tools/test/avx_sig/avx_sig.c b/tools/test/avx_sig/avx_sig.c --- a/tools/test/avx_sig/avx_sig.c +++ b/tools/test/avx_sig/avx_sig.c @@ -43,6 +43,11 @@ #define nitems(x) (sizeof((x)) / sizeof((x)[0])) #endif +/* SIGALRM interval in seconds. */ +#ifndef TIMO +#define TIMO 5 +#endif + #if defined(__amd64__) #define NREGS 16 #elif defined(__aarch64__) @@ -91,7 +96,6 @@ atomic_fetch_add_explicit(&sigs, 1, memory_order_relaxed); } -#ifdef SIGINFO static void siginfo_handler(int sig __unused) { @@ -102,8 +106,10 @@ r.ru_nvcsw, r.ru_nivcsw, r.ru_nsignals); } printf("%u SIGUSR1\n", sigs); -} +#ifndef SIGINFO + alarm(TIMO); #endif +} static struct xmm zero_xmm = {}; @@ -195,13 +201,20 @@ struct sigaction sa; int error, i, ncpu; -#ifdef SIGINFO bzero(&sa, sizeof(sa)); +#ifdef SIGINFO sa.sa_handler = siginfo_handler; if (sigaction(SIGINFO, &sa, NULL) == -1) { fprintf(stderr, "sigaction SIGINFO %s\n", strerror(errno)); exit(1); } +#else + sa.sa_handler = siginfo_handler; + if (sigaction(SIGALRM, &sa, NULL) == -1) { + fprintf(stderr, "sigaction SIGALRM %s\n", strerror(errno)); + exit(1); + } + alarm(TIMO); #endif bzero(&sa, sizeof(sa));