fstests.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/6] Make fstests support new behavior of DAX
@ 2020-06-30 13:59 Xiao Yang
  2020-06-30 13:59 ` [PATCH v3 1/6] common/rc: Introduce new helpers for DAX mount options and FS_XFLAG_DAX Xiao Yang
                   ` (6 more replies)
  0 siblings, 7 replies; 13+ messages in thread
From: Xiao Yang @ 2020-06-30 13:59 UTC (permalink / raw)
  To: fstests; +Cc: darrick.wong, ira.weiny, Xiao Yang

The new behavior of DAX on xfs/ext4 has been merged into main kernel
tree/ext4-dax branch so it is time for fstests to support new behavior
of DAX.

References:
https://lkml.org/lkml/2019/10/20/96
https://lkml.org/lkml/2020/5/28/949

Xiao Yang (6):
  common/rc: Introduce new helpers for DAX mount options and
    FS_XFLAG_DAX
  fstests: Use _require_scratch_dax_mountopt() and
    _require_scratch_dax_iflag()
  common/rc: Remove unused _require_scratch_dax()
  generic/223: Don't clear all mkfs options for _scratch_mkfs_geom()
    roughly
  generic/413, xfs/260: Improve format operation for PMD fault testing
  xfs/260: Move and update xfs/260

 common/rc                      | 60 ++++++++++++++++++++++++----
 tests/ext4/030                 |  2 +-
 tests/ext4/031                 |  4 +-
 tests/generic/223              |  1 -
 tests/generic/413              | 12 ++----
 tests/generic/462              |  2 +-
 tests/{xfs/260 => generic/603} | 71 +++++++++++++++++-----------------
 tests/generic/603.out          |  2 +
 tests/generic/group            |  1 +
 tests/xfs/260.out              |  2 -
 tests/xfs/group                |  1 -
 11 files changed, 97 insertions(+), 61 deletions(-)
 rename tests/{xfs/260 => generic/603} (54%)
 create mode 100644 tests/generic/603.out
 delete mode 100644 tests/xfs/260.out

-- 
2.21.0




^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH v3 1/6] common/rc: Introduce new helpers for DAX mount options and FS_XFLAG_DAX
  2020-06-30 13:59 [PATCH v3 0/6] Make fstests support new behavior of DAX Xiao Yang
@ 2020-06-30 13:59 ` Xiao Yang
  2020-06-30 13:59 ` [PATCH v3 2/6] fstests: Use _require_scratch_dax_mountopt() and _require_scratch_dax_iflag() Xiao Yang
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Xiao Yang @ 2020-06-30 13:59 UTC (permalink / raw)
  To: fstests; +Cc: darrick.wong, ira.weiny, Xiao Yang

1) _require_scratch_dax_mountopt() checks both old and new DAX mount option
2) _require_scratch_dax_iflag() checks FS_XFLAG_DAX

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
---
 common/rc | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/common/rc b/common/rc
index f17b19f2..09b1175d 100644
--- a/common/rc
+++ b/common/rc
@@ -3188,6 +3188,41 @@ _require_scratch_dax()
 	_scratch_unmount
 }
 
+_require_scratch_dax_mountopt()
+{
+	local mountopt=$1
+	local output
+
+	_require_scratch
+	_scratch_mkfs > /dev/null 2>&1
+	_try_scratch_mount -o "$mountopt" || \
+		_notrun "mount $SCRATCH_DEV with $mountopt failed"
+
+	output=$(_fs_options $SCRATCH_DEV)
+
+	# For new dax mount option, /proc/mounts shows different outputs if we
+	# mount with -o dax=inode on ext4 and xfs so skip checking it.
+	# /proc/mounts shows 'dax=inode' on ext4 but shows nothing on xfs.
+	if [ "$mountopt" != "dax=inode" ]; then
+		echo $output | grep -qw "$mountopt" || \
+			_notrun "$SCRATCH_DEV $FSTYP does not support -o $mountopt"
+	fi
+
+	# For new dax mount option, /proc/mounts shows "dax=never" if we
+	# mount with -o dax on xfs and underlying device doesn't support dax.
+	if [ "$mountopt" = "dax" ]; then
+		echo $output | grep -qw "dax=never" && \
+			_notrun "$SCRATCH_DEV $FSTYP does not support -o $mountopt"
+	fi
+
+	_scratch_unmount
+}
+
+_require_scratch_dax_iflag()
+{
+	_require_xfs_io_command "chattr" "x"
+}
+
 # Does norecovery support by this fs?
 _require_norecovery()
 {
-- 
2.21.0




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v3 2/6] fstests: Use _require_scratch_dax_mountopt() and _require_scratch_dax_iflag()
  2020-06-30 13:59 [PATCH v3 0/6] Make fstests support new behavior of DAX Xiao Yang
  2020-06-30 13:59 ` [PATCH v3 1/6] common/rc: Introduce new helpers for DAX mount options and FS_XFLAG_DAX Xiao Yang
@ 2020-06-30 13:59 ` Xiao Yang
  2020-06-30 13:59 ` [PATCH v3 3/6] common/rc: Remove unused _require_scratch_dax() Xiao Yang
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Xiao Yang @ 2020-06-30 13:59 UTC (permalink / raw)
  To: fstests; +Cc: darrick.wong, ira.weiny, Xiao Yang

Make related tests use _require_scratch_dax_mountopt() and _require_scratch_dax_iflag()

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
---
 tests/ext4/030    | 2 +-
 tests/ext4/031    | 4 ++--
 tests/generic/413 | 2 +-
 tests/generic/462 | 2 +-
 tests/xfs/260     | 4 ++--
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/tests/ext4/030 b/tests/ext4/030
index 93bbca86..fb5cf451 100755
--- a/tests/ext4/030
+++ b/tests/ext4/030
@@ -33,7 +33,7 @@ rm -f $seqres.full
 # Modify as appropriate.
 _supported_os Linux
 _supported_fs ext4
-_require_scratch_dax
+_require_scratch_dax_mountopt "dax"
 _require_test_program "t_ext4_dax_journal_corruption"
 _require_command "$CHATTR_PROG" chattr
 
diff --git a/tests/ext4/031 b/tests/ext4/031
index dc58214e..20e2fab7 100755
--- a/tests/ext4/031
+++ b/tests/ext4/031
@@ -37,7 +37,7 @@ MOUNT_OPTIONS=""
 # Modify as appropriate.
 _supported_os Linux
 _supported_fs ext4
-_require_scratch_dax
+_require_scratch_dax_mountopt "dax"
 _require_test_program "t_ext4_dax_inline_corruption"
 _require_scratch_ext4_feature "inline_data"
 
@@ -56,7 +56,7 @@ _scratch_unmount >> $seqres.full 2>&1
 _try_scratch_mount "-o dax" >> $seqres.full 2>&1
 
 if [[ $? != 0 ]]; then
-	# _require_scratch_dax already verified that we could mount with DAX.
+	# _require_scratch_dax_mountopt already verified that we could mount with DAX.
 	# Failure here is expected because we have inline data.
 	echo "Silence is golden"
 	status=0
diff --git a/tests/generic/413 b/tests/generic/413
index 1ce89aff..19e1b926 100755
--- a/tests/generic/413
+++ b/tests/generic/413
@@ -31,7 +31,7 @@ rm -f $seqres.full
 _supported_fs generic
 _supported_os Linux
 _require_test
-_require_scratch_dax
+_require_scratch_dax_mountopt "dax"
 _require_test_program "feature"
 _require_test_program "t_mmap_dio"
 _require_xfs_io_command "falloc"
diff --git a/tests/generic/462 b/tests/generic/462
index 1ab6cadc..4a940239 100755
--- a/tests/generic/462
+++ b/tests/generic/462
@@ -37,7 +37,7 @@ rm -f $seqres.full
 _supported_fs generic
 _supported_os Linux
 _require_test
-_require_scratch_dax
+_require_scratch_dax_mountopt "dax"
 _require_test_program "t_mmap_write_ro"
 # running by unpriviliged user is not necessary to reproduce
 # this bug, just trying to test more.
diff --git a/tests/xfs/260 b/tests/xfs/260
index 3464ffef..fbdc4cd8 100755
--- a/tests/xfs/260
+++ b/tests/xfs/260
@@ -30,10 +30,10 @@ rm -f $seqres.full
 
 _supported_fs xfs
 _supported_os Linux
-_require_scratch_dax
+_require_scratch_dax_mountopt "dax"
 _require_test_program "feature"
 _require_test_program "t_mmap_dio"
-_require_xfs_io_command "chattr" "x"
+_require_scratch_dax_iflag
 _require_xfs_io_command "falloc"
 
 prep_files()
-- 
2.21.0




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v3 3/6] common/rc: Remove unused _require_scratch_dax()
  2020-06-30 13:59 [PATCH v3 0/6] Make fstests support new behavior of DAX Xiao Yang
  2020-06-30 13:59 ` [PATCH v3 1/6] common/rc: Introduce new helpers for DAX mount options and FS_XFLAG_DAX Xiao Yang
  2020-06-30 13:59 ` [PATCH v3 2/6] fstests: Use _require_scratch_dax_mountopt() and _require_scratch_dax_iflag() Xiao Yang
@ 2020-06-30 13:59 ` Xiao Yang
  2020-06-30 13:59 ` [PATCH v3 4/6] generic/223: Don't clear all mkfs options for _scratch_mkfs_geom() roughly Xiao Yang
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Xiao Yang @ 2020-06-30 13:59 UTC (permalink / raw)
  To: fstests; +Cc: darrick.wong, ira.weiny, Xiao Yang

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
---
 common/rc | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/common/rc b/common/rc
index 09b1175d..929ff6c4 100644
--- a/common/rc
+++ b/common/rc
@@ -3175,19 +3175,6 @@ _require_scratch_shutdown()
 }
 
 # Does dax mount option work on this dev/fs?
-_require_scratch_dax()
-{
-	_require_scratch
-	_scratch_mkfs > /dev/null 2>&1
-	_try_scratch_mount -o dax || \
-		_notrun "mount $SCRATCH_DEV with dax failed"
-	# Check options to be sure. XFS ignores dax option
-	# and goes on if dev underneath does not support dax.
-	_fs_options $SCRATCH_DEV | grep -qw "dax" || \
-		_notrun "$SCRATCH_DEV $FSTYP does not support -o dax"
-	_scratch_unmount
-}
-
 _require_scratch_dax_mountopt()
 {
 	local mountopt=$1
-- 
2.21.0




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v3 4/6] generic/223: Don't clear all mkfs options for _scratch_mkfs_geom() roughly
  2020-06-30 13:59 [PATCH v3 0/6] Make fstests support new behavior of DAX Xiao Yang
                   ` (2 preceding siblings ...)
  2020-06-30 13:59 ` [PATCH v3 3/6] common/rc: Remove unused _require_scratch_dax() Xiao Yang
@ 2020-06-30 13:59 ` Xiao Yang
  2020-06-30 13:59 ` [PATCH v3 5/6] generic/413, xfs/260: Improve format operation for PMD fault testing Xiao Yang
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Xiao Yang @ 2020-06-30 13:59 UTC (permalink / raw)
  To: fstests; +Cc: darrick.wong, ira.weiny, Xiao Yang

ext4 can accept the last one if the same mkfs options are passed but xfs cannot
accept the same mkfs options and reports "xxx option is respecified" error.  I
prefer to override the same mkfs option which is defined in MKFS_OPTION so that
we can have a chance to pass other mkfs options to _scratch_mkfs_geom().

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
---
 common/rc         | 14 +++++++++++++-
 tests/generic/223 |  1 -
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/common/rc b/common/rc
index 929ff6c4..bd21a90c 100644
--- a/common/rc
+++ b/common/rc
@@ -1051,7 +1051,19 @@ _scratch_mkfs_geom()
 
     case $FSTYP in
     xfs)
-	MKFS_OPTIONS+=" -b size=$blocksize, -d su=$sunit_bytes,sw=$swidth_mult"
+	if echo "$MKFS_OPTIONS" | egrep -q "b?size="; then
+		MKFS_OPTIONS=$(echo "$MKFS_OPTIONS" | sed -r "s/(b?size=)[0-9]+/\1$blocksize/")
+	else
+		MKFS_OPTIONS+=" -b size=$blocksize"
+	fi
+
+	if echo "$MKFS_OPTIONS" | egrep -q "(su|sunit|sw|swidth)="; then
+		MKFS_OPTIONS=$(echo "$MKFS_OPTIONS" | sed -r \
+			-e "s/(su|sunit)=[0-9kmg]+/su=$sunit_bytes/" \
+			-e "s/(sw|swidth)=[0-9kmg]+/sw=$swidth_mult/")
+	else
+		MKFS_OPTIONS+=" -d su=$sunit_bytes,sw=$swidth_mult"
+	fi
 	;;
     ext4|ext4dev)
 	MKFS_OPTIONS+=" -b $blocksize -E stride=$sunit_blocks,stripe_width=$swidth_blocks"
diff --git a/tests/generic/223 b/tests/generic/223
index 6cfd00dd..ba7c9a44 100755
--- a/tests/generic/223
+++ b/tests/generic/223
@@ -41,7 +41,6 @@ for SUNIT_K in 8 16 32 64 128; do
 	let SUNIT_BLOCKS=$SUNIT_BYTES/$BLOCKSIZE
 
 	echo "=== mkfs with su $SUNIT_BLOCKS blocks x 4 ==="
-	export MKFS_OPTIONS=""
 	_scratch_mkfs_geom $SUNIT_BYTES 4 $BLOCKSIZE >> $seqres.full 2>&1
 	_scratch_mount
 
-- 
2.21.0




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v3 5/6] generic/413, xfs/260: Improve format operation for PMD fault testing
  2020-06-30 13:59 [PATCH v3 0/6] Make fstests support new behavior of DAX Xiao Yang
                   ` (3 preceding siblings ...)
  2020-06-30 13:59 ` [PATCH v3 4/6] generic/223: Don't clear all mkfs options for _scratch_mkfs_geom() roughly Xiao Yang
@ 2020-06-30 13:59 ` Xiao Yang
  2020-06-30 13:59 ` [PATCH v3 6/6] xfs/260: Move and update xfs/260 Xiao Yang
  2020-06-30 20:34 ` [PATCH v3 0/6] Make fstests support new behavior of DAX Ira Weiny
  6 siblings, 0 replies; 13+ messages in thread
From: Xiao Yang @ 2020-06-30 13:59 UTC (permalink / raw)
  To: fstests; +Cc: darrick.wong, ira.weiny, Xiao Yang

1) Simple code and fix the wrong value of stripe_width by _scratch_mkfs_geom().
2) Get hugepage size by _get_hugepagesize() and replace fixed 2M with
   hugepage size because hugepage size/PMD_SIZE is not 2M on some
   arches(e.g. hugepage size/PMD_SIZE is 512M on arm64).
3) For debugging, redirect the output of mkfs to $seqres.full.

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
---
 common/rc         | 10 ++++++++++
 tests/generic/413 | 10 ++--------
 tests/xfs/260     |  4 ++--
 3 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/common/rc b/common/rc
index bd21a90c..911b10d5 100644
--- a/common/rc
+++ b/common/rc
@@ -170,6 +170,16 @@ _get_filesize()
     stat -c %s "$1"
 }
 
+# Get hugepagesize in bytes
+_get_hugepagesize()
+{
+	local hugepgsz=$(awk '/Hugepagesize/ {print $2}' /proc/meminfo)
+	# Call _notrun if $hugepgsz is not a number
+	echo "$hugepgsz" | egrep -q ^[0-9]+$ || \
+		_notrun "Cannot get the value of Hugepagesize"
+	echo $((hugepgsz * 1024))
+}
+
 _mount()
 {
     $MOUNT_PROG `_mount_ops_filter $*`
diff --git a/tests/generic/413 b/tests/generic/413
index 19e1b926..dfe2912b 100755
--- a/tests/generic/413
+++ b/tests/generic/413
@@ -111,14 +111,8 @@ do_tests()
 	t_mmap_dio_dax $((64 * 1024 * 1024))
 }
 
-# make fs 2Mb aligned for PMD fault testing
-mkfs_opts=""
-if [ "$FSTYP" == "ext4" ]; then
-	mkfs_opts="-E stride=512,stripe_width=1"
-elif [ "$FSTYP" == "xfs" ]; then
-	mkfs_opts="-d su=2m,sw=1"
-fi
-_scratch_mkfs "$mkfs_opts" > /dev/null 2>&1
+# make fs aligned for PMD fault testing
+_scratch_mkfs_geom $(_get_hugepagesize) 1 >> $seqres.full 2>&1
 
 # mount SCRATCH_DEV with dax option, TEST_DEV not
 export MOUNT_OPTIONS=""
diff --git a/tests/xfs/260 b/tests/xfs/260
index fbdc4cd8..7afc20f1 100755
--- a/tests/xfs/260
+++ b/tests/xfs/260
@@ -121,8 +121,8 @@ do_tests()
 	t_dax_flag_mmap_dio $((64 * 1024 * 1024))
 }
 
-# make xfs 2Mb aligned for PMD fault testing
-_scratch_mkfs "-d su=2m,sw=1" > /dev/null 2>&1
+# make xfs aligned for PMD fault testing
+_scratch_mkfs_geom $(_get_hugepagesize) 1 >> $seqres.full 2>&1
 
 # mount with dax option
 _scratch_mount "-o dax"
-- 
2.21.0




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v3 6/6] xfs/260: Move and update xfs/260
  2020-06-30 13:59 [PATCH v3 0/6] Make fstests support new behavior of DAX Xiao Yang
                   ` (4 preceding siblings ...)
  2020-06-30 13:59 ` [PATCH v3 5/6] generic/413, xfs/260: Improve format operation for PMD fault testing Xiao Yang
@ 2020-06-30 13:59 ` Xiao Yang
  2020-06-30 20:41   ` Ira Weiny
  2020-06-30 20:34 ` [PATCH v3 0/6] Make fstests support new behavior of DAX Ira Weiny
  6 siblings, 1 reply; 13+ messages in thread
From: Xiao Yang @ 2020-06-30 13:59 UTC (permalink / raw)
  To: fstests; +Cc: darrick.wong, ira.weiny, Xiao Yang

1) Both ext4 and xfs have supported inode DAX flag so move it to generic.
2) Modifying inode DAX flag on flies does not take effect immediately so
   make files inherit the DAX flag of parent directory.
3) Setting/clearing inode DAX flag have no chance to change S_DAX flag if
   mount with dax option so remove the related subtest.

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
---
 tests/{xfs/260 => generic/603} | 63 +++++++++++++++++-----------------
 tests/generic/603.out          |  2 ++
 tests/generic/group            |  1 +
 tests/xfs/260.out              |  2 --
 tests/xfs/group                |  1 -
 5 files changed, 34 insertions(+), 35 deletions(-)
 rename tests/{xfs/260 => generic/603} (60%)
 create mode 100644 tests/generic/603.out
 delete mode 100644 tests/xfs/260.out

diff --git a/tests/xfs/260 b/tests/generic/603
similarity index 60%
rename from tests/xfs/260
rename to tests/generic/603
index 7afc20f1..f40048f9 100755
--- a/tests/xfs/260
+++ b/tests/generic/603
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Copyright (c) 2017 Red Hat Inc.  All Rights Reserved.
 #
-# FS QA Test 260
+# FS QA Test 603
 #
 # Test per-inode DAX flag by mmap direct/buffered IO.
 #
@@ -28,7 +28,7 @@ _cleanup()
 # remove previous $seqres.full before test
 rm -f $seqres.full
 
-_supported_fs xfs
+_supported_fs generic
 _supported_os Linux
 _require_scratch_dax_mountopt "dax"
 _require_test_program "feature"
@@ -36,68 +36,72 @@ _require_test_program "t_mmap_dio"
 _require_scratch_dax_iflag
 _require_xfs_io_command "falloc"
 
-prep_files()
+SRC_DIR=$SCRATCH_MNT/src
+SRC_FILE=$SRC_DIR/tf_s
+DST_DIR=$SCRATCH_MNT/dst
+DST_FILE=$DST_DIR/tf_d
+
+prep_directories()
 {
-	rm -f $SCRATCH_MNT/tf_{s,d}
+	mkdir -p $SRC_DIR $DST_DIR
+}
 
+prep_files()
+{
+	rm -f $SRC_FILE $DST_FILE
 	$XFS_IO_PROG -f -c "falloc 0 $tsize" \
-		$SCRATCH_MNT/tf_{s,d} >> $seqres.full 2>&1
+		$SRC_FILE $DST_FILE >> $seqres.full 2>&1
 }
 
 t_both_dax()
 {
+	$XFS_IO_PROG -c "chattr +x" $SRC_DIR $DST_DIR
 	prep_files
-	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_{s,d}
 	# with O_DIRECT first
-	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} $1 "dio both dax"
+	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
+		$1 "dio both dax"
 
 	prep_files
-	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_{s,d}
 	# again with buffered IO
-	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
+	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
 		$1 "buffered both dax"
 }
 
 t_nondax_to_dax()
 {
+	$XFS_IO_PROG -c "chattr -x" $SRC_DIR
+	$XFS_IO_PROG -c "chattr +x" $DST_DIR
 	prep_files
-	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_s
-	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_d
-	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} \
+	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
 		$1 "dio nondax to dax"
 
 	prep_files
-	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_s
-	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_d
-	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
+	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
 		$1 "buffered nondax to dax"
 }
 
 t_dax_to_nondax()
 {
+	$XFS_IO_PROG -c "chattr +x" $SRC_DIR
+	$XFS_IO_PROG -c "chattr -x" $DST_DIR
 	prep_files
-	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_s
-	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_d
-	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} \
+	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
 		$1 "dio dax to nondax"
 
 	prep_files
-	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_s
-	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_d
-	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
+	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
 		$1 "buffered dax to nondax"
 }
 
 t_both_nondax()
 {
+	$XFS_IO_PROG -c "chattr -x" $SRC_DIR $DST_DIR
 	prep_files
-	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_{s,d}
-	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} \
+	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
 		$1 "dio both nondax"
 
 	prep_files
-	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_{s,d}
-	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
+	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
 		$1 "buffered both nondax"
 }
 
@@ -112,6 +116,7 @@ t_dax_flag_mmap_dio()
 
 do_tests()
 {
+	prep_directories
 	# less than page size
 	t_dax_flag_mmap_dio 1024
 	# page size
@@ -124,15 +129,9 @@ do_tests()
 # make xfs aligned for PMD fault testing
 _scratch_mkfs_geom $(_get_hugepagesize) 1 >> $seqres.full 2>&1
 
-# mount with dax option
-_scratch_mount "-o dax"
-
 tsize=$((128 * 1024 * 1024))
 
-do_tests
-_scratch_unmount
-
-# mount again without dax option
+# mount without dax option
 export MOUNT_OPTIONS=""
 _scratch_mount
 do_tests
diff --git a/tests/generic/603.out b/tests/generic/603.out
new file mode 100644
index 00000000..6810da89
--- /dev/null
+++ b/tests/generic/603.out
@@ -0,0 +1,2 @@
+QA output created by 603
+Silence is golden
diff --git a/tests/generic/group b/tests/generic/group
index d9ab9a31..1d0d5606 100644
--- a/tests/generic/group
+++ b/tests/generic/group
@@ -605,3 +605,4 @@
 600 auto quick quota
 601 auto quick quota
 602 auto quick encrypt
+603 auto attr quick dax
diff --git a/tests/xfs/260.out b/tests/xfs/260.out
deleted file mode 100644
index 18ca517c..00000000
--- a/tests/xfs/260.out
+++ /dev/null
@@ -1,2 +0,0 @@
-QA output created by 260
-Silence is golden
diff --git a/tests/xfs/group b/tests/xfs/group
index daf54add..71c30898 100644
--- a/tests/xfs/group
+++ b/tests/xfs/group
@@ -257,7 +257,6 @@
 257 auto quick clone
 258 auto quick clone
 259 auto quick
-260 auto attr quick dax
 261 auto quick quota
 262 dangerous_fuzzers dangerous_scrub dangerous_online_repair
 263 auto quick quota
-- 
2.21.0




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH v3 0/6] Make fstests support new behavior of DAX
  2020-06-30 13:59 [PATCH v3 0/6] Make fstests support new behavior of DAX Xiao Yang
                   ` (5 preceding siblings ...)
  2020-06-30 13:59 ` [PATCH v3 6/6] xfs/260: Move and update xfs/260 Xiao Yang
@ 2020-06-30 20:34 ` Ira Weiny
  2020-07-01  1:10   ` Xiao Yang
  6 siblings, 1 reply; 13+ messages in thread
From: Ira Weiny @ 2020-06-30 20:34 UTC (permalink / raw)
  To: Xiao Yang; +Cc: fstests, darrick.wong

On Tue, Jun 30, 2020 at 09:59:45PM +0800, Xiao Yang wrote:
> The new behavior of DAX on xfs/ext4 has been merged into main kernel
> tree/ext4-dax branch so it is time for fstests to support new behavior
> of DAX.
> 
> References:
> https://lkml.org/lkml/2019/10/20/96
> https://lkml.org/lkml/2020/5/28/949
> 
> Xiao Yang (6):
>   common/rc: Introduce new helpers for DAX mount options and
>     FS_XFLAG_DAX
>   fstests: Use _require_scratch_dax_mountopt() and
>     _require_scratch_dax_iflag()
>   common/rc: Remove unused _require_scratch_dax()

Have the first 3 patches changed?  If not you could have added my Reviewed-by
from v2?[1]

Not sure if I need to look at them or not.

Ira

[1]
https://lore.kernel.org/fstests/b0d5803e-81e4-bb14-f47b-44036284577e@163.com/T/#mb0235e57045c4f7a3bc70c7745f2b7065bb3e3c1
https://lore.kernel.org/fstests/b0d5803e-81e4-bb14-f47b-44036284577e@163.com/T/#ma472463b67a354484a054cf0c0c1bf3c8567937b
https://lore.kernel.org/fstests/b0d5803e-81e4-bb14-f47b-44036284577e@163.com/T/#m5d44764e500370ceb4a350b4ae0df9bec8c08b56


>   generic/223: Don't clear all mkfs options for _scratch_mkfs_geom()
>     roughly
>   generic/413, xfs/260: Improve format operation for PMD fault testing
>   xfs/260: Move and update xfs/260
> 
>  common/rc                      | 60 ++++++++++++++++++++++++----
>  tests/ext4/030                 |  2 +-
>  tests/ext4/031                 |  4 +-
>  tests/generic/223              |  1 -
>  tests/generic/413              | 12 ++----
>  tests/generic/462              |  2 +-
>  tests/{xfs/260 => generic/603} | 71 +++++++++++++++++-----------------
>  tests/generic/603.out          |  2 +
>  tests/generic/group            |  1 +
>  tests/xfs/260.out              |  2 -
>  tests/xfs/group                |  1 -
>  11 files changed, 97 insertions(+), 61 deletions(-)
>  rename tests/{xfs/260 => generic/603} (54%)
>  create mode 100644 tests/generic/603.out
>  delete mode 100644 tests/xfs/260.out
> 
> -- 
> 2.21.0
> 
> 
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v3 6/6] xfs/260: Move and update xfs/260
  2020-06-30 13:59 ` [PATCH v3 6/6] xfs/260: Move and update xfs/260 Xiao Yang
@ 2020-06-30 20:41   ` Ira Weiny
  2020-07-01  0:57     ` Xiao Yang
  0 siblings, 1 reply; 13+ messages in thread
From: Ira Weiny @ 2020-06-30 20:41 UTC (permalink / raw)
  To: Xiao Yang; +Cc: fstests, darrick.wong

On Tue, Jun 30, 2020 at 09:59:51PM +0800, Xiao Yang wrote:
> 1) Both ext4 and xfs have supported inode DAX flag so move it to generic.
> 2) Modifying inode DAX flag on flies does not take effect immediately so
>    make files inherit the DAX flag of parent directory.
> 3) Setting/clearing inode DAX flag have no chance to change S_DAX flag if
>    mount with dax option so remove the related subtest.
> 
> Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
> Signed-off-by: Ira Weiny <ira.weiny@intel.com>
> ---
>  tests/{xfs/260 => generic/603} | 63 +++++++++++++++++-----------------
>  tests/generic/603.out          |  2 ++
>  tests/generic/group            |  1 +
>  tests/xfs/260.out              |  2 --
>  tests/xfs/group                |  1 -
>  5 files changed, 34 insertions(+), 35 deletions(-)
>  rename tests/{xfs/260 => generic/603} (60%)
>  create mode 100644 tests/generic/603.out
>  delete mode 100644 tests/xfs/260.out
> 
> diff --git a/tests/xfs/260 b/tests/generic/603
> similarity index 60%
> rename from tests/xfs/260
> rename to tests/generic/603
> index 7afc20f1..f40048f9 100755
> --- a/tests/xfs/260
> +++ b/tests/generic/603
> @@ -2,7 +2,7 @@
>  # SPDX-License-Identifier: GPL-2.0
>  # Copyright (c) 2017 Red Hat Inc.  All Rights Reserved.
>  #
> -# FS QA Test 260
> +# FS QA Test 603
>  #
>  # Test per-inode DAX flag by mmap direct/buffered IO.
>  #
> @@ -28,7 +28,7 @@ _cleanup()
>  # remove previous $seqres.full before test
>  rm -f $seqres.full
>  
> -_supported_fs xfs
> +_supported_fs generic
>  _supported_os Linux
>  _require_scratch_dax_mountopt "dax"
>  _require_test_program "feature"
> @@ -36,68 +36,72 @@ _require_test_program "t_mmap_dio"
>  _require_scratch_dax_iflag
>  _require_xfs_io_command "falloc"
>  
> -prep_files()
> +SRC_DIR=$SCRATCH_MNT/src
> +SRC_FILE=$SRC_DIR/tf_s
> +DST_DIR=$SCRATCH_MNT/dst
> +DST_FILE=$DST_DIR/tf_d
> +
> +prep_directories()
>  {
> -	rm -f $SCRATCH_MNT/tf_{s,d}
> +	mkdir -p $SRC_DIR $DST_DIR
> +}
>  
> +prep_files()
> +{
> +	rm -f $SRC_FILE $DST_FILE
>  	$XFS_IO_PROG -f -c "falloc 0 $tsize" \
> -		$SCRATCH_MNT/tf_{s,d} >> $seqres.full 2>&1
> +		$SRC_FILE $DST_FILE >> $seqres.full 2>&1
>  }
>  
>  t_both_dax()
>  {
> +	$XFS_IO_PROG -c "chattr +x" $SRC_DIR $DST_DIR
>  	prep_files
> -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_{s,d}
>  	# with O_DIRECT first
> -	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} $1 "dio both dax"
> +	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
> +		$1 "dio both dax"
>  
>  	prep_files
> -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_{s,d}
>  	# again with buffered IO
> -	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
> +	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
>  		$1 "buffered both dax"
>  }
>  
>  t_nondax_to_dax()
>  {
> +	$XFS_IO_PROG -c "chattr -x" $SRC_DIR
> +	$XFS_IO_PROG -c "chattr +x" $DST_DIR
>  	prep_files
> -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_s
> -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_d
> -	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} \
> +	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
>  		$1 "dio nondax to dax"
>  
>  	prep_files
> -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_s
> -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_d
> -	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
> +	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
>  		$1 "buffered nondax to dax"
>  }
>  
>  t_dax_to_nondax()
>  {
> +	$XFS_IO_PROG -c "chattr +x" $SRC_DIR
> +	$XFS_IO_PROG -c "chattr -x" $DST_DIR
>  	prep_files
> -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_s
> -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_d
> -	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} \
> +	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
>  		$1 "dio dax to nondax"
>  
>  	prep_files
> -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_s
> -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_d
> -	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
> +	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
>  		$1 "buffered dax to nondax"
>  }
>  
>  t_both_nondax()
>  {
> +	$XFS_IO_PROG -c "chattr -x" $SRC_DIR $DST_DIR
>  	prep_files
> -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_{s,d}
> -	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} \
> +	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
>  		$1 "dio both nondax"
>  
>  	prep_files
> -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_{s,d}
> -	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
> +	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
>  		$1 "buffered both nondax"
>  }
>  
> @@ -112,6 +116,7 @@ t_dax_flag_mmap_dio()
>  
>  do_tests()
>  {
> +	prep_directories
>  	# less than page size
>  	t_dax_flag_mmap_dio 1024
>  	# page size
> @@ -124,15 +129,9 @@ do_tests()
>  # make xfs aligned for PMD fault testing
>  _scratch_mkfs_geom $(_get_hugepagesize) 1 >> $seqres.full 2>&1
>  
> -# mount with dax option
> -_scratch_mount "-o dax"
> -
>  tsize=$((128 * 1024 * 1024))
>  
> -do_tests
> -_scratch_unmount
> -
> -# mount again without dax option
> +# mount without dax option

NIT: we could mention that this defaults to the dax=inode state for the FS
now...  but I don't think it is absolutely necessary.

Reviewed-by: Ira Weiny <ira.weiny@intel.com>


>  export MOUNT_OPTIONS=""
>  _scratch_mount
>  do_tests
> diff --git a/tests/generic/603.out b/tests/generic/603.out
> new file mode 100644
> index 00000000..6810da89
> --- /dev/null
> +++ b/tests/generic/603.out
> @@ -0,0 +1,2 @@
> +QA output created by 603
> +Silence is golden
> diff --git a/tests/generic/group b/tests/generic/group
> index d9ab9a31..1d0d5606 100644
> --- a/tests/generic/group
> +++ b/tests/generic/group
> @@ -605,3 +605,4 @@
>  600 auto quick quota
>  601 auto quick quota
>  602 auto quick encrypt
> +603 auto attr quick dax
> diff --git a/tests/xfs/260.out b/tests/xfs/260.out
> deleted file mode 100644
> index 18ca517c..00000000
> --- a/tests/xfs/260.out
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -QA output created by 260
> -Silence is golden
> diff --git a/tests/xfs/group b/tests/xfs/group
> index daf54add..71c30898 100644
> --- a/tests/xfs/group
> +++ b/tests/xfs/group
> @@ -257,7 +257,6 @@
>  257 auto quick clone
>  258 auto quick clone
>  259 auto quick
> -260 auto attr quick dax
>  261 auto quick quota
>  262 dangerous_fuzzers dangerous_scrub dangerous_online_repair
>  263 auto quick quota
> -- 
> 2.21.0
> 
> 
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v3 6/6] xfs/260: Move and update xfs/260
  2020-06-30 20:41   ` Ira Weiny
@ 2020-07-01  0:57     ` Xiao Yang
  2020-07-01 16:07       ` Ira Weiny
  0 siblings, 1 reply; 13+ messages in thread
From: Xiao Yang @ 2020-07-01  0:57 UTC (permalink / raw)
  To: Ira Weiny; +Cc: fstests, darrick.wong

On 2020/7/1 4:41, Ira Weiny wrote:
> On Tue, Jun 30, 2020 at 09:59:51PM +0800, Xiao Yang wrote:
>> 1) Both ext4 and xfs have supported inode DAX flag so move it to generic.
>> 2) Modifying inode DAX flag on flies does not take effect immediately so
>>     make files inherit the DAX flag of parent directory.
>> 3) Setting/clearing inode DAX flag have no chance to change S_DAX flag if
>>     mount with dax option so remove the related subtest.
>>
>> Signed-off-by: Xiao Yang<yangx.jy@cn.fujitsu.com>
>> Signed-off-by: Ira Weiny<ira.weiny@intel.com>
>> ---
>>   tests/{xfs/260 =>  generic/603} | 63 +++++++++++++++++-----------------
>>   tests/generic/603.out          |  2 ++
>>   tests/generic/group            |  1 +
>>   tests/xfs/260.out              |  2 --
>>   tests/xfs/group                |  1 -
>>   5 files changed, 34 insertions(+), 35 deletions(-)
>>   rename tests/{xfs/260 =>  generic/603} (60%)
>>   create mode 100644 tests/generic/603.out
>>   delete mode 100644 tests/xfs/260.out
>>
>> diff --git a/tests/xfs/260 b/tests/generic/603
>> similarity index 60%
>> rename from tests/xfs/260
>> rename to tests/generic/603
>> index 7afc20f1..f40048f9 100755
>> --- a/tests/xfs/260
>> +++ b/tests/generic/603
>> @@ -2,7 +2,7 @@
>>   # SPDX-License-Identifier: GPL-2.0
>>   # Copyright (c) 2017 Red Hat Inc.  All Rights Reserved.
>>   #
>> -# FS QA Test 260
>> +# FS QA Test 603
>>   #
>>   # Test per-inode DAX flag by mmap direct/buffered IO.
>>   #
>> @@ -28,7 +28,7 @@ _cleanup()
>>   # remove previous $seqres.full before test
>>   rm -f $seqres.full
>>
>> -_supported_fs xfs
>> +_supported_fs generic
>>   _supported_os Linux
>>   _require_scratch_dax_mountopt "dax"
>>   _require_test_program "feature"
>> @@ -36,68 +36,72 @@ _require_test_program "t_mmap_dio"
>>   _require_scratch_dax_iflag
>>   _require_xfs_io_command "falloc"
>>
>> -prep_files()
>> +SRC_DIR=$SCRATCH_MNT/src
>> +SRC_FILE=$SRC_DIR/tf_s
>> +DST_DIR=$SCRATCH_MNT/dst
>> +DST_FILE=$DST_DIR/tf_d
>> +
>> +prep_directories()
>>   {
>> -	rm -f $SCRATCH_MNT/tf_{s,d}
>> +	mkdir -p $SRC_DIR $DST_DIR
>> +}
>>
>> +prep_files()
>> +{
>> +	rm -f $SRC_FILE $DST_FILE
>>   	$XFS_IO_PROG -f -c "falloc 0 $tsize" \
>> -		$SCRATCH_MNT/tf_{s,d}>>  $seqres.full 2>&1
>> +		$SRC_FILE $DST_FILE>>  $seqres.full 2>&1
>>   }
>>
>>   t_both_dax()
>>   {
>> +	$XFS_IO_PROG -c "chattr +x" $SRC_DIR $DST_DIR
>>   	prep_files
>> -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_{s,d}
>>   	# with O_DIRECT first
>> -	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} $1 "dio both dax"
>> +	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
>> +		$1 "dio both dax"
>>
>>   	prep_files
>> -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_{s,d}
>>   	# again with buffered IO
>> -	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
>> +	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
>>   		$1 "buffered both dax"
>>   }
>>
>>   t_nondax_to_dax()
>>   {
>> +	$XFS_IO_PROG -c "chattr -x" $SRC_DIR
>> +	$XFS_IO_PROG -c "chattr +x" $DST_DIR
>>   	prep_files
>> -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_s
>> -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_d
>> -	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} \
>> +	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
>>   		$1 "dio nondax to dax"
>>
>>   	prep_files
>> -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_s
>> -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_d
>> -	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
>> +	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
>>   		$1 "buffered nondax to dax"
>>   }
>>
>>   t_dax_to_nondax()
>>   {
>> +	$XFS_IO_PROG -c "chattr +x" $SRC_DIR
>> +	$XFS_IO_PROG -c "chattr -x" $DST_DIR
>>   	prep_files
>> -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_s
>> -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_d
>> -	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} \
>> +	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
>>   		$1 "dio dax to nondax"
>>
>>   	prep_files
>> -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_s
>> -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_d
>> -	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
>> +	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
>>   		$1 "buffered dax to nondax"
>>   }
>>
>>   t_both_nondax()
>>   {
>> +	$XFS_IO_PROG -c "chattr -x" $SRC_DIR $DST_DIR
>>   	prep_files
>> -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_{s,d}
>> -	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} \
>> +	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
>>   		$1 "dio both nondax"
>>
>>   	prep_files
>> -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_{s,d}
>> -	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
>> +	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
>>   		$1 "buffered both nondax"
>>   }
>>
>> @@ -112,6 +116,7 @@ t_dax_flag_mmap_dio()
>>
>>   do_tests()
>>   {
>> +	prep_directories
>>   	# less than page size
>>   	t_dax_flag_mmap_dio 1024
>>   	# page size
>> @@ -124,15 +129,9 @@ do_tests()
>>   # make xfs aligned for PMD fault testing
>>   _scratch_mkfs_geom $(_get_hugepagesize) 1>>  $seqres.full 2>&1
>>
>> -# mount with dax option
>> -_scratch_mount "-o dax"
>> -
>>   tsize=$((128 * 1024 * 1024))
>>
>> -do_tests
>> -_scratch_unmount
>> -
>> -# mount again without dax option
>> +# mount without dax option
> NIT: we could mention that this defaults to the dax=inode state for the FS
> now...  but I don't think it is absolutely necessary.
Hi Ira,

I am ok to add the nit. :-)
In addition, I actaully simplify the code your provided so do you have 
any comment on this change.?

Best Regards,
Xiao Yang
> Reviewed-by: Ira Weiny<ira.weiny@intel.com>
>
>
>>   export MOUNT_OPTIONS=""
>>   _scratch_mount
>>   do_tests
>> diff --git a/tests/generic/603.out b/tests/generic/603.out
>> new file mode 100644
>> index 00000000..6810da89
>> --- /dev/null
>> +++ b/tests/generic/603.out
>> @@ -0,0 +1,2 @@
>> +QA output created by 603
>> +Silence is golden
>> diff --git a/tests/generic/group b/tests/generic/group
>> index d9ab9a31..1d0d5606 100644
>> --- a/tests/generic/group
>> +++ b/tests/generic/group
>> @@ -605,3 +605,4 @@
>>   600 auto quick quota
>>   601 auto quick quota
>>   602 auto quick encrypt
>> +603 auto attr quick dax
>> diff --git a/tests/xfs/260.out b/tests/xfs/260.out
>> deleted file mode 100644
>> index 18ca517c..00000000
>> --- a/tests/xfs/260.out
>> +++ /dev/null
>> @@ -1,2 +0,0 @@
>> -QA output created by 260
>> -Silence is golden
>> diff --git a/tests/xfs/group b/tests/xfs/group
>> index daf54add..71c30898 100644
>> --- a/tests/xfs/group
>> +++ b/tests/xfs/group
>> @@ -257,7 +257,6 @@
>>   257 auto quick clone
>>   258 auto quick clone
>>   259 auto quick
>> -260 auto attr quick dax
>>   261 auto quick quota
>>   262 dangerous_fuzzers dangerous_scrub dangerous_online_repair
>>   263 auto quick quota
>> -- 
>> 2.21.0
>>
>>
>>
>
> .
>




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v3 0/6] Make fstests support new behavior of DAX
  2020-06-30 20:34 ` [PATCH v3 0/6] Make fstests support new behavior of DAX Ira Weiny
@ 2020-07-01  1:10   ` Xiao Yang
  2020-07-01 16:07     ` Ira Weiny
  0 siblings, 1 reply; 13+ messages in thread
From: Xiao Yang @ 2020-07-01  1:10 UTC (permalink / raw)
  To: Ira Weiny; +Cc: fstests, darrick.wong

On 2020/7/1 4:34, Ira Weiny wrote:
> On Tue, Jun 30, 2020 at 09:59:45PM +0800, Xiao Yang wrote:
>> The new behavior of DAX on xfs/ext4 has been merged into main kernel
>> tree/ext4-dax branch so it is time for fstests to support new behavior
>> of DAX.
>>
>> References:
>> https://lkml.org/lkml/2019/10/20/96
>> https://lkml.org/lkml/2020/5/28/949
>>
>> Xiao Yang (6):
>>    common/rc: Introduce new helpers for DAX mount options and
>>      FS_XFLAG_DAX
>>    fstests: Use _require_scratch_dax_mountopt() and
>>      _require_scratch_dax_iflag()
>>    common/rc: Remove unused _require_scratch_dax()
> Have the first 3 patches changed?  If not you could have added my Reviewed-by
> from v2?[1]
>
> Not sure if I need to look at them or not.
Hi Ira,

I didn't change the first 3 patches.
Sorry, I forget to add your Reviewed-by and will add it in v4 patch.

Best Regards,
Xiao Yang
> Ira
>
> [1]
> https://lore.kernel.org/fstests/b0d5803e-81e4-bb14-f47b-44036284577e@163.com/T/#mb0235e57045c4f7a3bc70c7745f2b7065bb3e3c1
> https://lore.kernel.org/fstests/b0d5803e-81e4-bb14-f47b-44036284577e@163.com/T/#ma472463b67a354484a054cf0c0c1bf3c8567937b
> https://lore.kernel.org/fstests/b0d5803e-81e4-bb14-f47b-44036284577e@163.com/T/#m5d44764e500370ceb4a350b4ae0df9bec8c08b56
>
>
>>    generic/223: Don't clear all mkfs options for _scratch_mkfs_geom()
>>      roughly
>>    generic/413, xfs/260: Improve format operation for PMD fault testing
>>    xfs/260: Move and update xfs/260
>>
>>   common/rc                      | 60 ++++++++++++++++++++++++----
>>   tests/ext4/030                 |  2 +-
>>   tests/ext4/031                 |  4 +-
>>   tests/generic/223              |  1 -
>>   tests/generic/413              | 12 ++----
>>   tests/generic/462              |  2 +-
>>   tests/{xfs/260 =>  generic/603} | 71 +++++++++++++++++-----------------
>>   tests/generic/603.out          |  2 +
>>   tests/generic/group            |  1 +
>>   tests/xfs/260.out              |  2 -
>>   tests/xfs/group                |  1 -
>>   11 files changed, 97 insertions(+), 61 deletions(-)
>>   rename tests/{xfs/260 =>  generic/603} (54%)
>>   create mode 100644 tests/generic/603.out
>>   delete mode 100644 tests/xfs/260.out
>>
>> -- 
>> 2.21.0
>>
>>
>>
>
> .
>




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v3 6/6] xfs/260: Move and update xfs/260
  2020-07-01  0:57     ` Xiao Yang
@ 2020-07-01 16:07       ` Ira Weiny
  0 siblings, 0 replies; 13+ messages in thread
From: Ira Weiny @ 2020-07-01 16:07 UTC (permalink / raw)
  To: Xiao Yang; +Cc: fstests, darrick.wong

On Wed, Jul 01, 2020 at 08:57:50AM +0800, Xiao Yang wrote:
> On 2020/7/1 4:41, Ira Weiny wrote:
> > On Tue, Jun 30, 2020 at 09:59:51PM +0800, Xiao Yang wrote:
> > > 1) Both ext4 and xfs have supported inode DAX flag so move it to generic.
> > > 2) Modifying inode DAX flag on flies does not take effect immediately so
> > >     make files inherit the DAX flag of parent directory.
> > > 3) Setting/clearing inode DAX flag have no chance to change S_DAX flag if
> > >     mount with dax option so remove the related subtest.
> > > 
> > > Signed-off-by: Xiao Yang<yangx.jy@cn.fujitsu.com>
> > > Signed-off-by: Ira Weiny<ira.weiny@intel.com>
> > > ---
> > >   tests/{xfs/260 =>  generic/603} | 63 +++++++++++++++++-----------------
> > >   tests/generic/603.out          |  2 ++
> > >   tests/generic/group            |  1 +
> > >   tests/xfs/260.out              |  2 --
> > >   tests/xfs/group                |  1 -
> > >   5 files changed, 34 insertions(+), 35 deletions(-)
> > >   rename tests/{xfs/260 =>  generic/603} (60%)
> > >   create mode 100644 tests/generic/603.out
> > >   delete mode 100644 tests/xfs/260.out
> > > 
> > > diff --git a/tests/xfs/260 b/tests/generic/603
> > > similarity index 60%
> > > rename from tests/xfs/260
> > > rename to tests/generic/603
> > > index 7afc20f1..f40048f9 100755
> > > --- a/tests/xfs/260
> > > +++ b/tests/generic/603
> > > @@ -2,7 +2,7 @@
> > >   # SPDX-License-Identifier: GPL-2.0
> > >   # Copyright (c) 2017 Red Hat Inc.  All Rights Reserved.
> > >   #
> > > -# FS QA Test 260
> > > +# FS QA Test 603
> > >   #
> > >   # Test per-inode DAX flag by mmap direct/buffered IO.
> > >   #
> > > @@ -28,7 +28,7 @@ _cleanup()
> > >   # remove previous $seqres.full before test
> > >   rm -f $seqres.full
> > > 
> > > -_supported_fs xfs
> > > +_supported_fs generic
> > >   _supported_os Linux
> > >   _require_scratch_dax_mountopt "dax"
> > >   _require_test_program "feature"
> > > @@ -36,68 +36,72 @@ _require_test_program "t_mmap_dio"
> > >   _require_scratch_dax_iflag
> > >   _require_xfs_io_command "falloc"
> > > 
> > > -prep_files()
> > > +SRC_DIR=$SCRATCH_MNT/src
> > > +SRC_FILE=$SRC_DIR/tf_s
> > > +DST_DIR=$SCRATCH_MNT/dst
> > > +DST_FILE=$DST_DIR/tf_d
> > > +
> > > +prep_directories()
> > >   {
> > > -	rm -f $SCRATCH_MNT/tf_{s,d}
> > > +	mkdir -p $SRC_DIR $DST_DIR
> > > +}
> > > 
> > > +prep_files()
> > > +{
> > > +	rm -f $SRC_FILE $DST_FILE
> > >   	$XFS_IO_PROG -f -c "falloc 0 $tsize" \
> > > -		$SCRATCH_MNT/tf_{s,d}>>  $seqres.full 2>&1
> > > +		$SRC_FILE $DST_FILE>>  $seqres.full 2>&1
> > >   }
> > > 
> > >   t_both_dax()
> > >   {
> > > +	$XFS_IO_PROG -c "chattr +x" $SRC_DIR $DST_DIR
> > >   	prep_files
> > > -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_{s,d}
> > >   	# with O_DIRECT first
> > > -	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} $1 "dio both dax"
> > > +	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
> > > +		$1 "dio both dax"
> > > 
> > >   	prep_files
> > > -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_{s,d}
> > >   	# again with buffered IO
> > > -	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
> > > +	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
> > >   		$1 "buffered both dax"
> > >   }
> > > 
> > >   t_nondax_to_dax()
> > >   {
> > > +	$XFS_IO_PROG -c "chattr -x" $SRC_DIR
> > > +	$XFS_IO_PROG -c "chattr +x" $DST_DIR
> > >   	prep_files
> > > -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_s
> > > -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_d
> > > -	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} \
> > > +	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
> > >   		$1 "dio nondax to dax"
> > > 
> > >   	prep_files
> > > -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_s
> > > -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_d
> > > -	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
> > > +	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
> > >   		$1 "buffered nondax to dax"
> > >   }
> > > 
> > >   t_dax_to_nondax()
> > >   {
> > > +	$XFS_IO_PROG -c "chattr +x" $SRC_DIR
> > > +	$XFS_IO_PROG -c "chattr -x" $DST_DIR
> > >   	prep_files
> > > -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_s
> > > -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_d
> > > -	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} \
> > > +	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
> > >   		$1 "dio dax to nondax"
> > > 
> > >   	prep_files
> > > -	$XFS_IO_PROG -c "chattr +x" $SCRATCH_MNT/tf_s
> > > -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_d
> > > -	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
> > > +	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
> > >   		$1 "buffered dax to nondax"
> > >   }
> > > 
> > >   t_both_nondax()
> > >   {
> > > +	$XFS_IO_PROG -c "chattr -x" $SRC_DIR $DST_DIR
> > >   	prep_files
> > > -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_{s,d}
> > > -	$here/src/t_mmap_dio $SCRATCH_MNT/tf_{s,d} \
> > > +	$here/src/t_mmap_dio $SRC_FILE $DST_FILE \
> > >   		$1 "dio both nondax"
> > > 
> > >   	prep_files
> > > -	$XFS_IO_PROG -c "chattr -x" $SCRATCH_MNT/tf_{s,d}
> > > -	$here/src/t_mmap_dio -b $SCRATCH_MNT/tf_{s,d} \
> > > +	$here/src/t_mmap_dio -b $SRC_FILE $DST_FILE \
> > >   		$1 "buffered both nondax"
> > >   }
> > > 
> > > @@ -112,6 +116,7 @@ t_dax_flag_mmap_dio()
> > > 
> > >   do_tests()
> > >   {
> > > +	prep_directories
> > >   	# less than page size
> > >   	t_dax_flag_mmap_dio 1024
> > >   	# page size
> > > @@ -124,15 +129,9 @@ do_tests()
> > >   # make xfs aligned for PMD fault testing
> > >   _scratch_mkfs_geom $(_get_hugepagesize) 1>>  $seqres.full 2>&1
> > > 
> > > -# mount with dax option
> > > -_scratch_mount "-o dax"
> > > -
> > >   tsize=$((128 * 1024 * 1024))
> > > 
> > > -do_tests
> > > -_scratch_unmount
> > > -
> > > -# mount again without dax option
> > > +# mount without dax option
> > NIT: we could mention that this defaults to the dax=inode state for the FS
> > now...  but I don't think it is absolutely necessary.
> Hi Ira,
> 
> I am ok to add the nit. :-)
> In addition, I actaully simplify the code your provided so do you have any
> comment on this change.?

No I think what you have here is good. Thanks...

Reviewed-by: Ira Weiny <ira.weiny@intel.com>

> 
> Best Regards,
> Xiao Yang
> > Reviewed-by: Ira Weiny<ira.weiny@intel.com>
> > 
> > 
> > >   export MOUNT_OPTIONS=""
> > >   _scratch_mount
> > >   do_tests
> > > diff --git a/tests/generic/603.out b/tests/generic/603.out
> > > new file mode 100644
> > > index 00000000..6810da89
> > > --- /dev/null
> > > +++ b/tests/generic/603.out
> > > @@ -0,0 +1,2 @@
> > > +QA output created by 603
> > > +Silence is golden
> > > diff --git a/tests/generic/group b/tests/generic/group
> > > index d9ab9a31..1d0d5606 100644
> > > --- a/tests/generic/group
> > > +++ b/tests/generic/group
> > > @@ -605,3 +605,4 @@
> > >   600 auto quick quota
> > >   601 auto quick quota
> > >   602 auto quick encrypt
> > > +603 auto attr quick dax
> > > diff --git a/tests/xfs/260.out b/tests/xfs/260.out
> > > deleted file mode 100644
> > > index 18ca517c..00000000
> > > --- a/tests/xfs/260.out
> > > +++ /dev/null
> > > @@ -1,2 +0,0 @@
> > > -QA output created by 260
> > > -Silence is golden
> > > diff --git a/tests/xfs/group b/tests/xfs/group
> > > index daf54add..71c30898 100644
> > > --- a/tests/xfs/group
> > > +++ b/tests/xfs/group
> > > @@ -257,7 +257,6 @@
> > >   257 auto quick clone
> > >   258 auto quick clone
> > >   259 auto quick
> > > -260 auto attr quick dax
> > >   261 auto quick quota
> > >   262 dangerous_fuzzers dangerous_scrub dangerous_online_repair
> > >   263 auto quick quota
> > > -- 
> > > 2.21.0
> > > 
> > > 
> > > 
> > 
> > .
> > 
> 
> 
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v3 0/6] Make fstests support new behavior of DAX
  2020-07-01  1:10   ` Xiao Yang
@ 2020-07-01 16:07     ` Ira Weiny
  0 siblings, 0 replies; 13+ messages in thread
From: Ira Weiny @ 2020-07-01 16:07 UTC (permalink / raw)
  To: Xiao Yang; +Cc: fstests, darrick.wong

On Wed, Jul 01, 2020 at 09:10:15AM +0800, Xiao Yang wrote:
> On 2020/7/1 4:34, Ira Weiny wrote:
> > On Tue, Jun 30, 2020 at 09:59:45PM +0800, Xiao Yang wrote:
> > > The new behavior of DAX on xfs/ext4 has been merged into main kernel
> > > tree/ext4-dax branch so it is time for fstests to support new behavior
> > > of DAX.
> > > 
> > > References:
> > > https://lkml.org/lkml/2019/10/20/96
> > > https://lkml.org/lkml/2020/5/28/949
> > > 
> > > Xiao Yang (6):
> > >    common/rc: Introduce new helpers for DAX mount options and
> > >      FS_XFLAG_DAX
> > >    fstests: Use _require_scratch_dax_mountopt() and
> > >      _require_scratch_dax_iflag()
> > >    common/rc: Remove unused _require_scratch_dax()
> > Have the first 3 patches changed?  If not you could have added my Reviewed-by
> > from v2?[1]
> > 
> > Not sure if I need to look at them or not.
> Hi Ira,
> 
> I didn't change the first 3 patches.
> Sorry, I forget to add your Reviewed-by and will add it in v4 patch.

Cool!  NP I just did not want to go through them if I did not have to!  :-D

Ira

> 
> Best Regards,
> Xiao Yang
> > Ira
> > 
> > [1]
> > https://lore.kernel.org/fstests/b0d5803e-81e4-bb14-f47b-44036284577e@163.com/T/#mb0235e57045c4f7a3bc70c7745f2b7065bb3e3c1
> > https://lore.kernel.org/fstests/b0d5803e-81e4-bb14-f47b-44036284577e@163.com/T/#ma472463b67a354484a054cf0c0c1bf3c8567937b
> > https://lore.kernel.org/fstests/b0d5803e-81e4-bb14-f47b-44036284577e@163.com/T/#m5d44764e500370ceb4a350b4ae0df9bec8c08b56
> > 
> > 
> > >    generic/223: Don't clear all mkfs options for _scratch_mkfs_geom()
> > >      roughly
> > >    generic/413, xfs/260: Improve format operation for PMD fault testing
> > >    xfs/260: Move and update xfs/260
> > > 
> > >   common/rc                      | 60 ++++++++++++++++++++++++----
> > >   tests/ext4/030                 |  2 +-
> > >   tests/ext4/031                 |  4 +-
> > >   tests/generic/223              |  1 -
> > >   tests/generic/413              | 12 ++----
> > >   tests/generic/462              |  2 +-
> > >   tests/{xfs/260 =>  generic/603} | 71 +++++++++++++++++-----------------
> > >   tests/generic/603.out          |  2 +
> > >   tests/generic/group            |  1 +
> > >   tests/xfs/260.out              |  2 -
> > >   tests/xfs/group                |  1 -
> > >   11 files changed, 97 insertions(+), 61 deletions(-)
> > >   rename tests/{xfs/260 =>  generic/603} (54%)
> > >   create mode 100644 tests/generic/603.out
> > >   delete mode 100644 tests/xfs/260.out
> > > 
> > > -- 
> > > 2.21.0
> > > 
> > > 
> > > 
> > 
> > .
> > 
> 
> 
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2020-07-01 16:07 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-30 13:59 [PATCH v3 0/6] Make fstests support new behavior of DAX Xiao Yang
2020-06-30 13:59 ` [PATCH v3 1/6] common/rc: Introduce new helpers for DAX mount options and FS_XFLAG_DAX Xiao Yang
2020-06-30 13:59 ` [PATCH v3 2/6] fstests: Use _require_scratch_dax_mountopt() and _require_scratch_dax_iflag() Xiao Yang
2020-06-30 13:59 ` [PATCH v3 3/6] common/rc: Remove unused _require_scratch_dax() Xiao Yang
2020-06-30 13:59 ` [PATCH v3 4/6] generic/223: Don't clear all mkfs options for _scratch_mkfs_geom() roughly Xiao Yang
2020-06-30 13:59 ` [PATCH v3 5/6] generic/413, xfs/260: Improve format operation for PMD fault testing Xiao Yang
2020-06-30 13:59 ` [PATCH v3 6/6] xfs/260: Move and update xfs/260 Xiao Yang
2020-06-30 20:41   ` Ira Weiny
2020-07-01  0:57     ` Xiao Yang
2020-07-01 16:07       ` Ira Weiny
2020-06-30 20:34 ` [PATCH v3 0/6] Make fstests support new behavior of DAX Ira Weiny
2020-07-01  1:10   ` Xiao Yang
2020-07-01 16:07     ` Ira Weiny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).