Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Sep 2025 09:21:33 GMT
From:      Peter Holm <pho@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: da20d88599d5 - main - stress2: Added two new fdescfs test scenarios
Message-ID:  <202509160921.58G9LXoI045227@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by pho:

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

commit da20d88599d52667c9cd422632302cf5e2e19938
Author:     Peter Holm <pho@FreeBSD.org>
AuthorDate: 2025-09-16 09:21:04 +0000
Commit:     Peter Holm <pho@FreeBSD.org>
CommitDate: 2025-09-16 09:21:04 +0000

    stress2: Added two new fdescfs test scenarios
---
 tools/test/stress2/misc/fdescfs2.sh | 44 ++++++++++++++++++++++++++++++++
 tools/test/stress2/misc/fdescfs3.sh | 51 +++++++++++++++++++++++++++++++++++++
 2 files changed, 95 insertions(+)

diff --git a/tools/test/stress2/misc/fdescfs2.sh b/tools/test/stress2/misc/fdescfs2.sh
new file mode 100755
index 000000000000..21b82dcddd5e
--- /dev/null
+++ b/tools/test/stress2/misc/fdescfs2.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2025 Peter Holm <pho@FreeBSD.org>
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+
+# Test scenario description by: Kyle Evans <kevans@FreeBSD.org>
+
+# "panic: mtx_lock() of destroyed mutex 0xffffffff83717540 @ /usr/src/sys/fs/fdescfs/fdesc_vnops.c:151" seen
+
+[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
+. ../default.cfg
+
+set -u
+
+kldstat | grep -q fdescfs.ko && { kldunload fdescfs.ko && wasloaded=1; }
+while true; do
+	mount | grep -q "on $mntpoint " ||
+		mount -t fdescfs dummy $mntpoint || continue
+	ls $mntpoint > /dev/null
+	if mount | grep -q "on $mntpoint "; then
+		if ! umount $mntpoint; then
+			umount -f $mntpoint || break
+		fi
+	fi
+done > /dev/null 2>&1 &
+
+start=`date +%s`
+while [ $((`date +%s` - start)) -lt 10 ]; do
+	kldstat | grep -q fdescfs.ko &&
+		kldunload fdescfs.ko 2>/dev/null
+	sleep .1
+	kldstat | grep -q fdescfs.ko ||
+		kldload fdescfs.ko
+done
+kill %1
+wait
+mount | grep -q "on $mntpoint " && umount $mntpoint
+sleep .1
+set +u
+[ $wasloaded ] || kldunload fdescfs.ko
+exit 0
diff --git a/tools/test/stress2/misc/fdescfs3.sh b/tools/test/stress2/misc/fdescfs3.sh
new file mode 100755
index 000000000000..eb24a6eac085
--- /dev/null
+++ b/tools/test/stress2/misc/fdescfs3.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2025 Peter Holm <pho@FreeBSD.org>
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+
+[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
+
+. ../default.cfg
+
+mounts=15		# Number of parallel scripts
+mdstart=$mdstart	# Use md unit numbers from this point
+
+if [ $# -eq 0 ]; then
+	for i in `jot $mounts`; do
+		m=$(( i + mdstart - 1 ))
+		[ ! -d ${mntpoint}$m ] && mkdir ${mntpoint}$m
+		mount | grep "$mntpoint" | grep -q md$m && umount ${mntpoint}$m
+	done
+	../testcases/swap/swap -t 2m -i 20 &
+
+	# start the parallel tests
+	touch /tmp/$0
+	for i in `jot $mounts`; do
+		m=$(( i + mdstart - 1 ))
+		./$0 $m &
+		./$0 find $m > /dev/null 2>&1 &
+	done
+	wait
+else
+	if [ $1 = find ]; then
+		while [ -r /tmp/$0 ]; do
+			ls -lR ${mntpoint}*
+		done
+	else
+
+		# The test: Parallel mount and unmounts
+		start=`date +%s`
+		while [ $((`date +%s` - start)) -lt 120 ]; do
+			m=$1
+			mount -t fdescfs null ${mntpoint}$m
+			while mount | grep -qw $mntpoint$m; do
+				opt=$([ $((`date '+%s'` % 2)) -eq 0 ] && echo "-f")
+				umount $opt ${mntpoint}$m > /dev/null 2>&1
+			done
+		done
+		rm -f /tmp/$0
+	fi
+fi



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202509160921.58G9LXoI045227>