From: Junho Ryu <jayr@google.com>
To: xfs@oss.sgi.com
Cc: tytso@mit.edu, hughd@google.com, branto@redhat.com,
Junho Ryu <jayr@google.com>
Subject: [PATCH v2 07/12] xfstests: check O_DIRECT support before testing direct I/O
Date: Tue, 17 Dec 2013 14:18:37 -0800 [thread overview]
Message-ID: <1387318722-3050-7-git-send-email-jayr@google.com> (raw)
In-Reply-To: <1387318722-3050-1-git-send-email-jayr@google.com>
Some filesystems do not support O_DIRECT. Check whether TEST_DIR supports it
by running xfs_io with and without -d flag.
Signed-off-by: Junho Ryu <jayr@google.com>
---
v2: renamed _require_xfs_io_direct to _require_odirect
common/rc | 15 +++++++++++++++
tests/generic/091 | 1 +
tests/generic/130 | 1 +
tests/generic/133 | 1 +
tests/generic/135 | 1 +
tests/generic/226 | 1 +
tests/generic/263 | 1 +
tests/generic/299 | 1 +
tests/generic/300 | 1 +
9 files changed, 23 insertions(+)
diff --git a/common/rc b/common/rc
index 1db313b..9e0e727 100644
--- a/common/rc
+++ b/common/rc
@@ -1155,6 +1155,7 @@ _require_aiodio()
AIO_TEST=src/aio-dio-regress/$1
[ -x $AIO_TEST ] || _notrun "$AIO_TEST not built"
fi
+ _require_odirect
}
# run an aio-dio program
@@ -1293,6 +1294,20 @@ _require_fiemap()
_notrun "xfs_io fiemap command failed (no fs support?)"
}
+# check that kernel and filesystem support direct I/O
+_require_odirect()
+{
+ testfile=$TEST_DIR/$$.direct
+ $XFS_IO_PROG -F -f -c "pwrite 0 20k" $testfile 2>&1
+ if [ $? -eq 0 ]; then
+ $XFS_IO_PROG -F -f -d -c "pwrite 0 20k" $testfile 2>&1
+ if [ $? -ne 0 ]; then
+ _notrun "O_DIRECT is not supported"
+ fi
+ fi
+ rm -f $testfile 2>&1 > /dev/null
+}
+
# Check that a fs has enough free space (in 1024b blocks)
#
_require_fs_space()
diff --git a/tests/generic/091 b/tests/generic/091
index bb176f1..bb5c92c 100755
--- a/tests/generic/091
+++ b/tests/generic/091
@@ -38,6 +38,7 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
# real QA test starts here
_supported_fs generic
_supported_os Linux
+_require_odirect
rm -f $seqres.full
diff --git a/tests/generic/130 b/tests/generic/130
index 8367dc7..1e96630 100755
--- a/tests/generic/130
+++ b/tests/generic/130
@@ -50,6 +50,7 @@ _supported_os Linux IRIX
_require_scratch
_require_sparse_files
+_require_odirect
_scratch_mkfs >/dev/null 2>&1
_scratch_mount
diff --git a/tests/generic/133 b/tests/generic/133
index 7fb1695..8af4dde 100755
--- a/tests/generic/133
+++ b/tests/generic/133
@@ -38,6 +38,7 @@ trap "exit \$status" 0 1 2 3 15
# real QA test starts here
_supported_fs generic
_supported_os Linux IRIX
+_require_odirect
echo "Buffered writer, buffered reader"
$XFS_IO_PROG -f -d -c 'pwrite -b 64k 0 512m' $TEST_DIR/io_test > /dev/null
diff --git a/tests/generic/135 b/tests/generic/135
index e3b827a..79558f5 100755
--- a/tests/generic/135
+++ b/tests/generic/135
@@ -39,6 +39,7 @@ trap "exit \$status" 0 1 2 3 15
_supported_fs generic
_supported_os Linux IRIX
+_require_odirect
_require_scratch
_scratch_mkfs >/dev/null 2>&1
diff --git a/tests/generic/226 b/tests/generic/226
index b98e889..4ad56a5 100755
--- a/tests/generic/226
+++ b/tests/generic/226
@@ -37,6 +37,7 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
_supported_fs generic
_supported_os Linux IRIX
_require_scratch
+_require_odirect
# real QA test starts here
rm -f $seqres.full
diff --git a/tests/generic/263 b/tests/generic/263
index bc59865..f639215 100755
--- a/tests/generic/263
+++ b/tests/generic/263
@@ -38,6 +38,7 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
# real QA test starts here
_supported_fs generic
_supported_os Linux
+_require_odirect
rm -f $seqres.full
diff --git a/tests/generic/299 b/tests/generic/299
index 14cce96..c674542 100755
--- a/tests/generic/299
+++ b/tests/generic/299
@@ -43,6 +43,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
+_require_odirect
NUM_JOBS=$((4*LOAD_FACTOR))
BLK_DEV_SIZE=`blockdev --getsz $SCRATCH_DEV`
diff --git a/tests/generic/300 b/tests/generic/300
index 7c60728..9231cb7 100755
--- a/tests/generic/300
+++ b/tests/generic/300
@@ -43,6 +43,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
+_require_odirect
NUM_JOBS=$((4*LOAD_FACTOR))
BLK_DEV_SIZE=`blockdev --getsz $SCRATCH_DEV`
--
1.8.5.1
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2013-12-17 22:18 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-17 22:18 [PATCH v2 01/12] xfstests: use mount point instead of device name Junho Ryu
2013-12-17 22:18 ` [PATCH v2 02/12] xfstests: _scratch_mkfs_sized() for tmpfs Junho Ryu
2013-12-18 5:33 ` Boris Ranto
2013-12-17 22:18 ` [PATCH v2 03/12] xfstests: increase tmpfs memory size Junho Ryu
2013-12-17 22:21 ` Junho Ryu
2013-12-17 22:18 ` [PATCH v2 04/12] xfstests: rename _require_xfs_io_fiemap to _require_fiemap Junho Ryu
2013-12-17 22:18 ` [PATCH v2 05/12] xfstests: fix generic/225 to check fiemap support Junho Ryu
2013-12-17 22:18 ` [PATCH v2 06/12] xfstests: fix generic/127 to call _cleanup() only once Junho Ryu
2013-12-17 22:18 ` Junho Ryu [this message]
2013-12-17 22:18 ` [PATCH v2 08/12] xfstests: add executable permission to tests Junho Ryu
2013-12-17 22:18 ` [PATCH v2 09/12] xfstests: skip generic/076 which cannot work on tmpfs Junho Ryu
2013-12-18 5:20 ` Boris Ranto
2013-12-17 22:18 ` [PATCH v2 10/12] xfstests: do not unmount tmpfs during remount Junho Ryu
2013-12-17 22:18 ` [PATCH v2 11/12] xfstests: do not unmount before calling _check_scratch_fs() Junho Ryu
2013-12-17 22:18 ` [PATCH v2 12/12] xfstests: check if filesystem supports chattr Junho Ryu
2013-12-17 22:23 ` Junho Ryu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1387318722-3050-7-git-send-email-jayr@google.com \
--to=jayr@google.com \
--cc=branto@redhat.com \
--cc=hughd@google.com \
--cc=tytso@mit.edu \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.