]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
misc: fix test that fail formatting with 64k blocksize
authorDarrick J. Wong <djwong@kernel.org>
Tue, 27 Feb 2024 17:39:45 +0000 (18:39 +0100)
committerZorro Lang <zlang@kernel.org>
Wed, 13 Mar 2024 15:19:20 +0000 (23:19 +0800)
There's a bunch of tests that fail the formatting step when the test run
is configured to use XFS with a 64k blocksize.  This happens because XFS
doesn't really support that combination due to minimum log size
constraints. Fix the test to format larger devices in that case.

Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Co-developed-by: Pankaj Raghav <p.raghav@samsung.com>
Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
Reviewed-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
12 files changed:
common/rc
tests/generic/042
tests/generic/081
tests/generic/108
tests/generic/455
tests/generic/457
tests/generic/482
tests/generic/704
tests/generic/730
tests/generic/731
tests/shared/298
tests/xfs/279

index 10f4817ad4518f174951df68b3f022c1fc1e41a0..37d26bf21b7c5f4b7b5dd740af807396872df4ce 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -938,6 +938,35 @@ _check_minimal_fs_size()
        fi
 }
 
+# Round a proposed filesystem size up to the minimium supported size.  The
+# input is in MB and so is the output.
+_small_fs_size_mb()
+{
+       local size="$1"
+       local runner_min_size=0
+       local fs_min_size=0
+
+       case "$FSTYP" in
+       xfs)
+               # xfs no longer supports filesystems smaller than 600m
+               fs_min_size=600
+               ;;
+       f2fs)
+               # f2fs-utils 1.9.0 needs at least 38 MB space for f2fs image.
+               # However, f2fs-utils 1.14.0 needs at least 52 MB. Not sure if
+               # it will change again. So just set it 128M.
+               fs_min_size=128
+               ;;
+       esac
+       (( size < fs_min_size )) && size="$fs_min_size"
+
+       # If the test runner wanted a minimum size, enforce that here.
+       test -n "$MIN_FSSIZE" && runner_min_size=$((MIN_FSSIZE / 1048576))
+       (( size < runner_min_size)) && size="$runner_min_size"
+
+       echo "$size"
+}
+
 # Create fs of certain size on scratch device
 # _scratch_mkfs_sized <size in bytes> [optional blocksize]
 _scratch_mkfs_sized()
index 5116183f79f36fe2f00d6d5d747effa4dad7e574..63a46d6b2b84ca29a73954f00c85d5f1d693b4a0 100755 (executable)
@@ -27,14 +27,7 @@ _crashtest()
        img=$SCRATCH_MNT/$seq.img
        mnt=$SCRATCH_MNT/$seq.mnt
        file=$mnt/file
-       size=25M
-
-       # f2fs-utils 1.9.0 needs at least 38 MB space for f2fs image. However,
-       # f2fs-utils 1.14.0 needs at least 52 MB. Not sure if it will change
-       # again. So just set it 128M.
-       if [ $FSTYP == "f2fs" ]; then
-               size=128M
-       fi
+       size=$(_small_fs_size_mb 25)M
 
        # Create an fs on a small, initialized image. The pattern is written to
        # the image to detect stale data exposure.
index 22ac94de538304b44aebd235115e48289754181f..0996f221d3804b2b0c3330d221ad235b73d7288b 100755 (executable)
@@ -62,13 +62,16 @@ snapname=snap_$seq
 mnt=$TEST_DIR/mnt_$seq
 mkdir -p $mnt
 
+size=$(_small_fs_size_mb 300)
+lvsize=$((size * 85 / 100))     # ~256M
+
 # make sure there's enough disk space for 256M lv, test for 300M here in case
 # lvm uses some space for metadata
-_scratch_mkfs_sized $((300 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((size * 1024 * 1024)) >>$seqres.full 2>&1
 $LVM_PROG vgcreate -f $vgname $SCRATCH_DEV >>$seqres.full 2>&1
 # We use yes pipe instead of 'lvcreate --yes' because old version of lvm
 # (like 2.02.95 in RHEL6) don't support --yes option
-yes | $LVM_PROG lvcreate -L 256M -n $lvname $vgname >>$seqres.full 2>&1
+yes | $LVM_PROG lvcreate -L ${lvsize}M -n $lvname $vgname >>$seqres.full 2>&1
 # wait for lvcreation to fully complete
 $UDEV_SETTLE_PROG >>$seqres.full 2>&1
 
index efe66ba57f1ce9e09c73d88b92de508285bbde43..07703fc8f1e446cdfb0dd602d33c44863d07dfee 100755 (executable)
@@ -44,9 +44,11 @@ vgname=vg_$seq
 
 physical=`blockdev --getpbsz $SCRATCH_DEV`
 logical=`blockdev --getss $SCRATCH_DEV`
+size=$(_small_fs_size_mb 300)
+lvsize=$((size * 91 / 100))
 
 # _get_scsi_debug_dev returns a scsi debug device with 128M in size by default
-SCSI_DEBUG_DEV=`_get_scsi_debug_dev ${physical:-512} ${logical:-512} 0 300`
+SCSI_DEBUG_DEV=`_get_scsi_debug_dev ${physical:-512} ${logical:-512} 0 $size`
 test -b "$SCSI_DEBUG_DEV" || _notrun "Failed to initialize scsi debug device"
 echo "SCSI debug device $SCSI_DEBUG_DEV" >>$seqres.full
 
@@ -55,7 +57,7 @@ $LVM_PROG pvcreate -f $SCSI_DEBUG_DEV $SCRATCH_DEV >>$seqres.full 2>&1
 $LVM_PROG vgcreate -f $vgname $SCSI_DEBUG_DEV $SCRATCH_DEV >>$seqres.full 2>&1
 # We use yes pipe instead of 'lvcreate --yes' because old version of lvm
 # (like 2.02.95 in RHEL6) don't support --yes option
-yes | $LVM_PROG lvcreate -i 2 -I 4m -L 275m -n $lvname $vgname \
+yes | $LVM_PROG lvcreate -i 2 -I 4m -L ${lvsize}m -n $lvname $vgname \
        >>$seqres.full 2>&1
 # wait for lv creation to fully complete
 $UDEV_SETTLE_PROG >>$seqres.full 2>&1
index c13d872c61728042a83e864e70f93d7be6dc237a..da803de08feee7ce7c73d4b0eb1fe013cabdd321 100755 (executable)
@@ -51,7 +51,8 @@ SANITY_DIR=$TEST_DIR/fsxtests
 rm -rf $SANITY_DIR
 mkdir $SANITY_DIR
 
-devsize=$((1024*1024*200 / 512))        # 200m phys/virt size
+size=$(_small_fs_size_mb 200)           # 200m phys/virt size
+devsize=$((1024*1024*size / 512))
 csize=$((1024*64 / 512))                # 64k cluster size
 lowspace=$((1024*1024 / 512))           # 1m low space threshold
 
index ca0f5e62242660bca0fd3cbc6428f89e4609e425..03aeb8147585b030f3d56d1a70636e18a4b99c0d 100755 (executable)
@@ -55,7 +55,8 @@ SANITY_DIR=$TEST_DIR/fsxtests
 rm -rf $SANITY_DIR
 mkdir $SANITY_DIR
 
-devsize=$((1024*1024*200 / 512))        # 200m phys/virt size
+size=$(_small_fs_size_mb 200)           # 200m phys/virt size
+devsize=$((1024*1024*size / 512))
 csize=$((1024*64 / 512))                # 64k cluster size
 lowspace=$((1024*1024 / 512))           # 1m low space threshold
 
index 6d8396d98289d5739b4ea7b5ff21135f08d3f895..c647d24c2a40532e58dfa9cfa789cd980723c7be 100755 (executable)
@@ -65,7 +65,8 @@ fi
 fsstress_args=$(_scale_fsstress_args -w -d $SCRATCH_MNT -n 512 -p $nr_cpus \
                $FSSTRESS_AVOID)
 
-devsize=$((1024*1024*200 / 512))       # 200m phys/virt size
+size=$(_small_fs_size_mb 200)           # 200m phys/virt size
+devsize=$((1024*1024*size / 512))
 csize=$((1024*64 / 512))               # 64k cluster size
 lowspace=$((1024*1024 / 512))          # 1m low space threshold
 
index c0142a60519fcdf11eff83a7772e5facef1ef019..6cc4bb4af096eeb3c5611160942a778f60084f36 100755 (executable)
@@ -30,8 +30,9 @@ _require_scsi_debug
 _require_test
 _require_block_device $TEST_DEV
 
+size=$(_small_fs_size_mb 256)
 echo "Get a device with 4096 physical sector size and 512 logical sector size"
-SCSI_DEBUG_DEV=`_get_scsi_debug_dev 4096 512 0 256`
+SCSI_DEBUG_DEV=`_get_scsi_debug_dev 4096 512 0 $size`
 blockdev --getpbsz --getss $SCSI_DEBUG_DEV
 
 echo "mkfs and mount"
index 11308cdaa1d20cf3b45d21ac0dbbd22b4ae8a8b7..988c47e18e9fac064f8e25b65566a8eebe92f616 100755 (executable)
@@ -27,7 +27,8 @@ _require_test
 _require_block_device $TEST_DEV
 _require_scsi_debug
 
-SCSI_DEBUG_DEV=`_get_scsi_debug_dev 512 512 0 256`
+size=$(_small_fs_size_mb 256)
+SCSI_DEBUG_DEV=`_get_scsi_debug_dev 512 512 0 $size`
 test -b "$SCSI_DEBUG_DEV" || _notrun "Failed to initialize scsi debug device"
 echo "SCSI debug device $SCSI_DEBUG_DEV" >>$seqres.full
 
index e1400d062c7474b271300ed5e6a1bdd07e456063..b279e3f7b4fc7b0f9544e06c448bc0c351fa8149 100755 (executable)
@@ -27,7 +27,8 @@ _require_block_device $TEST_DEV
 _supported_fs generic
 _require_scsi_debug
 
-SCSI_DEBUG_DEV=`_get_scsi_debug_dev 512 512 0 256`
+size=$(_small_fs_size_mb 256)
+SCSI_DEBUG_DEV=`_get_scsi_debug_dev 512 512 0 $size`
 test -b "$SCSI_DEBUG_DEV" || _notrun "Failed to initialize scsi debug device"
 echo "SCSI debug device $SCSI_DEBUG_DEV" >>$seqres.full
 
index 2c86e29f0a576909083af19c46a994ecd0e2ef5f..1d4e8d943bdaa6b45b8c56d84623b327bbc1fa9a 100755 (executable)
@@ -20,7 +20,7 @@ if [ "$FSTYP" = "btrfs" ]; then
        fssize=3000
 else
        _require_fs_space $TEST_DIR 307200
-       fssize=300
+       fssize=$(_small_fs_size_mb 300)           # 200m phys/virt size
 fi
 
 [ "$FSTYP" = "ext4" ] && _require_dumpe2fs
index 835d187f516e4bb2b71b4a770463957f14a93956..9f366d1e759d26c21248cf8a6da370a6f7274711 100755 (executable)
@@ -26,6 +26,7 @@ _cleanup()
 _supported_fs xfs
 
 _require_scsi_debug
+size=$(_small_fs_size_mb 128)
 
 # Remove xfs signature so -f isn't needed to re-mkfs
 _wipe_device()
@@ -55,7 +56,7 @@ _check_mkfs()
 (
 echo "==================="
 echo "4k physical 512b logical aligned"
-SCSI_DEBUG_DEV=`_get_scsi_debug_dev 4096 512 0 128`
+SCSI_DEBUG_DEV=`_get_scsi_debug_dev 4096 512 0 $size`
 test -b "$SCSI_DEBUG_DEV" || _notrun "Could not get scsi_debug device"
 # sector size should default to 4k
 _check_mkfs $SCSI_DEBUG_DEV
@@ -68,7 +69,7 @@ _put_scsi_debug_dev
 (
 echo "==================="
 echo "4k physical 512b logical unaligned"
-SCSI_DEBUG_DEV=`_get_scsi_debug_dev 4096 512 1 128`
+SCSI_DEBUG_DEV=`_get_scsi_debug_dev 4096 512 1 $size`
 test -b "$SCSI_DEBUG_DEV" || _notrun "Could not get scsi_debug device"
 # should fail on misalignment
 _check_mkfs $SCSI_DEBUG_DEV
@@ -85,7 +86,7 @@ _put_scsi_debug_dev
 (
 echo "==================="
 echo "hard 4k physical / 4k logical"
-SCSI_DEBUG_DEV=`_get_scsi_debug_dev 4096 4096 0 128`
+SCSI_DEBUG_DEV=`_get_scsi_debug_dev 4096 4096 0 $size`
 test -b "$SCSI_DEBUG_DEV" || _notrun "Could not get scsi_debug device"
 # block size smaller than sector size should fail 
 _check_mkfs -b size=2048 $SCSI_DEBUG_DEV