From: Darrick J. Wong Date: Wed, 23 Mar 2016 06:37:31 +0000 (+1100) Subject: reflink: fix fragmentation tests to work on >4k block size filesystems X-Git-Tag: v2022.05.01~2575 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=3907442866dba11776da267e24856e2c0bb6e2a1;p=users%2Fhch%2Fxfstests-dev.git reflink: fix fragmentation tests to work on >4k block size filesystems For tests that only overwrite part of a file, only consider the number of extents in the *rewritten* blocks when deciding if the FS fragmentation performance is satisfactory. (Also slip in a fix for xfs/127 so that it formats correctly when we specify big blocksizes via MKFS_OPTIONS.) Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner --- diff --git a/tests/xfs/127 b/tests/xfs/127 index f44daae4d..6b768c934 100755 --- a/tests/xfs/127 +++ b/tests/xfs/127 @@ -48,7 +48,7 @@ _require_scratch_reflink _require_cp_reflink echo "Format and mount" -_scratch_mkfs -d size=$((2 * 4096 * 4096)) -l size=4194304 > $seqres.full 2>&1 +_scratch_mkfs_sized $((2 * 4096 * 4096)) > $seqres.full 2>&1 _scratch_mount >> $seqres.full 2>&1 testdir=$SCRATCH_MNT/test-$seq diff --git a/tests/xfs/215 b/tests/xfs/215 index 5ae4d8546..7a517d7f1 100755 --- a/tests/xfs/215 +++ b/tests/xfs/215 @@ -95,7 +95,7 @@ new_extents=$(_count_extents $testdir/file3) echo "old extents: $old_extents" >> $seqres.full echo "new extents: $new_extents" >> $seqres.full echo "maximum extents: $internal_blks" >> $seqres.full -test $new_extents -lt $((internal_blks / 20)) || echo "file3 badly fragmented" +test $((new_extents - (nr / 2))) -lt $((internal_blks / 2)) || echo "file3 badly fragmented" # success, all done status=0 diff --git a/tests/xfs/218 b/tests/xfs/218 index ea464f2d1..0ab4102c8 100755 --- a/tests/xfs/218 +++ b/tests/xfs/218 @@ -94,7 +94,7 @@ new_extents=$(_count_extents $testdir/file3) echo "old extents: $old_extents" >> $seqres.full echo "new extents: $new_extents" >> $seqres.full echo "maximum extents: $internal_blks" >> $seqres.full -test $new_extents -lt $((internal_blks / 20)) || echo "file3 badly fragmented" +test $((new_extents - (nr / 2))) -lt $((internal_blks / 2)) || echo "file3 badly fragmented" # success, all done status=0 diff --git a/tests/xfs/219 b/tests/xfs/219 index 012b07c26..df57e07a6 100755 --- a/tests/xfs/219 +++ b/tests/xfs/219 @@ -95,7 +95,7 @@ new_extents=$(_count_extents $testdir/file3) echo "old extents: $old_extents" >> $seqres.full echo "new extents: $new_extents" >> $seqres.full echo "maximum extents: $internal_blks" >> $seqres.full -test $new_extents -lt $((internal_blks / 20)) || echo "file3 badly fragmented" +test $((new_extents - (nr / 4))) -lt $((internal_blks / 2)) || echo "file3 badly fragmented" # success, all done status=0 diff --git a/tests/xfs/221 b/tests/xfs/221 index 8b860f2ce..03d81ac69 100755 --- a/tests/xfs/221 +++ b/tests/xfs/221 @@ -94,7 +94,7 @@ new_extents=$(_count_extents $testdir/file3) echo "old extents: $old_extents" >> $seqres.full echo "new extents: $new_extents" >> $seqres.full echo "maximum extents: $internal_blks" >> $seqres.full -test $new_extents -lt $((internal_blks / 20)) || echo "file3 badly fragmented" +test $((new_extents - (nr / 4))) -lt $((internal_blks / 2)) || echo "file3 badly fragmented" # success, all done status=0 diff --git a/tests/xfs/223 b/tests/xfs/223 index 1e6ba9876..7c990a270 100755 --- a/tests/xfs/223 +++ b/tests/xfs/223 @@ -97,7 +97,7 @@ new_extents=$(_count_extents $testdir/file3) echo "old extents: $old_extents" >> $seqres.full echo "new extents: $new_extents" >> $seqres.full echo "maximum extents: $internal_blks" >> $seqres.full -test $new_extents -lt $((internal_blks / 20)) || echo "file3 badly fragmented" +test $((new_extents - (nr / 2))) -lt $((internal_blks / 2)) || echo "file3 badly fragmented" # success, all done status=0 diff --git a/tests/xfs/224 b/tests/xfs/224 index 3d19f944a..bf33d1f18 100755 --- a/tests/xfs/224 +++ b/tests/xfs/224 @@ -96,7 +96,7 @@ new_extents=$(_count_extents $testdir/file3) echo "old extents: $old_extents" >> $seqres.full echo "new extents: $new_extents" >> $seqres.full echo "maximum extents: $internal_blks" >> $seqres.full -test $new_extents -lt $((internal_blks / 20)) || echo "file3 badly fragmented" +test $((new_extents - (nr / 2))) -lt $((internal_blks / 2)) || echo "file3 badly fragmented" # success, all done status=0 diff --git a/tests/xfs/225 b/tests/xfs/225 index c2e5b8248..749816f0d 100755 --- a/tests/xfs/225 +++ b/tests/xfs/225 @@ -95,7 +95,7 @@ new_extents=$(_count_extents $testdir/file3) echo "old extents: $old_extents" >> $seqres.full echo "new extents: $new_extents" >> $seqres.full echo "maximum extents: $internal_blks" >> $seqres.full -test $new_extents -lt $((internal_blks / 20)) || echo "file3 badly fragmented" +test $((new_extents - (nr / 2))) -lt $((internal_blks / 2)) || echo "file3 badly fragmented" # success, all done status=0 diff --git a/tests/xfs/226 b/tests/xfs/226 index 3f035b424..bb94d2460 100755 --- a/tests/xfs/226 +++ b/tests/xfs/226 @@ -94,7 +94,7 @@ new_extents=$(_count_extents $testdir/file3) echo "old extents: $old_extents" >> $seqres.full echo "new extents: $new_extents" >> $seqres.full echo "maximum extents: $internal_blks" >> $seqres.full -test $new_extents -lt $((internal_blks / 20)) || echo "file3 badly fragmented" +test $((new_extents - (nr / 2))) -lt $((internal_blks / 2)) || echo "file3 badly fragmented" # success, all done status=0 diff --git a/tests/xfs/228 b/tests/xfs/228 index 52fbb753c..df1fd7aa0 100755 --- a/tests/xfs/228 +++ b/tests/xfs/228 @@ -103,7 +103,7 @@ new_extents=$(_count_extents $testdir/file3) echo "old extents: $old_extents" >> $seqres.full echo "new extents: $new_extents" >> $seqres.full echo "maximum extents: $internal_blks" >> $seqres.full -test $new_extents -lt $((internal_blks / 20)) || echo "file3 badly fragmented" +test $((new_extents - (nr * 4 / 10))) -lt $((internal_blks / 2)) || echo "file3 badly fragmented" # success, all done status=0 diff --git a/tests/xfs/230 b/tests/xfs/230 index 91e4d3f00..73f599af8 100755 --- a/tests/xfs/230 +++ b/tests/xfs/230 @@ -103,7 +103,7 @@ new_extents=$(_count_extents $testdir/file3) echo "old extents: $old_extents" >> $seqres.full echo "new extents: $new_extents" >> $seqres.full echo "maximum extents: $internal_blks" >> $seqres.full -test $new_extents -lt $((internal_blks / 20)) || echo "file3 badly fragmented" +test $((new_extents - (nr * 4 / 10))) -lt $((internal_blks / 2)) || echo "file3 badly fragmented" # success, all done status=0 diff --git a/tests/xfs/231 b/tests/xfs/231 index 60f59a9b1..166f6b0ef 100755 --- a/tests/xfs/231 +++ b/tests/xfs/231 @@ -123,7 +123,7 @@ new_extents=$(_count_extents $testdir/file2) echo "old extents: $old_extents" >> $seqres.full echo "new extents: $new_extents" >> $seqres.full echo "maximum extents: $internal_blks" >> $seqres.full -test $new_extents -lt $((internal_blks / 7)) || echo "file2 badly fragmented" +test $new_extents -le $((3 * nr / bufnr)) || echo "file2 more fragmented than expected" # success, all done status=0 diff --git a/tests/xfs/232 b/tests/xfs/232 index 9a8403c0a..0008dbfde 100755 --- a/tests/xfs/232 +++ b/tests/xfs/232 @@ -125,7 +125,7 @@ new_extents=$(_count_extents $testdir/file2) echo "old extents: $old_extents" >> $seqres.full echo "new extents: $new_extents" >> $seqres.full echo "maximum extents: $internal_blks" >> $seqres.full -test $new_extents -lt $((internal_blks / 12)) || echo "file2 not sufficiently fragmented" +test $new_extents -le $((2 * nr / bufnr)) || echo "file2 more fragmented than expected" # success, all done status=0