On Thu, Jun 30, 2022 at 02:37:14PM +0800, Zorro Lang wrote: > On Wed, Jun 29, 2022 at 03:43:36PM -0700, Darrick J. Wong wrote: > > On Wed, Jun 29, 2022 at 02:18:07PM +1000, Dave Chinner wrote: > > > On Tue, Jun 28, 2022 at 01:21:34PM -0700, Darrick J. Wong wrote: > > > > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > > > > > > > This is a regression test that exercises the mkfs.xfs code that creates > > > > log sizes that are very close to the AG size when stripe units are in > > > > play and/or when the log is forced to be in AG 0. > > > > > > > > Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> > > > > --- > > > > tests/xfs/843 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ > > > > tests/xfs/843.out | 2 ++ > > > > 2 files changed, 53 insertions(+) > > > > create mode 100755 tests/xfs/843 > > > > create mode 100644 tests/xfs/843.out > > > > > > > > > > > > diff --git a/tests/xfs/843 b/tests/xfs/843 > > > > new file mode 100755 > > > > index 00000000..5bb4bfb4 > > > > --- /dev/null > > > > +++ b/tests/xfs/843 > > > > @@ -0,0 +1,51 @@ > > > > +#! /bin/bash > > > > +# SPDX-License-Identifier: GPL-2.0 > > > > +# Copyright (c) 2022 Oracle. All Rights Reserved. > > > > +# > > > > +# FS QA Test 843 > > > > +# > > > > +# Now that we've increased the default log size calculation, test mkfs with > > > > +# various stripe units and filesystem sizes to see if we can provoke mkfs into > > > > +# breaking. > > > > +# > > > > +. ./common/preamble > > > > +_begin_fstest auto mkfs > > > > + > > > > +# real QA test starts here > > > > + > > > > +# Modify as appropriate. > > > > +_supported_fs xfs > > > > +_require_test > > > > +echo Silence is golden > > > > + > > > > +testfile=$TEST_DIR/a > > > > +rm -f $testfile > > > > + > > > > +test_format() { > > > > + local tag="$1" > > > > + shift > > > > + > > > > + echo "$tag" >> $seqres.full > > > > + $MKFS_XFS_PROG $@ -d file,name=$testfile &>> $seqres.full > > > > + local res=$? > > > > + test $res -eq 0 || echo "$tag FAIL $res" | tee -a $seqres.full > > > > +} > > > > + > > > > +# First we try various small filesystems and stripe sizes. > > > > +for M in `seq 298 302` `seq 490 520`; do > > > > + for S in `seq 32 4 64`; do > > > > + test_format "M=$M S=$S" -dsu=${S}k,sw=1,size=${M}m -N > > > > + done > > > > +done > > > > + > > > > +# Log so large it pushes the root dir into AG 1. We can't use -N for the mkfs > > > > +# because this check only occurs after the root directory has been allocated, > > > > +# which mkfs -N doesn't do. > > > > +test_format "log pushes rootdir into AG 1" -d agcount=3200,size=6366g -lagnum=0 -N > > > > > > Why are you passing "-N" to the test if it can't be used to test > > > this? > > > > I guess I went a little overboard after you asked for more -N and less > > test runtime last time. > > Is there anything different coverage if mkfs.xfs with or without "-N" (except > really writing on disk) ? If no difference, I'm fine with that, or I think > without "-N" might be good, especially this case only makes fs with small size, > it's fast enough. Yes -- with that one exception, the mkfs geometry validation examined by this test are all performed before mkfs writes anything to disk. The root inode location check is performed /after/ allocating it, which means that we actually have to let it write the new filesystem to disk. That's why *most* of the tests can use -N to reduce runtime. Come to think of it, this really ought to have a _require_fs_space call to make sure that fallocating the log space succeeds. --D > Thanks, > Zorro > > > > > --D > > > > > Cheers, > > > > > > Dave. > > > -- > > > Dave Chinner > > > david@xxxxxxxxxxxxx > > >