public inbox for fstests@vger.kernel.org
 help / color / mirror / Atom feed
From: Ross Zwisler <ross.zwisler@linux.intel.com>
To: Xiong Zhou <xzhou@redhat.com>, fstests@vger.kernel.org
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>,
	jmoyer@redhat.com, eguan@redhat.com, linux-nvdimm@ml01.01.org
Subject: [PATCH] fixup! xfs: test per-inode DAX flag by IO
Date: Sat,  4 Feb 2017 08:17:52 -0700	[thread overview]
Message-ID: <1486221472-1007-1-git-send-email-ross.zwisler@linux.intel.com> (raw)
In-Reply-To: <1484892950-25178-2-git-send-email-xzhou@redhat.com>

This makes a few changes to allow xfs/138 to use PMD faults, and has a few
other changes which I think are improvements.

For PMD faults:
- We need to use MKFS_OPTIONS="-d su=2m,sw=1" to ensure that the block
  allocations we get from XFS are 2MiB sized and aligned.  Without this we
  will fall back to 4k DAX pages for all the tests.

- We need to preallocate the file size with fallocate, rather than using
  "xfs_io -c pwrite".  This lets XFS increase the size of the test files
  before the test starts, giving us 2MiB sized and aligned blocks.  This
  also has the added bonus that we don't start out the mmap portion of the
  test with all the areas of the files written to and allocated.  This
  means that on the first read pass through a portion of a file we exercise
  the zero page DAX path for holes, then on subsequent passes we'll fill
  the holes and exercise the normal DAX path, giving us better overall
  coverage of the DAX code.  It also makes the test run slightly faster.

- For some reason I was having trouble getting XFS to give me 2MiB aligned
  and sized block allocations with file size 1GiB?  The test only needs
  file sizes of 64 MiB, and dropping the files used to that size ensured
  that I always got 2MiB allocations, but truthfully I don't understand
  this behavior from XFS.

And one cleanup thing:

- Changed the sizes above 4k to use bash math instead of having hard coded
  values.  I personally don't have 67108864 memorized to be 64 MiB (maybe
  everyone else does), but the meaning of $((64 * 1024 * 1024)) is more
  obvious to the reader.

I'm working on similar changes for your generic/405, but am still having
trouble getting PMD faults from ext4, even with the mkfs options I had
previously been using for other testing.

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
---
 tests/xfs/138 | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/tests/xfs/138 b/tests/xfs/138
index 9822441..4762534 100755
--- a/tests/xfs/138
+++ b/tests/xfs/138
@@ -79,22 +79,21 @@ do_tests()
 	# page size
 	t_dax_flag_mmap_dio `src/feature -s`
 	# bigger sizes, for PMD faults
-	t_dax_flag_mmap_dio 16777216
-	t_dax_flag_mmap_dio 67108864
+	t_dax_flag_mmap_dio $((16 * 1024 * 1024))
+	t_dax_flag_mmap_dio $((64 * 1024 * 1024))
 }
 
+export MKFS_OPTIONS="-d su=2m,sw=1"
 _scratch_mkfs > /dev/null 2>&1
 
 # mount with dax option
 _scratch_mount "-o dax"
 
 psize=`src/feature -s`
-tsize=$((1024 * 1024 * 1024))
+tsize=$((64 * 1024 * 1024))
 
-$XFS_IO_PROG -f -c "pwrite -W -b $psize 0 $tsize" \
-	$SCRATCH_MNT/tf_s >> $seqres.full 2>&1
-$XFS_IO_PROG -f -c "pwrite -W -b $psize 0 $tsize" \
-	$SCRATCH_MNT/tf_d >> $seqres.full 2>&1
+$XFS_IO_PROG -f -c "falloc 0 $tsize" $SCRATCH_MNT/tf_s >> $seqres.full 2>&1
+$XFS_IO_PROG -f -c "falloc 0 $tsize" $SCRATCH_MNT/tf_d >> $seqres.full 2>&1
 
 do_tests
 _scratch_unmount
-- 
2.7.4


  reply	other threads:[~2017-02-04 15:18 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-18  3:07 [PATCH 0/4] mmap dio and DAX Xiong Zhou
2017-01-18  3:07 ` [PATCH 1/4] common/rc: add _require_scratch_dax Xiong Zhou
2017-01-19  4:17   ` Eryu Guan
2017-01-18  3:07 ` [PATCH 2/4] src/t_mmap_dio: add mmap dio test Xiong Zhou
2017-01-18  3:07 ` [PATCH 3/4] xfs: test per-inode DAX flag by IO Xiong Zhou
2017-01-19  4:24   ` Eryu Guan
2017-01-18  3:07 ` [PATCH 4/4] generic: test mmap dio through DAX and non-DAX Xiong Zhou
2017-01-19  5:54   ` Eryu Guan
2017-01-19 10:13     ` [PATCH v2 0/2] mmap dio and DAX Xiong Zhou
2017-01-19 10:13       ` [PATCH v2 1/2] xfs: test per-inode DAX flag by IO Xiong Zhou
2017-01-19 20:49         ` Ross Zwisler
2017-01-20  1:15           ` Xiong Zhou
2017-01-20  2:21           ` [PATCH v3] " Xiong Zhou
2017-01-20  6:15             ` [PATCH v4 0/2] mmap dio and DAX Xiong Zhou
2017-01-20  6:15               ` [PATCH v4 1/2] xfs: test per-inode DAX flag by IO Xiong Zhou
2017-02-04 15:17                 ` Ross Zwisler [this message]
2017-02-05  6:21                   ` [PATCH v5 0/2] mmap dio and DAX Xiong Zhou
2017-02-05  6:21                     ` [PATCH v5 1/2] xfs: test per-inode DAX flag by IO Xiong Zhou
2017-02-06 19:13                       ` Ross Zwisler
2017-02-05  6:21                     ` [PATCH v5 2/2] generic: test mmap io through DAX and non-DAX Xiong Zhou
2017-02-06 19:17                       ` Ross Zwisler
2017-02-08  4:11                         ` [PATCH v6 0/2] mmap dio and DAX Xiong Zhou
2017-02-08  4:11                           ` [PATCH v6 1/2] xfs: test per-inode DAX flag by IO Xiong Zhou
2017-02-08  4:11                           ` [PATCH v6 2/2] generic: test mmap io through DAX and non-DAX Xiong Zhou
2017-02-17  6:46                             ` Eryu Guan
2017-02-17  6:52                               ` Xiong Zhou
2017-01-20  6:15               ` [PATCH v4 " Xiong Zhou
2017-01-24 22:28               ` [PATCH v4 0/2] mmap dio and DAX Ross Zwisler
2017-02-03  5:57                 ` Xiong Zhou
2017-02-03  6:29                   ` Eryu Guan
2017-02-03 16:57                   ` Ross Zwisler
2017-02-04 10:14                     ` Xiong Zhou
2017-01-19 10:13       ` [PATCH v2 2/2] generic: test mmap dio through DAX and non-DAX Xiong Zhou

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=1486221472-1007-1-git-send-email-ross.zwisler@linux.intel.com \
    --to=ross.zwisler@linux.intel.com \
    --cc=eguan@redhat.com \
    --cc=fstests@vger.kernel.org \
    --cc=jmoyer@redhat.com \
    --cc=linux-nvdimm@ml01.01.org \
    --cc=xzhou@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox