Date: Wed, 30 Mar 2016 07:25:46 +0000 (UTC) From: Peter Holm <pho@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r297412 - user/pho/stress2/misc Message-ID: <201603300725.u2U7Pk0g048322@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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))
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201603300725.u2U7Pk0g048322>