diff mbox series

[V5,06/20] Fix xfs/139 to work with 64k block size

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

Commit Message

Chandan Rajendra Sept. 24, 2018, 3:19 p.m. UTC
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(-)

Comments

Dave Chinner Oct. 6, 2018, 12:33 a.m. UTC | #1
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.
Chandan Rajendra Oct. 6, 2018, 6:51 a.m. UTC | #2
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 mbox series

Patch

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