git: 723e25f12893 - main - avx_sig: Print statistics by interval enstead of by pressing ^T

From: Dmitry Chagin <dchagin_at_FreeBSD.org>
Date: Mon, 29 May 2023 08:09:29 UTC
The branch main has been updated by dchagin:

URL: https://cgit.FreeBSD.org/src/commit/?id=723e25f12893ea6af0c387b0a5070451cc79e20b

commit 723e25f12893ea6af0c387b0a5070451cc79e20b
Author:     Dmitry Chagin <dchagin@FreeBSD.org>
AuthorDate: 2023-05-29 08:09:17 +0000
Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
CommitDate: 2023-05-29 08:09:17 +0000

    avx_sig: Print statistics by interval enstead of by pressing ^T
    
    Reviewed by:            kib
    Differential Revision:  https://reviews.freebsd.org/D40311
---
 tools/test/avx_sig/avx_sig.c | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/tools/test/avx_sig/avx_sig.c b/tools/test/avx_sig/avx_sig.c
index 2cfc535c3e2f..6c6250f1c25d 100644
--- a/tools/test/avx_sig/avx_sig.c
+++ b/tools/test/avx_sig/avx_sig.c
@@ -36,6 +36,11 @@
 #include <string.h>
 #include <unistd.h>
 
+/* SIGALRM interval in seconds. */
+#ifndef TIMO
+#define	TIMO		5
+#endif
+
 #ifndef __unused
 #define	__unused	__attribute__((__unused__))
 #endif
@@ -79,19 +84,17 @@ sigusr1_handler(int sig __unused, siginfo_t *si __unused, void *m __unused)
 	atomic_fetch_add_explicit(&sigs, 1, memory_order_relaxed);
 }
 
-#ifdef SIGINFO
 static void
-siginfo_handler(int sig __unused)
+sigalrm_handler(int sig __unused)
 {
 	struct rusage r;
 
 	if (getrusage(RUSAGE_SELF, &r) == 0) {
-		printf("%lu vctx %lu nvctx %lu nsigs ",
-		    r.ru_nvcsw, r.ru_nivcsw, r.ru_nsignals);
+		printf("%lu vctx %lu nvctx %lu nsigs %u SIGUSR1\n",
+		    r.ru_nvcsw, r.ru_nivcsw, r.ru_nsignals, sigs);
 	}
-	printf("%u SIGUSR1\n", sigs);
+	alarm(TIMO);
 }
-#endif
 
 static struct xmm zero_xmm = {};
 
@@ -183,14 +186,12 @@ main(void)
 	struct sigaction sa;
 	int error, i, ncpu;
 
-#ifdef SIGINFO
 	bzero(&sa, sizeof(sa));
-	sa.sa_handler = siginfo_handler;
-	if (sigaction(SIGINFO, &sa, NULL) == -1) {
-		fprintf(stderr, "sigaction SIGINFO %s\n", strerror(errno));
+	sa.sa_handler = sigalrm_handler;
+	if (sigaction(SIGALRM, &sa, NULL) == -1) {
+		fprintf(stderr, "sigaction SIGALRM %s\n", strerror(errno));
 		exit(1);
 	}
-#endif
 
 	bzero(&sa, sizeof(sa));
 	sa.sa_sigaction = sigusr1_handler;
@@ -216,6 +217,7 @@ main(void)
 		}
 	}
 
+	alarm(TIMO);
 	for (;;) {
 		for (i = 0; i < ncpu; i++) {
 			my_pause();