generic/413, xfs/260: Improve format operation for PMD fault testing
authorXiao Yang <yangx.jy@cn.fujitsu.com>
Thu, 6 Aug 2020 02:13:38 +0000 (10:13 +0800)
committerEryu Guan <guaneryu@gmail.com>
Sun, 9 Aug 2020 17:04:08 +0000 (01:04 +0800)
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>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/rc
tests/generic/413
tests/xfs/260

index ad4d080d92a47c496846b7ccbf1d9a0c7e20fb09..98bb1454e90cb96abad8e97dd6455e70b29ed4c2 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -170,6 +170,16 @@ _get_filesize()
     stat -c %s "$1"
 }
 
     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 $*`
 _mount()
 {
     $MOUNT_PROG `_mount_ops_filter $*`
index 19e1b9261e32810867cc7b59681398849fb34082..dfe2912bf9364de2f14ccc16afa8714c3f668941 100755 (executable)
@@ -111,14 +111,8 @@ do_tests()
        t_mmap_dio_dax $((64 * 1024 * 1024))
 }
 
        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=""
 
 # mount SCRATCH_DEV with dax option, TEST_DEV not
 export MOUNT_OPTIONS=""
index bcdc60414b6a71a5587303c245dc16dbeef9f80a..81b42f01cae363b6fcd43f14dd75693875dec9ef 100755 (executable)
@@ -121,8 +121,8 @@ do_tests()
        t_dax_flag_mmap_dio $((64 * 1024 * 1024))
 }
 
        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"
 
 # mount with dax option
 _scratch_mount "-o dax"