Message ID | 20180924151942.8220-7-chandan@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix tests to work on non-4k block sized fs instances | expand |
On Mon, Sep 24, 2018 at 08:49:28PM +0530, Chandan Rajendra wrote: > For 64k block size, the agsize provided in the test causes mkfs.xfs to > fail due to insufficient log space. Hence this commit computes agsize > based on block size of the filesystem. > > Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com> > --- > tests/xfs/139 | 15 +++++++++------ > tests/xfs/139.out | 8 ++++++-- > 2 files changed, 15 insertions(+), 8 deletions(-) > > diff --git a/tests/xfs/139 b/tests/xfs/139 > index 2a26635..c074273 100755 > --- a/tests/xfs/139 > +++ b/tests/xfs/139 > @@ -34,17 +34,20 @@ _require_cp_reflink > > rm -f $seqres.full > > +_scratch_mkfs >/dev/null 2>&1 > +_scratch_mount > +blksz=$(_get_file_block_size $SCRATCH_MNT) > +_scratch_unmount > + > echo "Format and mount" > -_scratch_mkfs -d agsize=$((32 * 1048576)) > $seqres.full 2>&1 > +_scratch_mkfs -d agsize=$((8192 * $blksz)) > $seqres.full 2>&1 This breaks 512 byte and 1k block size filesystems. $ head -3 139.full Invalid value 8388608 for -d agsize option. Value is too small. Usage: mkfs.xfs /* blocksize */ [-b size=num] $ Minimum AG size is 16MB. There are more changes to other tests in this series that also demonstrate this regression. Cheers, Dave.
On Saturday, October 6, 2018 6:03:38 AM IST Dave Chinner wrote: > On Mon, Sep 24, 2018 at 08:49:28PM +0530, Chandan Rajendra wrote: > > For 64k block size, the agsize provided in the test causes mkfs.xfs to > > fail due to insufficient log space. Hence this commit computes agsize > > based on block size of the filesystem. > > > > Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com> > > --- > > tests/xfs/139 | 15 +++++++++------ > > tests/xfs/139.out | 8 ++++++-- > > 2 files changed, 15 insertions(+), 8 deletions(-) > > > > diff --git a/tests/xfs/139 b/tests/xfs/139 > > index 2a26635..c074273 100755 > > --- a/tests/xfs/139 > > +++ b/tests/xfs/139 > > @@ -34,17 +34,20 @@ _require_cp_reflink > > > > rm -f $seqres.full > > > > +_scratch_mkfs >/dev/null 2>&1 > > +_scratch_mount > > +blksz=$(_get_file_block_size $SCRATCH_MNT) > > +_scratch_unmount > > + > > echo "Format and mount" > > -_scratch_mkfs -d agsize=$((32 * 1048576)) > $seqres.full 2>&1 > > +_scratch_mkfs -d agsize=$((8192 * $blksz)) > $seqres.full 2>&1 > > This breaks 512 byte and 1k block size filesystems. > > $ head -3 139.full > Invalid value 8388608 for -d agsize option. Value is too small. > Usage: mkfs.xfs > /* blocksize */ [-b size=num] > $ > > Minimum AG size is 16MB. There are more changes to other tests in > this series that also demonstrate this regression. Thanks for mentioning this fact about the minimum AG size. I will verify all the tests once again. Also, for xfs/139, 512 byte block size does not apply since reflink feature requires CRC to be enabled. Nevertheless, I will make sure that mkfs.xfs actually does succeed for other tests where 512 bytes block size is applicable.
diff --git a/tests/xfs/139 b/tests/xfs/139 index 2a26635..c074273 100755 --- a/tests/xfs/139 +++ b/tests/xfs/139 @@ -34,17 +34,20 @@ _require_cp_reflink rm -f $seqres.full +_scratch_mkfs >/dev/null 2>&1 +_scratch_mount +blksz=$(_get_file_block_size $SCRATCH_MNT) +_scratch_unmount + echo "Format and mount" -_scratch_mkfs -d agsize=$((32 * 1048576)) > $seqres.full 2>&1 +_scratch_mkfs -d agsize=$((8192 * $blksz)) > $seqres.full 2>&1 _scratch_mount >> $seqres.full 2>&1 testdir=$SCRATCH_MNT/test-$seq mkdir $testdir -blksz="$(_get_block_size $testdir)" echo "Create the original files" -sz=$((48 * 1048576)) -nr=$((sz / blksz)) +sz=$((12288 * $blksz)) _pwrite_byte 0x61 0 $sz $testdir/file1 >> $seqres.full _cp_reflink $testdir/file1 $testdir/file2 >> $seqres.full _scratch_cycle_mount @@ -54,8 +57,8 @@ _pwrite_byte 0x62 0 $sz $testdir/file1 >> $seqres.full _scratch_cycle_mount echo "Compare files" -md5sum $testdir/file1 | _filter_scratch -md5sum $testdir/file2 | _filter_scratch +od -t x1 $testdir/file1 | _filter_od +od -t x1 $testdir/file2 | _filter_od #filefrag -v $testdir/file1 $testdir/file2 # success, all done diff --git a/tests/xfs/139.out b/tests/xfs/139.out index dc6a31e..72909bc 100644 --- a/tests/xfs/139.out +++ b/tests/xfs/139.out @@ -3,5 +3,9 @@ Format and mount Create the original files CoW every other block Compare files -673c759fb131ccf3336c4f8c549a497e SCRATCH_MNT/test-139/file1 -dc802351f6717547cbf4c951b294f952 SCRATCH_MNT/test-139/file2 +0 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 +* +30000 +0 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 +* +30000
For 64k block size, the agsize provided in the test causes mkfs.xfs to fail due to insufficient log space. Hence this commit computes agsize based on block size of the filesystem. Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com> --- tests/xfs/139 | 15 +++++++++------ tests/xfs/139.out | 8 ++++++-- 2 files changed, 15 insertions(+), 8 deletions(-)