All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xiong Zhou <xzhou@redhat.com>
To: fstests@vger.kernel.org
Cc: ross.zwisler@linux.intel.com, dan.j.williams@intel.com,
	jmoyer@redhat.com, eguan@redhat.com,
	Xiong Zhou <xzhou@redhat.com>
Subject: [PATCH v2 2/3] DAX-DIO: skip DAX to non-DAX if unsupported
Date: Mon, 10 Apr 2017 14:05:52 +0800	[thread overview]
Message-ID: <1491804353-1326-2-git-send-email-xzhou@redhat.com> (raw)
In-Reply-To: <1491804353-1326-1-git-send-email-xzhou@redhat.com>

By tweaking SCRATCH_DEV by ndctl, only run DAX mapped
area DIO to non-DAX area tests when pmem device is in
"memory mode".

Signed-off-by: Xiong Zhou <xzhou@redhat.com>
---

v2:
  umount/check scratch fs after test
  restore SCRATCH_DEV mode in cleanup
  fix variable names

 tests/generic/413 | 26 +++++++++++++++++++++++++-
 tests/xfs/260     | 31 ++++++++++++++++++++++++++++++-
 2 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/tests/generic/413 b/tests/generic/413
index a1cc514..fbe8f11 100755
--- a/tests/generic/413
+++ b/tests/generic/413
@@ -34,6 +34,9 @@ _cleanup()
 {
 	cd /
 	rm -f $tmp.*
+	# restore SCRATCH_DEV to original mode
+	$NDCTL_PROG create-namespace -f -e $scratch_dev_namespace \
+	  -m $scratch_dev_mode > /dev/null 2>&1
 }
 
 # get standard environment, filters and checks
@@ -47,9 +50,13 @@ _supported_fs generic
 _supported_os Linux
 _require_test
 _require_scratch_dax
+# fsck manually after tests as we will reconfig SCRATCH_DEV
+_require_scratch_nocheck
 _require_test_program "feature"
 _require_test_program "t_mmap_dio"
 _require_xfs_io_command "falloc"
+_require_ndctl
+_require_jq
 
 prep_files()
 {
@@ -110,7 +117,7 @@ t_both_nondax()
 t_mmap_dio_dax()
 {
 	t_both_dax $1
-	t_dax_to_nondax $1
+	[ $skip_dax_to_nondax -eq 0 ] && t_dax_to_nondax $1
 	t_nondax_to_dax $1
 	t_both_nondax $1
 }
@@ -126,6 +133,21 @@ do_tests()
 	t_mmap_dio_dax $((64 * 1024 * 1024))
 }
 
+skip_dax_to_nondax=0
+# config SCRATCH_DEV to memory mode to support DAX mapped
+# area DIO to non-DAX area.
+
+# save original mode
+scratch_dev_mode=$(_ndctl_get_pmem_key_value $SCRATCH_DEV mode)
+
+# get its namespace
+scratch_dev_namespace=$(_ndctl_get_pmem_key_value $SCRATCH_DEV dev)
+
+# skip dax to non-dax dio if config fails
+$NDCTL_PROG create-namespace -f -e $scratch_dev_namespace \
+  -m memory > /dev/null 2>&1 \
+  || skip_dax_to_nondax=1
+
 # make fs 2Mb aligned for PMD fault testing
 mkfs_opts=""
 if [ "$FSTYP" == "ext4" ]; then
@@ -146,6 +168,8 @@ _scratch_mount "-o dax"
 tsize=$((128 * 1024 * 1024))
 
 do_tests
+_scratch_unmount
+_check_scratch_fs
 
 # success, all done
 echo "Silence is golden"
diff --git a/tests/xfs/260 b/tests/xfs/260
index e613cc0..4e445d3 100755
--- a/tests/xfs/260
+++ b/tests/xfs/260
@@ -34,6 +34,9 @@ _cleanup()
 {
 	cd /
 	rm -f $tmp.*
+	# restore SCRATCH_DEV to original mode
+	$NDCTL_PROG create-namespace -f -e $scratch_dev_namespace \
+	  -m $scratch_dev_mode > /dev/null 2>&1
 }
 
 # get standard environment, filters and checks
@@ -46,10 +49,14 @@ rm -f $seqres.full
 _supported_fs xfs
 _supported_os Linux
 _require_scratch_dax
+# fsck manually after tests as we will reconfig SCRATCH_DEV
+_require_scratch_nocheck
 _require_test_program "feature"
 _require_test_program "t_mmap_dio"
 _require_xfs_io_command "chattr" "+/-x"
 _require_xfs_io_command "falloc"
+_require_ndctl
+_require_jq
 
 prep_files()
 {
@@ -120,7 +127,7 @@ t_both_nondax()
 t_dax_flag_mmap_dio()
 {
 	t_both_dax $1
-	t_dax_to_nondax $1
+	[ $skip_dax_to_nondax -eq 0 ] && t_dax_to_nondax $1
 	t_nondax_to_dax $1
 	t_both_nondax $1
 }
@@ -136,6 +143,21 @@ do_tests()
 	t_dax_flag_mmap_dio $((64 * 1024 * 1024))
 }
 
+skip_dax_to_nondax=0
+# config SCRATCH_DEV to memory mode to support DAX mapped
+# area DIO to non-DAX area.
+
+# save original mode
+scratch_dev_mode=$(_ndctl_get_pmem_key_value $SCRATCH_DEV mode)
+
+# get its namespace
+scratch_dev_namespace=$(_ndctl_get_pmem_key_value $SCRATCH_DEV dev)
+
+# skip dax to non-dax dio if config fails
+$NDCTL_PROG create-namespace -f -e $scratch_dev_namespace \
+  -m memory > /dev/null 2>&1 \
+  || skip_dax_to_nondax=1
+
 # make xfs 2Mb aligned for PMD fault testing
 _scratch_mkfs "-d su=2m,sw=1" > /dev/null 2>&1
 
@@ -145,12 +167,19 @@ _scratch_mount "-o dax"
 tsize=$((128 * 1024 * 1024))
 
 do_tests
+# we need to reconfig SCRATCH_DEV to its original mode
+# in cleanup, which will corrupt the FS. So fsck here
+# before cleanup.
 _scratch_unmount
+_check_scratch_fs
 
 # mount again without dax option
 export MOUNT_OPTIONS=""
+export TEST_FS_MOUNT_OPTS=""
 _scratch_mount
 do_tests
+_scratch_unmount
+_check_scratch_fs
 
 # success, all done
 echo "Silence is golden"
-- 
1.8.3.1


  reply	other threads:[~2017-04-10  6:06 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-07  7:56 [PATCH 1/3] common: helper to get value from ndctl list by key Xiong Zhou
2017-04-07  7:56 ` [PATCH 2/3] DAX-DIO: skip DAX to non-DAX if unsupported Xiong Zhou
2017-04-12  3:30   ` Ross Zwisler
2017-04-07  7:56 ` [PATCH 3/3] DAX: mmap write readonly file Xiong Zhou
2017-04-07 17:16 ` [PATCH 1/3] common: helper to get value from ndctl list by key Ross Zwisler
2017-04-10  6:05   ` [PATCH v2 " Xiong Zhou
2017-04-10  6:05     ` Xiong Zhou [this message]
2017-04-11 11:44       ` [PATCH v2 2/3] DAX-DIO: skip DAX to non-DAX if unsupported Eryu Guan
2017-04-11 13:54         ` Jeff Moyer
2017-04-11 14:26         ` Xiong Zhou
2017-04-10  6:05     ` [PATCH v2 3/3] DAX: mmap write readonly file Xiong Zhou
2017-04-11 11:46       ` Eryu Guan
2017-04-11 13:56         ` Jeff Moyer
2017-04-11 18:52           ` Ross Zwisler
2017-04-11 22:45             ` Ross Zwisler
2017-04-12  2:52               ` Xiong Zhou
2017-04-12  4:03       ` Ross Zwisler
2017-04-12  6:26         ` Xiong Zhou
2017-04-12 14:46           ` [PATCH v3 0/4] split DAX mmap DIO cases Xiong Zhou
2017-04-12 14:46             ` [PATCH v3 1/4] DAX-DIO: make dax_to_non_dax dio test solo Xiong Zhou
2017-04-12 14:46             ` [PATCH v3 2/4] generic: test mmap io fom DAX to non-DAX Xiong Zhou
2017-04-13  4:11               ` Xiong Zhou
2017-04-13 13:36                 ` Dan Williams
2017-04-14 10:01                   ` Xiong Zhou
2017-04-14 14:49                     ` Dan Williams
2017-04-14 15:22                       ` Ross Zwisler
2017-04-14 15:33                         ` Dan Williams
2017-04-14 15:51                           ` Ross Zwisler
2017-04-12 14:46             ` [PATCH v3 3/4] xfs: test per-inode DAX flag " Xiong Zhou
2017-04-12 14:46             ` [PATCH v3 4/4] generic: mmap write readonly DAX file Xiong Zhou
2017-04-17  7:14             ` [PATCH v4 0/4] split DAX mmap DIO cases Xiong Zhou
2017-04-17  7:14               ` [PATCH v4 1/4] DAX-DIO: make dax_to_non_dax dio test solo Xiong Zhou
2017-04-18 16:31                 ` Ross Zwisler
2017-04-17  7:14               ` [PATCH v4 2/4] generic: test mmap io fom DAX to non-DAX Xiong Zhou
2017-04-17 14:14                 ` Dan Williams
2017-04-17 22:54                   ` Dan Williams
2017-04-17 23:39                     ` Ross Zwisler
2017-04-17 23:47                       ` Dan Williams
2017-04-19  8:40                   ` Xiong Zhou
2017-04-19 15:53                     ` Dan Williams
2017-04-18 10:12                 ` Christoph Hellwig
2017-04-18 14:49                   ` Xiong Zhou
2017-07-28 14:55                   ` Jeff Moyer
2017-04-18 16:32                 ` Ross Zwisler
2017-04-17  7:14               ` [PATCH v4 3/4] xfs: test per-inode DAX flag " Xiong Zhou
2017-04-18 16:36                 ` Ross Zwisler
2017-04-17  7:14               ` [PATCH v4 4/4] generic: mmap write readonly DAX file Xiong Zhou
2017-04-18 17:05                 ` Ross Zwisler
2017-04-19  2:54                   ` Xiong Zhou
2017-04-24 16:34                 ` Ross Zwisler
2017-09-25  8:40               ` [PATCH v5 0/3] fix dax to nondax dio fake failures Xiong Zhou
2017-09-25  8:40                 ` [PATCH v5 1/3] generic: mmap write readonly DAX file Xiong Zhou
2017-09-27  9:57                   ` Eryu Guan
2017-09-25  8:40                 ` [PATCH v5 2/3] generic/413: skip dax to nondax dio test if needed Xiong Zhou
2017-09-27  9:50                   ` Eryu Guan
2017-09-27 15:01                     ` Jeff Moyer
2017-09-25  8:40                 ` [PATCH v5 3/3] xfs/260: remove per-inode DAX flag test Xiong Zhou
2017-09-25 16:59                   ` Ross Zwisler
2017-09-26  0:51                     ` Xiong Zhou
2017-09-28  7:41                 ` [PATCH v6 0/4] fix dax to nondax dio fake failures Xiong Zhou
2017-09-28  7:41                   ` [PATCH v6 1/4] tests: add new group dax Xiong Zhou
2017-09-28  7:41                   ` [PATCH v6 2/4] gitignore: sort src/ binaries name Xiong Zhou
2017-09-28 11:10                     ` Dave Chinner
2017-09-28 12:28                       ` Xiong Zhou
2017-09-28 21:43                         ` Dave Chinner
2017-09-28  7:41                   ` [PATCH v6 3/4] generic: mmap write readonly DAX file Xiong Zhou
2017-09-28  7:41                   ` [PATCH v6 4/4] generic/413: skip dax to nondax dio test if needed Xiong Zhou
2017-09-29  2:16                   ` [PATCH v7] " Xiong Zhou
2017-09-29 16:24                     ` Ross Zwisler
2017-09-30  2:30                       ` Xiong Zhou
2017-04-11 11:40     ` [PATCH v2 1/3] common: helper to get value from ndctl list by key Eryu Guan

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=1491804353-1326-2-git-send-email-xzhou@redhat.com \
    --to=xzhou@redhat.com \
    --cc=dan.j.williams@intel.com \
    --cc=eguan@redhat.com \
    --cc=fstests@vger.kernel.org \
    --cc=jmoyer@redhat.com \
    --cc=ross.zwisler@linux.intel.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.