Files
apfstests/113
T
Jeff Moyer b0a1d57ba3 113: add testing for O_DIRECT + O_SYNC
This patch adds a couple more aio-stress runs to test 113.  The first
simply adds -S, to test out AIO+DIO+O_SYNC.  The second adds -S and -o
2, which directs aio-stress to only perform the random write test.
These two tests helped identify several bugs in ext4.

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
2012-03-02 14:17:07 -06:00

110 lines
2.6 KiB
Bash
Executable File

#! /bin/bash
# FS QA Test No. 113
#
# aio-stress
#
#-----------------------------------------------------------------------
# Copyright (c) 2005 Silicon Graphics, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it would be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#-----------------------------------------------------------------------
#
# creator
owner=nathans@sgi.com
seq=`basename $0`
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=0 # success is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_cleanup()
{
cd /
rm -f $testdir/aio-stress.$$.*
_cleanup_testdir
}
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
_do_test()
{
_n="$1"
_param="$2"
_count="$3"
_nproc="$4"
_files="$testdir/aiostress.$$.$_n"
__proc=$_nproc
[ $__proc -gt 1 ] && _param="-t $__proc $_param"
while [ $__proc -gt 1 ]; do
_files="$_files $testdir/aiostress.$$.$_n.$__proc"
let __proc=$__proc-1
done
rm -f $_files
echo ""
echo "-----------------------------------------------"
echo "aio-stress.$_n : $_param"
echo "-----------------------------------------------"
if ! $here/ltp/aio-stress $_param $AIOSTRESS_AVOID -I $_count $_files >>$tmp.out 2>&1
then
echo " aio-stress (count=$_count) returned $?"
cat $tmp.out
status=1
exit
fi
_check_test_fs
rm -f $_files
}
# real QA test starts here
_supported_fs generic
_supported_os Linux
[ -x $here/ltp/aio-stress ] || _notrun "aio-stress not built for this platform"
_setup_testdir
echo "brevity is wit..."
count=1000
procs=20
_check_test_fs
# the default
_do_test 1 "-s 120m" $count 1
# and the default with multiprocess
_do_test 2 "-s 10m" $count $procs
# as above, but now using direct IO
_do_test 3 "-s 10m -O" $count $procs
# dio with O_SYNC and unwritten extent conversion
_do_test 4 "-s 10m -O -S" $count $procs
# random dio writes with O_SYNC and unwritten extent conversion
_do_test 5 "-s 10m -O -S -o 2" $count $procs
exit