svn commit: r297412 - user/pho/stress2/misc

Peter Holm pho at FreeBSD.org
Wed Mar 30 07:25:47 UTC 2016


Author: pho
Date: Wed Mar 30 07:25:46 2016
New Revision: 297412
URL: https://svnweb.freebsd.org/changeset/base/297412

Log:
  Added two new tests and updated comment and fixed typo in crossmp8.sh
  
  Sponsored by:	EMC / Isilon Storage Division

Added:
  user/pho/stress2/misc/crossmp6.sh   (contents, props changed)
  user/pho/stress2/misc/crossmp7.sh   (contents, props changed)
Modified:
  user/pho/stress2/misc/crossmp8.sh

Added: user/pho/stress2/misc/crossmp6.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/pho/stress2/misc/crossmp6.sh	Wed Mar 30 07:25:46 2016	(r297412)
@@ -0,0 +1,97 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2015 EMC Corp.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $FreeBSD$
+#
+
+# Copy of crossmp2.sh: NFS test, with lockf(1) added.
+# "panic: vinvalbuf: dirty bufs" seen.
+# https://people.freebsd.org/~pho/stress/log/crossmp6.txt
+# Fixed by r283968.
+
+[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
+
+. ../default.cfg
+
+pgrep -q lockd || { echo "lockd not running."; exit 1; }
+
+mounts=10	# Number of parallel scripts
+
+if [ $# -eq 0 ]; then
+	[ -z "$nfs_export" ] && exit 0
+	ping -c 2 `echo $nfs_export | sed 's/:.*//'` > /dev/null 2>&1 ||
+	    exit 0
+	mount -t nfs -o tcp -o nfsv3 -o retrycnt=1 -o soft,timeout=1 \
+	    -o rw $nfs_export $mntpoint || exit 0
+	umount $mntpoint
+
+	for i in `jot $mounts`; do
+		mp=${mntpoint}$i
+		[ ! -d $mp ] && mkdir $mp
+		mount | grep -qw "$mp" && umount $mp
+	done
+
+	# start the parallel tests
+	for i in `jot $mounts`; do
+		./$0 $i &
+		./$0 find $i &
+	done
+	wait
+	mount -t nfs -o tcp -o nfsv3 -o retrycnt=1 -o soft,timeout=1 \
+	    -o rw $nfs_export $mntpoint || exit 0
+	rm -f /mnt/$0.*
+	umount $mntpoint
+	exit 0
+else
+	if [ $1 = find ]; then
+		for i in `jot 128`; do
+			find ${mntpoint}* -maxdepth 1 -type f > \
+			    /dev/null 2>&1
+			(lockf  -t 10 ${mntpoint}$2/$0.$$.$i sleep 1 &) > \
+			    /dev/null 2>&1
+		done
+		wait
+	else
+
+		# The test: Parallel mount and unmounts
+		for i in `jot 128`; do
+			m=$1
+			mount -t nfs -o tcp -o nfsv3 -o retrycnt=3 \
+			    -o soft -o rw $nfs_export ${mntpoint}$m
+			sleep .5
+			opt=`[ $(( m % 2 )) -eq 0 ] && echo -f`
+			n=0
+			while mount | grep -qw ${mntpoint}$m; do
+				umount $opt ${mntpoint}$m > /dev/null 2>&1
+				n=$((n + 1))
+				[ $n -gt 99 ] && umount -f ${mntpoint}$m > \
+				    /dev/null 2>&1
+				[ $n -gt 100 ] && exit
+			done
+		done
+	fi
+fi

Added: user/pho/stress2/misc/crossmp7.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/pho/stress2/misc/crossmp7.sh	Wed Mar 30 07:25:46 2016	(r297412)
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2015 EMC Corp.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $FreeBSD$
+#
+
+# Parallel mount and umount of zfs file systems.
+
+[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
+[ $((`sysctl -n hw.usermem` / 1024 / 1024 / 1024)) -le 3 ] && exit 0
+
+. ../default.cfg
+
+mounts=15		# Number of parallel scripts
+
+if [ $# -eq 0 ]; then
+	kldstat -v | grep -q zfs.ko  || { kldload zfs.ko; loaded=1; }
+	zpool list | grep -q tank && zpool destroy tank
+
+	u1=$mdstart
+	u2=$((u1 + 1))
+	u3=$((u2 + 1))
+
+	[ -c /dev/md$u1 ] && mdconfig -d -u $u1
+	[ -c /dev/md$u2 ] && mdconfig -d -u $u2
+	[ -c /dev/md$u3 ] && mdconfig -d -u $u3
+
+	mdconfig -s 512m -u $u1
+	mdconfig -s 512m -u $u2
+	mdconfig -s 512m -u $u3
+
+	zpool create tank raidz md$u1 md$u2 md$u3
+
+	for i in `jot $mounts`; do
+		zfs create tank/test$i
+		zfs umount tank/test$i
+	done
+
+	# start the parallel tests
+	touch /tmp/crossmp7.continue
+	for i in `jot $mounts`; do
+		./$0 $i &
+		./$0 find &
+	done
+
+	wait
+
+	zpool destroy tank
+	mdconfig -d -u $u1
+	mdconfig -d -u $u2
+	mdconfig -d -u $u3
+	exit 0
+else
+	if [ $1 = find ]; then
+		while [ -f /tmp/crossmp7.continue ]; do
+			find /tank -type f > /dev/null 2>&1
+		done
+	else
+		# The test: Parallel mount and unmounts
+		m=$1
+		for i in `jot 1024`; do
+			zfs mount     tank/test$m
+			zfs umount -f tank/test$m
+		done 2>/dev/null
+		rm -f /tmp/crossmp7.continue
+	fi
+fi
+[ -n "$loaded" ] && kldunload zfs.ko

Modified: user/pho/stress2/misc/crossmp8.sh
==============================================================================
--- user/pho/stress2/misc/crossmp8.sh	Wed Mar 30 07:19:13 2016	(r297411)
+++ user/pho/stress2/misc/crossmp8.sh	Wed Mar 30 07:25:46 2016	(r297412)
@@ -33,6 +33,7 @@
 # non-directory use of the vnode v_un union.
 # mckusick@ suggested using fifos for this test.
 
+# "panic: mtx_lock() of spin mutex  @ ../kern/vfs_subr.c:512" seen.
 # https://people.freebsd.org/~pho/stress/log/crossmp8.txt
 # Fixed by r291671.
 
@@ -40,7 +41,7 @@
 
 . ../default.cfg
 
-CONT=/tmp/crossmp3.continue
+CONT=/tmp/crossmp8.continue
 N=`sysctl -n hw.ncpu`
 usermem=`sysctl -n hw.usermem`
 [ `swapinfo | wc -l` -eq 1 ] && usermem=$((usermem/100*80))


More information about the svn-src-user mailing list