diff mbox series

[v1.1,3/3] xfs/216: handle larger log sizes

Message ID 20220415150458.GB17025@magnolia (mailing list archive)
State Accepted
Headers show
Series None | expand

Commit Message

Darrick J. Wong April 15, 2022, 3:04 p.m. UTC
mkfs will soon refuse to format a log smaller than 64MB, so update this
test to reflect the new log sizing calculations.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
 tests/xfs/216             |   19 +++++++++++++++++++
 tests/xfs/216.out.64mblog |   10 ++++++++++
 tests/xfs/216.out.classic |    0 
 3 files changed, 29 insertions(+)
 create mode 100644 tests/xfs/216.out.64mblog
 rename tests/xfs/{216.out => 216.out.classic} (100%)

Comments

Zorro Lang April 16, 2022, 1:35 p.m. UTC | #1
On Fri, Apr 15, 2022 at 08:04:58AM -0700, Darrick J. Wong wrote:
> mkfs will soon refuse to format a log smaller than 64MB, so update this
> test to reflect the new log sizing calculations.
> 
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> ---
>  tests/xfs/216             |   19 +++++++++++++++++++
>  tests/xfs/216.out.64mblog |   10 ++++++++++
>  tests/xfs/216.out.classic |    0 
>  3 files changed, 29 insertions(+)
>  create mode 100644 tests/xfs/216.out.64mblog
>  rename tests/xfs/{216.out => 216.out.classic} (100%)
> 
> diff --git a/tests/xfs/216 b/tests/xfs/216
> index c3697db7..ebae8979 100755
> --- a/tests/xfs/216
> +++ b/tests/xfs/216
> @@ -29,6 +29,23 @@ $MKFS_XFS_PROG 2>&1 | grep -q rmapbt && \
>  $MKFS_XFS_PROG 2>&1 | grep -q reflink && \
>  	loop_mkfs_opts="$loop_mkfs_opts -m reflink=0"
>  
> +# Decide which golden output file we're using.  Starting with mkfs.xfs 5.15,
> +# the default minimum log size was raised to 64MB for all cases, so we detect
> +# that by test-formatting with a 512M filesystem.  This is a little handwavy,
> +# but it's the best we can do.
> +choose_golden_output() {
> +	local seqfull=$1
> +	local file=$2
> +
> +	if $MKFS_XFS_PROG -f -b size=4096 -l version=2 \
> +			-d name=$file,size=512m $loop_mkfs_opts | \
> +			grep -q 'log.*blocks=16384'; then
> +		ln -f -s $seqfull.out.64mblog $seqfull.out
> +	else
> +		ln -f -s $seqfull.out.classic $seqfull.out
> +	fi

Actually there's a old common function in common/rc named _link_out_file(),
xfstests generally use it to deal with multiple .out files. It would be
better to keep in step with common helpers, but your "ln" command
isn't wrong :)

Reviewed-by: Zorro Lang <zlang@redhat.com>

> +}
> +
>  _do_mkfs()
>  {
>  	for i in $*; do
> @@ -43,6 +60,8 @@ _do_mkfs()
>  # make large holey file
>  $XFS_IO_PROG -f -c "truncate 256g" $LOOP_DEV
>  
> +choose_golden_output $0 $LOOP_DEV
> +
>  #make loopback mount dir
>  mkdir $LOOP_MNT
>  
> diff --git a/tests/xfs/216.out.64mblog b/tests/xfs/216.out.64mblog
> new file mode 100644
> index 00000000..3c12085f
> --- /dev/null
> +++ b/tests/xfs/216.out.64mblog
> @@ -0,0 +1,10 @@
> +QA output created by 216
> +fssize=1g log      =internal log           bsize=4096   blocks=16384, version=2
> +fssize=2g log      =internal log           bsize=4096   blocks=16384, version=2
> +fssize=4g log      =internal log           bsize=4096   blocks=16384, version=2
> +fssize=8g log      =internal log           bsize=4096   blocks=16384, version=2
> +fssize=16g log      =internal log           bsize=4096   blocks=16384, version=2
> +fssize=32g log      =internal log           bsize=4096   blocks=16384, version=2
> +fssize=64g log      =internal log           bsize=4096   blocks=16384, version=2
> +fssize=128g log      =internal log           bsize=4096   blocks=16384, version=2
> +fssize=256g log      =internal log           bsize=4096   blocks=32768, version=2
> diff --git a/tests/xfs/216.out b/tests/xfs/216.out.classic
> similarity index 100%
> rename from tests/xfs/216.out
> rename to tests/xfs/216.out.classic
>
Eryu Guan April 17, 2022, 2:42 p.m. UTC | #2
On Sat, Apr 16, 2022 at 09:35:18PM +0800, Zorro Lang wrote:
> On Fri, Apr 15, 2022 at 08:04:58AM -0700, Darrick J. Wong wrote:
> > mkfs will soon refuse to format a log smaller than 64MB, so update this
> > test to reflect the new log sizing calculations.
> > 
> > Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> > ---
> >  tests/xfs/216             |   19 +++++++++++++++++++
> >  tests/xfs/216.out.64mblog |   10 ++++++++++
> >  tests/xfs/216.out.classic |    0 
> >  3 files changed, 29 insertions(+)
> >  create mode 100644 tests/xfs/216.out.64mblog
> >  rename tests/xfs/{216.out => 216.out.classic} (100%)
> > 
> > diff --git a/tests/xfs/216 b/tests/xfs/216
> > index c3697db7..ebae8979 100755
> > --- a/tests/xfs/216
> > +++ b/tests/xfs/216
> > @@ -29,6 +29,23 @@ $MKFS_XFS_PROG 2>&1 | grep -q rmapbt && \
> >  $MKFS_XFS_PROG 2>&1 | grep -q reflink && \
> >  	loop_mkfs_opts="$loop_mkfs_opts -m reflink=0"
> >  
> > +# Decide which golden output file we're using.  Starting with mkfs.xfs 5.15,
> > +# the default minimum log size was raised to 64MB for all cases, so we detect
> > +# that by test-formatting with a 512M filesystem.  This is a little handwavy,
> > +# but it's the best we can do.
> > +choose_golden_output() {
> > +	local seqfull=$1
> > +	local file=$2
> > +
> > +	if $MKFS_XFS_PROG -f -b size=4096 -l version=2 \
> > +			-d name=$file,size=512m $loop_mkfs_opts | \
> > +			grep -q 'log.*blocks=16384'; then
> > +		ln -f -s $seqfull.out.64mblog $seqfull.out
> > +	else
> > +		ln -f -s $seqfull.out.classic $seqfull.out
> > +	fi
> 
> Actually there's a old common function in common/rc named _link_out_file(),
> xfstests generally use it to deal with multiple .out files. It would be
> better to keep in step with common helpers, but your "ln" command
> isn't wrong :)

I added tests/xfs/216.cfg file and updated test to use
_link_out_file_named().

> 
> Reviewed-by: Zorro Lang <zlang@redhat.com>

Thanks!
Eryu

> 
> > +}
> > +
> >  _do_mkfs()
> >  {
> >  	for i in $*; do
> > @@ -43,6 +60,8 @@ _do_mkfs()
> >  # make large holey file
> >  $XFS_IO_PROG -f -c "truncate 256g" $LOOP_DEV
> >  
> > +choose_golden_output $0 $LOOP_DEV
> > +
> >  #make loopback mount dir
> >  mkdir $LOOP_MNT
> >  
> > diff --git a/tests/xfs/216.out.64mblog b/tests/xfs/216.out.64mblog
> > new file mode 100644
> > index 00000000..3c12085f
> > --- /dev/null
> > +++ b/tests/xfs/216.out.64mblog
> > @@ -0,0 +1,10 @@
> > +QA output created by 216
> > +fssize=1g log      =internal log           bsize=4096   blocks=16384, version=2
> > +fssize=2g log      =internal log           bsize=4096   blocks=16384, version=2
> > +fssize=4g log      =internal log           bsize=4096   blocks=16384, version=2
> > +fssize=8g log      =internal log           bsize=4096   blocks=16384, version=2
> > +fssize=16g log      =internal log           bsize=4096   blocks=16384, version=2
> > +fssize=32g log      =internal log           bsize=4096   blocks=16384, version=2
> > +fssize=64g log      =internal log           bsize=4096   blocks=16384, version=2
> > +fssize=128g log      =internal log           bsize=4096   blocks=16384, version=2
> > +fssize=256g log      =internal log           bsize=4096   blocks=32768, version=2
> > diff --git a/tests/xfs/216.out b/tests/xfs/216.out.classic
> > similarity index 100%
> > rename from tests/xfs/216.out
> > rename to tests/xfs/216.out.classic
> >
Zorro Lang April 17, 2022, 4:39 p.m. UTC | #3
On Sun, Apr 17, 2022 at 10:42:15PM +0800, Eryu Guan wrote:
> On Sat, Apr 16, 2022 at 09:35:18PM +0800, Zorro Lang wrote:
> > On Fri, Apr 15, 2022 at 08:04:58AM -0700, Darrick J. Wong wrote:
> > > mkfs will soon refuse to format a log smaller than 64MB, so update this
> > > test to reflect the new log sizing calculations.
> > > 
> > > Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> > > ---
> > >  tests/xfs/216             |   19 +++++++++++++++++++
> > >  tests/xfs/216.out.64mblog |   10 ++++++++++
> > >  tests/xfs/216.out.classic |    0 
> > >  3 files changed, 29 insertions(+)
> > >  create mode 100644 tests/xfs/216.out.64mblog
> > >  rename tests/xfs/{216.out => 216.out.classic} (100%)
> > > 
> > > diff --git a/tests/xfs/216 b/tests/xfs/216
> > > index c3697db7..ebae8979 100755
> > > --- a/tests/xfs/216
> > > +++ b/tests/xfs/216
> > > @@ -29,6 +29,23 @@ $MKFS_XFS_PROG 2>&1 | grep -q rmapbt && \
> > >  $MKFS_XFS_PROG 2>&1 | grep -q reflink && \
> > >  	loop_mkfs_opts="$loop_mkfs_opts -m reflink=0"
> > >  
> > > +# Decide which golden output file we're using.  Starting with mkfs.xfs 5.15,
> > > +# the default minimum log size was raised to 64MB for all cases, so we detect
> > > +# that by test-formatting with a 512M filesystem.  This is a little handwavy,
> > > +# but it's the best we can do.
> > > +choose_golden_output() {
> > > +	local seqfull=$1
> > > +	local file=$2
> > > +
> > > +	if $MKFS_XFS_PROG -f -b size=4096 -l version=2 \
> > > +			-d name=$file,size=512m $loop_mkfs_opts | \
> > > +			grep -q 'log.*blocks=16384'; then
> > > +		ln -f -s $seqfull.out.64mblog $seqfull.out
> > > +	else
> > > +		ln -f -s $seqfull.out.classic $seqfull.out
> > > +	fi
> > 
> > Actually there's a old common function in common/rc named _link_out_file(),
> > xfstests generally use it to deal with multiple .out files. It would be
> > better to keep in step with common helpers, but your "ln" command
> > isn't wrong :)
> 
> I added tests/xfs/216.cfg file and updated test to use
> _link_out_file_named().

Thanks! Sorry have to trouble you, my request to kernel.org is still blocking.

`_link_out_file_named $seqfull.out 64mblog` is equal to
`_link_out_file 64mblog`

So the later one might be enough. Anyway, both are good to me!

Thanks,
Zorro

> 
> > 
> > Reviewed-by: Zorro Lang <zlang@redhat.com>
> 
> Thanks!
> Eryu
> 
> > 
> > > +}
> > > +
> > >  _do_mkfs()
> > >  {
> > >  	for i in $*; do
> > > @@ -43,6 +60,8 @@ _do_mkfs()
> > >  # make large holey file
> > >  $XFS_IO_PROG -f -c "truncate 256g" $LOOP_DEV
> > >  
> > > +choose_golden_output $0 $LOOP_DEV
> > > +
> > >  #make loopback mount dir
> > >  mkdir $LOOP_MNT
> > >  
> > > diff --git a/tests/xfs/216.out.64mblog b/tests/xfs/216.out.64mblog
> > > new file mode 100644
> > > index 00000000..3c12085f
> > > --- /dev/null
> > > +++ b/tests/xfs/216.out.64mblog
> > > @@ -0,0 +1,10 @@
> > > +QA output created by 216
> > > +fssize=1g log      =internal log           bsize=4096   blocks=16384, version=2
> > > +fssize=2g log      =internal log           bsize=4096   blocks=16384, version=2
> > > +fssize=4g log      =internal log           bsize=4096   blocks=16384, version=2
> > > +fssize=8g log      =internal log           bsize=4096   blocks=16384, version=2
> > > +fssize=16g log      =internal log           bsize=4096   blocks=16384, version=2
> > > +fssize=32g log      =internal log           bsize=4096   blocks=16384, version=2
> > > +fssize=64g log      =internal log           bsize=4096   blocks=16384, version=2
> > > +fssize=128g log      =internal log           bsize=4096   blocks=16384, version=2
> > > +fssize=256g log      =internal log           bsize=4096   blocks=32768, version=2
> > > diff --git a/tests/xfs/216.out b/tests/xfs/216.out.classic
> > > similarity index 100%
> > > rename from tests/xfs/216.out
> > > rename to tests/xfs/216.out.classic
> > > 
>
diff mbox series

Patch

diff --git a/tests/xfs/216 b/tests/xfs/216
index c3697db7..ebae8979 100755
--- a/tests/xfs/216
+++ b/tests/xfs/216
@@ -29,6 +29,23 @@  $MKFS_XFS_PROG 2>&1 | grep -q rmapbt && \
 $MKFS_XFS_PROG 2>&1 | grep -q reflink && \
 	loop_mkfs_opts="$loop_mkfs_opts -m reflink=0"
 
+# Decide which golden output file we're using.  Starting with mkfs.xfs 5.15,
+# the default minimum log size was raised to 64MB for all cases, so we detect
+# that by test-formatting with a 512M filesystem.  This is a little handwavy,
+# but it's the best we can do.
+choose_golden_output() {
+	local seqfull=$1
+	local file=$2
+
+	if $MKFS_XFS_PROG -f -b size=4096 -l version=2 \
+			-d name=$file,size=512m $loop_mkfs_opts | \
+			grep -q 'log.*blocks=16384'; then
+		ln -f -s $seqfull.out.64mblog $seqfull.out
+	else
+		ln -f -s $seqfull.out.classic $seqfull.out
+	fi
+}
+
 _do_mkfs()
 {
 	for i in $*; do
@@ -43,6 +60,8 @@  _do_mkfs()
 # make large holey file
 $XFS_IO_PROG -f -c "truncate 256g" $LOOP_DEV
 
+choose_golden_output $0 $LOOP_DEV
+
 #make loopback mount dir
 mkdir $LOOP_MNT
 
diff --git a/tests/xfs/216.out.64mblog b/tests/xfs/216.out.64mblog
new file mode 100644
index 00000000..3c12085f
--- /dev/null
+++ b/tests/xfs/216.out.64mblog
@@ -0,0 +1,10 @@ 
+QA output created by 216
+fssize=1g log      =internal log           bsize=4096   blocks=16384, version=2
+fssize=2g log      =internal log           bsize=4096   blocks=16384, version=2
+fssize=4g log      =internal log           bsize=4096   blocks=16384, version=2
+fssize=8g log      =internal log           bsize=4096   blocks=16384, version=2
+fssize=16g log      =internal log           bsize=4096   blocks=16384, version=2
+fssize=32g log      =internal log           bsize=4096   blocks=16384, version=2
+fssize=64g log      =internal log           bsize=4096   blocks=16384, version=2
+fssize=128g log      =internal log           bsize=4096   blocks=16384, version=2
+fssize=256g log      =internal log           bsize=4096   blocks=32768, version=2
diff --git a/tests/xfs/216.out b/tests/xfs/216.out.classic
similarity index 100%
rename from tests/xfs/216.out
rename to tests/xfs/216.out.classic