From: Brian Foster <bfoster@redhat.com>
To: fstests@vger.kernel.org
Cc: linux-xfs@vger.kernel.org
Subject: [PATCH v3 3/3] generic/470: use thin volume for dmlogwrites target device
Date: Tue, 1 Sep 2020 09:47:28 -0400 [thread overview]
Message-ID: <20200901134728.185353-4-bfoster@redhat.com> (raw)
In-Reply-To: <20200901134728.185353-1-bfoster@redhat.com>
dmlogwrites support for XFS depends on discard zeroing support of
the intended target device. Update the test to use a thin volume and
allow it to run consistently and reliably on XFS.
Signed-off-by: Brian Foster <bfoster@redhat.com>
---
tests/generic/470 | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/tests/generic/470 b/tests/generic/470
index fd6da563..c77499a2 100755
--- a/tests/generic/470
+++ b/tests/generic/470
@@ -20,12 +20,14 @@ _cleanup()
{
cd /
_log_writes_cleanup
+ _dmthin_cleanup
rm -f $tmp.*
}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
+. ./common/dmthin
. ./common/dmlogwrites
# remove previous $seqres.full before test
@@ -34,12 +36,21 @@ rm -f $seqres.full
# real QA test starts here
_supported_fs generic
_supported_os Linux
-_require_scratch
+_require_scratch_nocheck
_require_log_writes_dax_mountopt "dax"
+_require_dm_target thin-pool
_require_xfs_io_command "mmap" "-S"
_require_xfs_io_command "log_writes"
-_log_writes_init $SCRATCH_DEV
+devsize=$((1024*1024*200 / 512)) # 200m phys/virt size
+csize=$((1024*64 / 512)) # 64k cluster size
+lowspace=$((1024*1024 / 512)) # 1m low space threshold
+
+# Use a thin device to provide deterministic discard behavior. Discards are used
+# by the log replay tool for fast zeroing to prevent out-of-order replay issues.
+_dmthin_init $devsize $devsize $csize $lowspace
+
+_log_writes_init $DMTHIN_VOL_DEV
_log_writes_mkfs >> $seqres.full 2>&1
_log_writes_mount -o dax
@@ -52,14 +63,14 @@ $XFS_IO_PROG -t -c "truncate $LEN" -c "mmap -S 0 $LEN" -c "mwrite 0 $LEN" \
# Unmount the scratch dir and tear down the log writes target
_log_writes_unmount
_log_writes_remove
-_check_scratch_fs
+_dmthin_check_fs
# destroy previous filesystem so we can be sure our rebuild works
-_scratch_mkfs >> $seqres.full 2>&1
+_mkfs_dev $DMTHIN_VOL_DEV >> $seqres.full 2>&1
# check pre-unmap state
-_log_writes_replay_log preunmap $SCRATCH_DEV
-_scratch_mount
+_log_writes_replay_log preunmap $DMTHIN_VOL_DEV
+_dmthin_mount
# We should see $SCRATCH_MNT/test as having 1 MiB in block allocations
du -sh $SCRATCH_MNT/test | _filter_scratch | _filter_spaces
--
2.25.4
next prev parent reply other threads:[~2020-09-01 13:47 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-01 13:47 [PATCH v3 0/3] fix up generic dmlogwrites tests to work with XFS Brian Foster
2020-09-01 13:47 ` [PATCH v3 1/3] generic/455: use thin volume for dmlogwrites target device Brian Foster
2020-09-01 14:06 ` Amir Goldstein
2020-09-01 13:47 ` [PATCH v3 2/3] generic/457: " Brian Foster
2020-09-01 14:07 ` Amir Goldstein
2020-09-01 13:47 ` Brian Foster [this message]
2020-09-01 14:08 ` [PATCH v3 3/3] generic/470: " Amir Goldstein
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=20200901134728.185353-4-bfoster@redhat.com \
--to=bfoster@redhat.com \
--cc=fstests@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
/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.