reflink: fix fragmentation tests to work on >4k block size filesystems
authorDarrick J. Wong <darrick.wong@oracle.com>
Wed, 23 Mar 2016 06:37:31 +0000 (17:37 +1100)
committerDave Chinner <david@fromorbit.com>
Wed, 23 Mar 2016 06:37:31 +0000 (17:37 +1100)
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 <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
13 files changed:
tests/xfs/127
tests/xfs/215
tests/xfs/218
tests/xfs/219
tests/xfs/221
tests/xfs/223
tests/xfs/224
tests/xfs/225
tests/xfs/226
tests/xfs/228
tests/xfs/230
tests/xfs/231
tests/xfs/232

index f44daae4d2495ceb848b175bd8f4829ac2f2dbe9..6b768c934ba1da6290f5755c8ac803efda625759 100755 (executable)
@@ -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
index 5ae4d854618aedd845d8c2967077139038c4fa43..7a517d7f1f716700497c3a35b849b085e4112ee2 100755 (executable)
@@ -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
index ea464f2d182ac179bb8074ce1dfb7e1c5ad8aa74..0ab4102c8eda39d9b73c2c31784b45e9bc20ed5e 100755 (executable)
@@ -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
index 012b07c266e869f8b9d7f08dc078d270024f4b23..df57e07a6adb6e131b8418d2cb4b8123ea67cd1e 100755 (executable)
@@ -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
index 8b860f2ce1d7f19e1da172e3f747c9c6548568a5..03d81ac69e2083413601deecc73986c943329929 100755 (executable)
@@ -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
index 1e6ba98762bed9fb92b7252c1991fb6171d3aac1..7c990a270a04c02fa0b83576f288b758eb15cf56 100755 (executable)
@@ -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
index 3d19f944a95060de9ab8b29e0e2172e1cd9704c9..bf33d1f18c80661028ffa1a5fd9cdcc6357db2bd 100755 (executable)
@@ -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
index c2e5b8248b3d369c0c1a9c1e508cd3414026a16f..749816f0d3ca40da5ac016ba7d2eb921649fce2e 100755 (executable)
@@ -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
index 3f035b424a3a69473f429003f53a9ee1b3482177..bb94d246041f9db2d1b963c571212ea17169fd79 100755 (executable)
@@ -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
index 52fbb753c1a5058ae42bb814f3ec7b29fa5e53f1..df1fd7aa0ebbb2f85d396d40c169249767dc86e7 100755 (executable)
@@ -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
index 91e4d3f0091c2e5658acc146a08842a5f7cf2b24..73f599af8f8d738822c966064f7115e2d1deaf72 100755 (executable)
@@ -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
index 60f59a9b107189338e1ecb6a99e2847f3d3ccb91..166f6b0ef67175ba3fd878735830c2bb1ffa5d7f 100755 (executable)
@@ -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
index 9a8403c0a045bd67451fa600e2a8b1d00db3e06a..0008dbfde15f3409a2a36c231dab84f397c0e3bd 100755 (executable)
@@ -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