Re: [PATCH] xfs/513: fix 4k allocsize fails on 64k pagesize

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Mon, Feb 24, 2020 at 12:18:19AM +0800, Zorro Lang wrote:
> On Sun, Feb 23, 2020 at 08:45:48PM +0800, Eryu Guan wrote:
> > On Wed, Feb 19, 2020 at 12:58:18AM +0800, Zorro Lang wrote:
> > > The minimal I/O preallocation size is page size. The allocsize=4k
> > > always fails on 64k pagesize machine. So change the fs blocksize
> > > allocsize test to allocsize=64k.
> > > 
> > > Signed-off-by: Zorro Lang <zlang@xxxxxxxxxx>
> > 
> > I think it's better to make the page size auto-detected, and filter out
> > the actual size to something like "PAGESIZE" in .out file.
> > 
> > > ---
> > >  tests/xfs/513     | 4 ++--
> > >  tests/xfs/513.out | 2 +-
> > >  2 files changed, 3 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/tests/xfs/513 b/tests/xfs/513
> > > index 70bc2f1c..3c3f5163 100755
> > > --- a/tests/xfs/513
> > > +++ b/tests/xfs/513
> > > @@ -178,13 +178,13 @@ do_test()
> > >  
> > >  echo "** start xfs mount testing ..."
> > >  # Test allocsize=size
> > > -# Valid values for this option are page size (typically 4KiB) through to 1GiB
> > > +# Valid values for this option are page size through to 1GiB

>From this test description, it seems we're not only testing the
arg-parsing part, but also testing if kernel could mount the ending fs.
So I thought changing 4k to 64k would lose some test coverage, the
normal 4k pagesize case is lost.

> > >  do_mkfs
> > >  if [ $dbsize -ge 1024 ];then
> > >  	blsize="$((dbsize / 1024))k"
> > >  fi
> > >  do_test "" pass "allocsize" "false"
> > > -do_test "-o allocsize=$blsize" pass "allocsize=$blsize" "true"
> > > +do_test "-o allocsize=64k" pass "allocsize=64k" "true"
> > 
> > do_test "-o allocsize=PAGESIZE" pass "allocsize=PAGESIZE" "true"
> > 
> > And do_test converts the "PAGESIZE" to actual page size.
> 
> I thought about that too, but due to this case only uses PAGESIZE once
> at here. So I don't know if it's worth changing much code for that.
> And I don't think the PAGESIZE is necessary for this test, 4k and 64k
> are all fine for me. The case just trys to make sure 4k/64k can be parsed by
> fs_parse().

If it only wants to make sure fs_parse() could parse the arg, then I'm
fine with the fix.

Thanks,
Eryu

> 
> What do you think?
> 
> Thanks,
> Zorro
> 
> > 
> > >  do_test "-o allocsize=1048576k" pass "allocsize=1048576k" "true"
> > >  do_test "-o allocsize=$((dbsize / 2))" fail
> > >  do_test "-o allocsize=2g" fail
> > > diff --git a/tests/xfs/513.out b/tests/xfs/513.out
> > > index 9be18dd8..2d9f8384 100644
> > > --- a/tests/xfs/513.out
> > > +++ b/tests/xfs/513.out
> > > @@ -5,7 +5,7 @@ QA output created by 513
> > >  ** start xfs mount testing ...
> > >  FORMAT: 
> > >  TEST: "" "pass" "allocsize" "false"
> > > -TEST: "-o allocsize=4k" "pass" "allocsize=4k" "true"
> > > +TEST: "-o allocsize=64k" "pass" "allocsize=64k" "true"
> > 
> > So .out prints "... allocsize=PAGESIZE" ...
> > 
> > Thanks,
> > Eryu
> > 
> > >  TEST: "-o allocsize=1048576k" "pass" "allocsize=1048576k" "true"
> > >  TEST: "-o allocsize=2048" "fail"
> > >  TEST: "-o allocsize=2g" "fail"
> > > -- 
> > > 2.20.1
> > > 
> > 
> 



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux