git: 8616f8aff1f0 - main - stress2: Pass program exit code to shell script exit. Do not loop forever in test program
Peter Holm
pho at FreeBSD.org
Wed Jul 14 06:01:03 UTC 2021
The branch main has been updated by pho:
URL: https://cgit.FreeBSD.org/src/commit/?id=8616f8aff1f0575f2895cf092aa013d38be274a9
commit 8616f8aff1f0575f2895cf092aa013d38be274a9
Author: Peter Holm <pho at FreeBSD.org>
AuthorDate: 2021-07-14 05:59:48 +0000
Commit: Peter Holm <pho at FreeBSD.org>
CommitDate: 2021-07-14 05:59:48 +0000
stress2: Pass program exit code to shell script exit. Do not loop forever in test program
---
tools/test/stress2/misc/radix.sh | 27 ++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/tools/test/stress2/misc/radix.sh b/tools/test/stress2/misc/radix.sh
index 4bca761c08b9..9107f528deb9 100755
--- a/tools/test/stress2/misc/radix.sh
+++ b/tools/test/stress2/misc/radix.sh
@@ -31,10 +31,13 @@
# "panic: default pager with handle" seen with WiP kernel code.
# https://people.freebsd.org/~pho/stress/log/kostik1243.txt
+# "panic: ASan: Invalid access, 8-byte read at ..., MallocRedZone(fb)" seen
+
[ `sysctl vm.swap_total | sed 's/.* //'` -eq 0 ] && exit 0
. ../default.cfg
+log=/tmp/radix.log
dir=/tmp
odir=`pwd`
cd $dir
@@ -49,8 +52,9 @@ usermem=`sysctl hw.usermem | sed 's/.* //'`
pagesize=`pagesize`
start=`date +%s`
while true; do
- /tmp/radix $parallel > /tmp/radix.log 2>&1
- used=`awk '{print $4}' < /tmp/radix.log`
+ /tmp/radix $parallel > $log; s=$?
+ [ $s -ne 0 ] && cat $log
+ used=`awk '{print $4}' < $log`
[ -z "$used" ] && break
[ $((`date +%s` - start)) -gt 300 ] && break
[ $used -gt $((usermem / pagesize)) ] && break
@@ -61,8 +65,8 @@ while true; do
done
cat /tmp/radix.log
-rm -f /tmp/radix #/tmp/radix.log
-exit
+rm -f /tmp/radix $log
+exit $s
EOF
/*
@@ -169,7 +173,7 @@ handler(int s __unused)
static void
ihandler(int s __unused)
{
- _exit(0);
+ _exit(1);
}
static int
@@ -191,7 +195,7 @@ test(void)
{
state_t state;
off_t offset;
- int fd;
+ int fd, i;
signal(SIGHUP, ihandler);
for (;;) {
@@ -214,7 +218,7 @@ test(void)
if (write(fds[1], &pgs, sizeof(pgs)) != sizeof(pgs))
err(1, "ewrite pipe");
kill(getppid(), SIGHUP);
- for (;;)
+ for (i = 0; i < 180; i++)
sleep(1);
close(fd);
@@ -233,6 +237,7 @@ main(int argc, char **argv)
parallel = atoi(argv[1]);
ps = getpagesize();
+ signal(SIGALRM, ihandler);
signal(SIGHUP, handler);
unlink("rendezvous");
pids = malloc(parallel * sizeof(pid_t));
@@ -246,10 +251,10 @@ main(int argc, char **argv)
if ((rfd = open("rendezvous", O_CREAT, 0644)) == -1)
err(1, "open()");
close(rfd);
- alarm(60);
- while (s1 != parallel)
+ alarm(300);
+ while (s1 != parallel) {
usleep(10000);
- alarm(0);
+ }
r2 = radix();
pages = 0;
for (i = 0; i < parallel; i++) {
@@ -258,7 +263,7 @@ main(int argc, char **argv)
err(1, "read pipe");
pages += pgs;
}
- fprintf(stderr, "A total of %jd pages (%.1f MB) touched, %d"
+ fprintf(stdout, "A total of %jd pages (%.1f MB) touched, %d"
" RADIX nodes used, p/r = %.1f, parallel = %d.\n",
pages, pages * ps / 1024. / 1024, r2 - r1,
pages / (r2 - r1 + 0.), parallel);
More information about the dev-commits-src-all
mailing list