public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [patch] xfsqa test to check log size scaling
@ 2008-05-22  6:12 David Chinner
  2008-05-22 13:25 ` Christoph Hellwig
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: David Chinner @ 2008-05-22  6:12 UTC (permalink / raw)
  To: xfs-dev; +Cc: xfs-oss

XFS-QA test to check that log size scaling works correctly
for old and new maximum log sizes.

Signed-off-by: Dave Chinner <dgc@sgi.com>
---
 xfstests/188     |   88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 xfstests/188.out |   16 ++++++++++
 xfstests/group   |    1 
 3 files changed, 105 insertions(+)

Index: xfs-cmds/xfstests/188
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ xfs-cmds/xfstests/188	2008-05-15 22:39:08.741203552 +1000
@@ -0,0 +1,88 @@
+#! /bin/sh
+# FS QA Test No. 188
+#
+# large log size mkfs test - ensure the log size scaling works
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2008 Silicon Graphics, Inc.  All Rights Reserved.
+#-----------------------------------------------------------------------
+#
+# creator
+owner=dgc@sgi.com
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1	# failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+    cd /
+    rm -f $tmp.*
+    _cleanup_testdir
+}
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.filter
+
+# real QA test starts here
+_supported_fs xfs
+_supported_os Linux
+
+_setup_testdir
+_require_scratch
+_scratch_mkfs_xfs >/dev/null 2>&1
+_scratch_mount
+
+_require_loop
+LOOP_DEV=$SCRATCH_MNT/test_fs
+LOOP_MNT=$SCRATCH_MNT/test_fs_dir
+
+_do_mkfs()
+{
+	for i in $*; do
+		echo -n "fssize=${i}g "
+		$MKFS_XFS_PROG -f -b size=4096 -l version=2 \
+			-d name=$LOOP_DEV,size=${i}g |grep log
+		mount -o loop -t xfs $LOOP_DEV $LOOP_MNT
+		echo "test write" > $LOOP_MNT/test
+		umount $LOOP_MNT
+	done
+}
+# make large holey file
+$XFS_IO_PROG -f -c "truncate 100t" $LOOP_DEV
+
+#make loopback mount dir
+mkdir $LOOP_MNT
+
+# test if large logs are supported
+LARGE_LOG=
+$MKFS_XFS_PROG -f -l size=256m -d name=$LOOP_DEV,size=10g > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+	LARGE_LOG=true
+fi
+
+# walk over standard sizes (up to 256GB)
+_do_mkfs 1 2 4 8 16 32 64 128 256
+
+if [ -n "$LARGE_LOG" ]; then
+	# walk over larger sizes
+	_do_mkfs 512 1024 2048 4096 8192 16384
+else
+	# just cut'n'paste from the golden output for the remaining sizes
+	cat << EOF
+fssize=512g log      =internal log           bsize=4096   blocks=65536, version=2
+fssize=1024g log      =internal log           bsize=4096   blocks=131072, version=2
+fssize=2048g log      =internal log           bsize=4096   blocks=262144, version=2
+fssize=4096g log      =internal log           bsize=4096   blocks=521728, version=2
+fssize=8192g log      =internal log           bsize=4096   blocks=521728, version=2
+fssize=16384g log      =internal log           bsize=4096   blocks=521728, version=2
+EOF
+fi
+
+status=0
+exit
Index: xfs-cmds/xfstests/188.out
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ xfs-cmds/xfstests/188.out	2008-05-15 22:39:26.254922874 +1000
@@ -0,0 +1,16 @@
+QA output created by 188
+fssize=1g log      =internal log           bsize=4096   blocks=2560, version=2
+fssize=2g log      =internal log           bsize=4096   blocks=2560, version=2
+fssize=4g log      =internal log           bsize=4096   blocks=2560, version=2
+fssize=8g log      =internal log           bsize=4096   blocks=2560, version=2
+fssize=16g log      =internal log           bsize=4096   blocks=2560, version=2
+fssize=32g log      =internal log           bsize=4096   blocks=4096, version=2
+fssize=64g log      =internal log           bsize=4096   blocks=8192, version=2
+fssize=128g log      =internal log           bsize=4096   blocks=16384, version=2
+fssize=256g log      =internal log           bsize=4096   blocks=32768, version=2
+fssize=512g log      =internal log           bsize=4096   blocks=65536, version=2
+fssize=1024g log      =internal log           bsize=4096   blocks=131072, version=2
+fssize=2048g log      =internal log           bsize=4096   blocks=262144, version=2
+fssize=4096g log      =internal log           bsize=4096   blocks=521728, version=2
+fssize=8192g log      =internal log           bsize=4096   blocks=521728, version=2
+fssize=16384g log      =internal log           bsize=4096   blocks=521728, version=2
Index: xfs-cmds/xfstests/group
===================================================================
--- xfs-cmds.orig/xfstests/group	2008-05-15 16:32:52.489519140 +1000
+++ xfs-cmds/xfstests/group	2008-05-15 22:38:32.000000000 +1000
@@ -275,3 +275,4 @@ filestreams	dgc@sgi.com
 185 dmapi auto
 186 attr auto
 187 attr auto
+188 log metadata auto

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [patch] xfsqa test to check log size scaling
  2008-05-22  6:12 [patch] xfsqa test to check log size scaling David Chinner
@ 2008-05-22 13:25 ` Christoph Hellwig
  2008-05-22 22:12   ` David Chinner
  2008-07-10 22:45 ` Dave Chinner
  2009-05-10 19:37 ` Christoph Hellwig
  2 siblings, 1 reply; 6+ messages in thread
From: Christoph Hellwig @ 2008-05-22 13:25 UTC (permalink / raw)
  To: David Chinner; +Cc: xfs-dev, xfs-oss

On Thu, May 22, 2008 at 04:12:57PM +1000, David Chinner wrote:
> XFS-QA test to check that log size scaling works correctly
> for old and new maximum log sizes.

Am I missing somethign or would this fail if the partitions used for
xfsqa are smaller than 256GB?  I don't even have that much total storage
on my laptop :)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [patch] xfsqa test to check log size scaling
  2008-05-22 13:25 ` Christoph Hellwig
@ 2008-05-22 22:12   ` David Chinner
  2008-05-23  4:59     ` Christoph Hellwig
  0 siblings, 1 reply; 6+ messages in thread
From: David Chinner @ 2008-05-22 22:12 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: David Chinner, xfs-dev, xfs-oss

On Thu, May 22, 2008 at 09:25:42AM -0400, Christoph Hellwig wrote:
> On Thu, May 22, 2008 at 04:12:57PM +1000, David Chinner wrote:
> > XFS-QA test to check that log size scaling works correctly
> > for old and new maximum log sizes.
> 
> Am I missing somethign or would this fail if the partitions used for
> xfsqa are smaller than 256GB?  I don't even have that much total storage
> on my laptop :)

Uses loop devices and sparse files - should work just fine on any partition a
bit over 2GB (the log gets zeroed during mkfs). I know it passses on a 14GB
scratch filesystem....

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [patch] xfsqa test to check log size scaling
  2008-05-22 22:12   ` David Chinner
@ 2008-05-23  4:59     ` Christoph Hellwig
  0 siblings, 0 replies; 6+ messages in thread
From: Christoph Hellwig @ 2008-05-23  4:59 UTC (permalink / raw)
  To: David Chinner; +Cc: Christoph Hellwig, xfs-dev, xfs-oss

On Fri, May 23, 2008 at 08:12:52AM +1000, David Chinner wrote:
> On Thu, May 22, 2008 at 09:25:42AM -0400, Christoph Hellwig wrote:
> > On Thu, May 22, 2008 at 04:12:57PM +1000, David Chinner wrote:
> > > XFS-QA test to check that log size scaling works correctly
> > > for old and new maximum log sizes.
> > 
> > Am I missing somethign or would this fail if the partitions used for
> > xfsqa are smaller than 256GB?  I don't even have that much total storage
> > on my laptop :)
> 
> Uses loop devices and sparse files - should work just fine on any partition a
> bit over 2GB (the log gets zeroed during mkfs). I know it passses on a 14GB
> scratch filesystem....

Okay for the patch then.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [patch] xfsqa test to check log size scaling
  2008-05-22  6:12 [patch] xfsqa test to check log size scaling David Chinner
  2008-05-22 13:25 ` Christoph Hellwig
@ 2008-07-10 22:45 ` Dave Chinner
  2009-05-10 19:37 ` Christoph Hellwig
  2 siblings, 0 replies; 6+ messages in thread
From: Dave Chinner @ 2008-07-10 22:45 UTC (permalink / raw)
  To: xfs

ping?

On Thu, May 22, 2008 at 04:12:57PM +1000, David Chinner wrote:
> XFS-QA test to check that log size scaling works correctly
> for old and new maximum log sizes.
> 
> Signed-off-by: Dave Chinner <dgc@sgi.com>
> ---
>  xfstests/188     |   88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  xfstests/188.out |   16 ++++++++++
>  xfstests/group   |    1 
>  3 files changed, 105 insertions(+)
> 
> Index: xfs-cmds/xfstests/188
> ===================================================================
> --- /dev/null	1970-01-01 00:00:00.000000000 +0000
> +++ xfs-cmds/xfstests/188	2008-05-15 22:39:08.741203552 +1000
> @@ -0,0 +1,88 @@
> +#! /bin/sh
> +# FS QA Test No. 188
> +#
> +# large log size mkfs test - ensure the log size scaling works
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2008 Silicon Graphics, Inc.  All Rights Reserved.
> +#-----------------------------------------------------------------------
> +#
> +# creator
> +owner=dgc@sgi.com
> +
> +seq=`basename $0`
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1	# failure is the default!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> +    cd /
> +    rm -f $tmp.*
> +    _cleanup_testdir
> +}
> +
> +# get standard environment, filters and checks
> +. ./common.rc
> +. ./common.filter
> +
> +# real QA test starts here
> +_supported_fs xfs
> +_supported_os Linux
> +
> +_setup_testdir
> +_require_scratch
> +_scratch_mkfs_xfs >/dev/null 2>&1
> +_scratch_mount
> +
> +_require_loop
> +LOOP_DEV=$SCRATCH_MNT/test_fs
> +LOOP_MNT=$SCRATCH_MNT/test_fs_dir
> +
> +_do_mkfs()
> +{
> +	for i in $*; do
> +		echo -n "fssize=${i}g "
> +		$MKFS_XFS_PROG -f -b size=4096 -l version=2 \
> +			-d name=$LOOP_DEV,size=${i}g |grep log
> +		mount -o loop -t xfs $LOOP_DEV $LOOP_MNT
> +		echo "test write" > $LOOP_MNT/test
> +		umount $LOOP_MNT
> +	done
> +}
> +# make large holey file
> +$XFS_IO_PROG -f -c "truncate 100t" $LOOP_DEV
> +
> +#make loopback mount dir
> +mkdir $LOOP_MNT
> +
> +# test if large logs are supported
> +LARGE_LOG=
> +$MKFS_XFS_PROG -f -l size=256m -d name=$LOOP_DEV,size=10g > /dev/null 2>&1
> +if [ $? -eq 0 ]; then
> +	LARGE_LOG=true
> +fi
> +
> +# walk over standard sizes (up to 256GB)
> +_do_mkfs 1 2 4 8 16 32 64 128 256
> +
> +if [ -n "$LARGE_LOG" ]; then
> +	# walk over larger sizes
> +	_do_mkfs 512 1024 2048 4096 8192 16384
> +else
> +	# just cut'n'paste from the golden output for the remaining sizes
> +	cat << EOF
> +fssize=512g log      =internal log           bsize=4096   blocks=65536, version=2
> +fssize=1024g log      =internal log           bsize=4096   blocks=131072, version=2
> +fssize=2048g log      =internal log           bsize=4096   blocks=262144, version=2
> +fssize=4096g log      =internal log           bsize=4096   blocks=521728, version=2
> +fssize=8192g log      =internal log           bsize=4096   blocks=521728, version=2
> +fssize=16384g log      =internal log           bsize=4096   blocks=521728, version=2
> +EOF
> +fi
> +
> +status=0
> +exit
> Index: xfs-cmds/xfstests/188.out
> ===================================================================
> --- /dev/null	1970-01-01 00:00:00.000000000 +0000
> +++ xfs-cmds/xfstests/188.out	2008-05-15 22:39:26.254922874 +1000
> @@ -0,0 +1,16 @@
> +QA output created by 188
> +fssize=1g log      =internal log           bsize=4096   blocks=2560, version=2
> +fssize=2g log      =internal log           bsize=4096   blocks=2560, version=2
> +fssize=4g log      =internal log           bsize=4096   blocks=2560, version=2
> +fssize=8g log      =internal log           bsize=4096   blocks=2560, version=2
> +fssize=16g log      =internal log           bsize=4096   blocks=2560, version=2
> +fssize=32g log      =internal log           bsize=4096   blocks=4096, version=2
> +fssize=64g log      =internal log           bsize=4096   blocks=8192, version=2
> +fssize=128g log      =internal log           bsize=4096   blocks=16384, version=2
> +fssize=256g log      =internal log           bsize=4096   blocks=32768, version=2
> +fssize=512g log      =internal log           bsize=4096   blocks=65536, version=2
> +fssize=1024g log      =internal log           bsize=4096   blocks=131072, version=2
> +fssize=2048g log      =internal log           bsize=4096   blocks=262144, version=2
> +fssize=4096g log      =internal log           bsize=4096   blocks=521728, version=2
> +fssize=8192g log      =internal log           bsize=4096   blocks=521728, version=2
> +fssize=16384g log      =internal log           bsize=4096   blocks=521728, version=2
> Index: xfs-cmds/xfstests/group
> ===================================================================
> --- xfs-cmds.orig/xfstests/group	2008-05-15 16:32:52.489519140 +1000
> +++ xfs-cmds/xfstests/group	2008-05-15 22:38:32.000000000 +1000
> @@ -275,3 +275,4 @@ filestreams	dgc@sgi.com
>  185 dmapi auto
>  186 attr auto
>  187 attr auto
> +188 log metadata auto
> 
> 

-- 
Dave Chinner
david@fromorbit.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [patch] xfsqa test to check log size scaling
  2008-05-22  6:12 [patch] xfsqa test to check log size scaling David Chinner
  2008-05-22 13:25 ` Christoph Hellwig
  2008-07-10 22:45 ` Dave Chinner
@ 2009-05-10 19:37 ` Christoph Hellwig
  2 siblings, 0 replies; 6+ messages in thread
From: Christoph Hellwig @ 2009-05-10 19:37 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs-oss

On Thu, May 22, 2008 at 04:12:57PM +1000, David Chinner wrote:
> XFS-QA test to check that log size scaling works correctly
> for old and new maximum log sizes.

This patch has a couple of problems.


For 32bit architecturs with 4k pages the maximum filesize is limited
to just under 16 Terrabytes, so the 100 Terrabyte file can't be
created.  Even if limit the size to just under 16TB we can run of
space quite quickly by just creating the filesystem and the large
log on smaller test setups.

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-05-10 19:37 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-22  6:12 [patch] xfsqa test to check log size scaling David Chinner
2008-05-22 13:25 ` Christoph Hellwig
2008-05-22 22:12   ` David Chinner
2008-05-23  4:59     ` Christoph Hellwig
2008-07-10 22:45 ` Dave Chinner
2009-05-10 19:37 ` Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox