Files
apfstests/089
T
Dave Chinner e714acc0ef reduce the number of processes forked
One of the big cpu time consumers when running xfsqa on UML
is forking of new processes. when looping lots of times,
using 'expr' to calculate the loop counter increment means
we fork at least once every loop. using shell builtins means
that we don't fork and many tests run substantially faster.

Some tests are even runnable with this modification. e.g. 110
went from taking 4500s to run down to 9s with the loop iterators
changed to avoid forking.

Signed-off-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2009-03-25 20:53:36 +01:00

77 lines
1.4 KiB
Bash
Executable File

#! /bin/sh
# FS QA Test No. 089
#
# Emulate the way Linux mount manipulates /etc/mtab to attempt to
# reproduce a possible bug in rename (see src/t_mtab.c).
#
#-----------------------------------------------------------------------
# Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
#-----------------------------------------------------------------------
#
# creator
owner=nathans@sgi.com
seq=`basename $0`
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
addentries()
{
count=$1
pattern="%0$2d"
while [ $count -gt 0 ]; do
touch `printf $pattern $count`
let count=$count-1
done
}
# real QA test starts here
_supported_fs xfs
_supported_os Linux
rm -f $seq.full
[ "X$TEST_DIR" = "X" ] && exit 1
cd $TEST_DIR
rm -fr test
mkdir test || exit 1
cd $TEST_DIR/test
mount > t_mtab
mtab()
{
$here/src/t_mtab 50 &
$here/src/t_mtab 50 &
$here/src/t_mtab 50 &
wait
$here/src/t_mtab 10000
echo directory entries:
ls | grep mtab
echo directory entries >> $here/$seq.full
ls -li >> $here/$seq.full
}
# directory with only a few entries
mtab
# directory with a hundred more entries, each 4chars wide
addentries 100 4
mtab
# directory with a thousand more entries, each 8chars wide
addentries 1000 8
mtab
status=0
exit