From: Dave Chinner <dchinner@xxxxxxxxxx> The xfsdump/restore tests will see the space filling files and may try to backthem up and restore them, consuming huge amounts of time to do (espcially when diffing the results). Exclude the space filling files by setting the no dump attributes on them and ensure that xfsdump runs with the -e flag to exclude such files. This also needs a dump filter addition to remove the output that files were skipped, and to decrement the count of files processed by xfsrestore because the inventory still includes excluded files. Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> --- common.config | 3 ++- common.dump | 34 ++++++++++++++++++++++++++-------- common.filter | 4 +++- common.rc | 1 + 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/common.config b/common.config index 5ac58bf..ab19772 100644 --- a/common.config +++ b/common.config @@ -160,7 +160,8 @@ export XFS_GROWFS_PROG=`set_prog_path xfs_growfs` export XFS_IO_PROG="`set_prog_path xfs_io`" export XFS_PARALLEL_REPAIR_PROG="`set_prog_path xfs_prepair`" export XFS_PARALLEL_REPAIR64_PROG="`set_prog_path xfs_prepair64`" -export XFSDUMP_PROG="`set_prog_path xfsdump`" +export __XFSDUMP_PROG="`set_prog_path xfsdump`" +export XFSDUMP_PROG="$__XFSDUMP_PROG -e" export XFSRESTORE_PROG="`set_prog_path xfsrestore`" export XFSINVUTIL_PROG="`set_prog_path xfsinvutil`" export DBENCH_PROG="`set_prog_path dbench`" diff --git a/common.dump b/common.dump index e89dedc..be55249 100644 --- a/common.dump +++ b/common.dump @@ -29,7 +29,8 @@ if [ -n "$DEBUGDUMP" ]; then # Use dump/restore in qa directory (copy them here) for debugging export PATH="$here:$PATH" - export XFSDUMP_PROG="`set_prog_path xfsdump`" + export __XFSDUMP_PROG="`set_prog_path xfsdump`" + export XFSDUMP_PROG="$__XFSDUMP_PROG -e" export XFSRESTORE_PROG="`set_prog_path xfsrestore`" export XFSINVUTIL_PROG="`set_prog_path xfsinvutil`" [ -x $here/xfsdump ] && echo "Using xfstests' xfsdump for debug" @@ -829,7 +830,7 @@ _dump_filter_main() { _filter_devchar |\ sed \ - -e "s#$XFSDUMP_PROG#xfsdump#" \ + -e "s#$__XFSDUMP_PROG#xfsdump#" \ -e "s#$XFSRESTORE_PROG#xfsrestore#" \ -e "s#$XFSINVUTIL_PROG#xfsinvutil#" \ -e "s/`hostname`/HOSTNAME/" \ @@ -872,13 +873,29 @@ _dump_filter_main() -e '/xfsdump: ino map phase [5]/,1d' \ -e 's/id:[[:space:]]*[0-9a-f]\{8\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{12\}/ID: ID/' \ -e 's/\[y\/n\][- ]----------------------*/\[y\/n\]/' \ + -e '/skip attribute set/d' \ | perl -ne ' - if ($_ =~ /(?:Dump|Restore) Summary/) { - $skip = 1; - } elsif ($_ =~ /(?:Dump|Restore) Status/) { - $skip = 0; - } - print if (! $skip);' + # filter out all the output between the lines "Dump Summary:" + # and "Dump Status:" + if ($_ =~ /(?:Dump|Restore) Summary/) { + $skip = 1; + } elsif ($_ =~ /(?:Dump|Restore) Status/) { + $skip = 0; + } + print if (! $skip);' \ + | perl -ne ' + # correct the file count if large scratch devices are being used + $skip = 0; + if ($_ =~ /(\S+) directories and (\S+) entries/) { + $foo = $2; + if ($ENV{'LARGE_SCRATCH_DEV'} && $foo > 0) { + $foo -= 1; + } + printf("xfsrestore: %u directories and %u entries processed\n", + $1, $foo); + $skip = 1; + } + print if (! $skip);' } _dump_filter() @@ -916,6 +933,7 @@ _dir_filter() -e "s#$dump_sdir#DUMP_SUBDIR#g" \ -e "s#$restore_sdir#RESTORE_SUBDIR#g" \ -e "s#$$#PID#g" \ + -e "/Only in SCRATCH_MNT: .use_space/d" \ } diff --git a/common.filter b/common.filter index c34809f..da5675f 100644 --- a/common.filter +++ b/common.filter @@ -223,7 +223,9 @@ _filter_test_dir() _filter_scratch() { - sed -e "s,$SCRATCH_DEV,SCRATCH_DEV,g" -e "s,$SCRATCH_MNT,SCRATCH_MNT,g" + sed -e "s,$SCRATCH_DEV,SCRATCH_DEV,g" \ + -e "s,$SCRATCH_MNT,SCRATCH_MNT,g" \ + -e "/.use_space/d" } # Turn any device in the scratch pool into SCRATCH_DEV diff --git a/common.rc b/common.rc index 690c6a3..96d5077 100644 --- a/common.rc +++ b/common.rc @@ -306,6 +306,7 @@ _setup_large_xfs_fs() xfs_io -F -f \ -c "truncate $file_size" \ -c "falloc -k 0 $file_size" \ + -c "chattr +d" \ $SCRATCH_MNT/.use_space 2>&1 > /dev/null status=$? umount $SCRATCH_MNT -- 1.7.10.4 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs