From: fsgqa Date: Fri, 9 Jul 2004 04:20:17 +0000 (+0000) Subject: Add realtime IO path testing. X-Git-Tag: v1.1.0~813 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=f01e7f872b95a3df4e546231fa304a237c524203;p=users%2Fhch%2Fxfstests-dev.git Add realtime IO path testing. --- diff --git a/090 b/090 new file mode 100755 index 000000000..2b64d8d71 --- /dev/null +++ b/090 @@ -0,0 +1,143 @@ +#! /bin/sh +# FS QA Test No. 090 +# +# Exercise IO on the realtime device (direct, buffered, mmapd) +# +#----------------------------------------------------------------------- +# Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of version 2 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. +# +# Further, this software is distributed without any warranty that it is +# free of the rightful claim of any third person regarding infringement +# or the like. Any license provided herein, whether implied or +# otherwise, applies only to this software file. Patent licenses, if +# any, provided herein do not apply to combinations of this program with +# other software, or any other product whatsoever. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write the Free Software Foundation, Inc., 59 +# Temple Place - Suite 330, Boston MA 02111-1307, USA. +# +# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, +# Mountain View, CA 94043, or: +# +# http://www.sgi.com +# +# For further information regarding this notice, see: +# +# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ +#----------------------------------------------------------------------- +# +# creator +owner=nathans@sgi.com + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +# real QA test starts here +_supported_fs xfs +_supported_os Linux +_require_realtime +_require_scratch + +_filter_io() +{ + sed -e '/.* ops; /d' +} + +_create_scratch() +{ + echo "*** mkfs" + if ! _scratch_mkfs_xfs >$tmp.out 2>&1 + then + cat $tmp.out + echo "failed to mkfs $SCRATCH_DEV" + exit 1 + fi + + echo "*** mount" + if ! _scratch_mount + then + echo "failed to mount $SCRATCH_DEV" + exit 1 + fi +} + +realtime_direct_aligned() +{ + echo direct realtime writes, 4 files, 2m each, increasing offsets. + for i in 0 1 2 3 + do + xfs_io -fdxR $SCRATCH_MNT/rt-direct-$1-$i \ + -c "extsize $1" -c "pwrite ${i}m 1m" \ + | _filter_io + done + _check_scratch_fs +} + +realtime_buffer_aligned() +{ + echo buffered realtime writes, 4 files, 2m each, increasing offsets. + for i in 0 1 2 3 + do + xfs_io -fxR $SCRATCH_MNT/rt-buffera-$1-$i \ + -c "extsize $1" -c "pwrite ${i}m 1m" \ + | _filter_io + done + _check_scratch_fs +} + +realtime_buffer_unaligned() +{ + echo buffered realtime writes, 4 files, unaligned byte offsets/sizes. + for i in 0 1 2 3 + do + xfs_io -fxR $SCRATCH_MNT/rt-bufferu-$1-$i \ + -c "extsize $1" -c "pwrite $i 1" \ + | _filter_io + done + _check_scratch_fs +} + +realtime_mmap_unaligned() +{ + # mmap realtime writes, 4 files, unaligned byte offsets/sizes. + for i in 0 1 2 3 + do + xfs_io -fxR $SCRATCH_MNT/rt-mmap-$1-$i \ + -c "extsize $1" -c "pwrite $i 1" \ + | _filter_io + done + _check_scratch_fs +} + + +_create_scratch + +realtime_direct_aligned 0 +#realtime_direct_aligned 1m +realtime_buffer_aligned 0 +#realtime_buffer_aligned 1m +realtime_buffer_unaligned 0 +#realtime_buffer_unaligned 1m +#realtime_mmap_unaligned 0 +#realtime_mmap_unaligned 1m + +status=0 +exit diff --git a/090.out b/090.out new file mode 100644 index 000000000..9f672fd2e --- /dev/null +++ b/090.out @@ -0,0 +1,18 @@ +QA output created by 090 +*** mkfs +*** mount +direct realtime writes, 4 files, 2m each, increasing offsets. +wrote 1048576/1048576 bytes at offset 0 +wrote 1048576/1048576 bytes at offset 1048576 +wrote 1048576/1048576 bytes at offset 2097152 +wrote 1048576/1048576 bytes at offset 3145728 +buffered realtime writes, 4 files, 2m each, increasing offsets. +wrote 1048576/1048576 bytes at offset 0 +wrote 1048576/1048576 bytes at offset 1048576 +wrote 1048576/1048576 bytes at offset 2097152 +wrote 1048576/1048576 bytes at offset 3145728 +buffered realtime writes, 4 files, unaligned byte offsets/sizes. +wrote 1/1 bytes at offset 0 +wrote 1/1 bytes at offset 1 +wrote 1/1 bytes at offset 2 +wrote 1/1 bytes at offset 3