[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1361273843-16094-6-git-send-email-dmonakhov@openvz.org>
Date: Tue, 19 Feb 2013 15:37:18 +0400
From: Dmitry Monakhov <dmonakhov@...nvz.org>
To: unlisted-recipients:; (no To-header on input)
Cc: linux-ext4@...r.kernel.org, linux-fsdevel@...r.kernel.org,
xfs@....sgi.com, david@...morbit.com,
Dmitry Monakhov <dmonakhov@...nvz.org>
Subject: [PATCH 06/11] xfstest: allow fsstress to use load factor where appropriate
1) Add _scale_fsstress_args function which transform argumets according
to load factors
2) Let all non deterministic fsstress tests to use scaled arguments
I've able to trigger OOPS on xfs see:https://gist.github.com/dmonakhov/4762653
Signed-off-by: Dmitry Monakhov <dmonakhov@...nvz.org>
---
017 | 3 ++-
068 | 4 ++--
070 | 5 +++--
076 | 5 +++--
083 | 4 ++--
087 | 3 ++-
104 | 4 +++-
114 | 4 ++--
167 | 5 +++--
232 | 4 ++--
232.out | 1 -
233 | 6 +++---
233.out | 1 -
269 | 2 +-
270 | 2 +-
common.rc | 14 ++++++++++++++
group | 26 +++++++++++++-------------
17 files changed, 56 insertions(+), 37 deletions(-)
diff --git a/017 b/017
index 9ca0e72..7db4667 100755
--- a/017
+++ b/017
@@ -67,7 +67,8 @@ echo "*** test"
for l in 0 1 2 3 4
do
echo " *** test $l"
- $FSSTRESS_PROG -d $SCRATCH_MNT -n 1000 $FSSTRESS_AVOID >>$seq.full
+ FSSTRESS_ARGS=`_scale_fsstress_args -d $SCRATCH_MNT -n 1000 $FSSTRESS_AVOID`
+ $FSSTRESS_PROG $FSSTRESS_ARGS >>$seq.full
_scratch_mount -o remount,ro \
|| _fail "remount ro failed"
diff --git a/068 b/068
index b595d1d..5ee899a 100755
--- a/068
+++ b/068
@@ -81,8 +81,8 @@ touch $tmp.running
do
# We do both read & write IO - not only is this more realistic,
# but it also potentially tests atime updates
- $FSSTRESS_PROG -d $STRESS_DIR -p $procs -n $nops $FSSTRESS_AVOID \
- > /dev/null 2>&1
+ FSSTRESS_ARGS=`_scale_fsstress_args -d $STRESS_DIR -p $procs -n $nops $FSSTRESS_AVOID`
+ $FSSTRESS_PROG $FSSTRESS_ARGS > /dev/null 2>&1
done
rm -r $STRESS_DIR/*
diff --git a/070 b/070
index f48c33c..334cce7 100755
--- a/070
+++ b/070
@@ -52,7 +52,7 @@ _require_attrs
_setup_testdir
-$FSSTRESS_PROG \
+FSSTRESS_ARGS=`_scale_fsstress_args \
-d $testdir/fsstress \
-f allocsp=0 \
-f freesp=0 \
@@ -62,7 +62,8 @@ $FSSTRESS_PROG \
-f unresvsp=0 \
-f attr_set=100 \
-f attr_remove=100 \
- -p 1 -n 10000 -S c >$seq.full 2>&1
+ -p 1 -n 10000 -S c`
+$FSSTRESS_PROG $FSSTRESS_ARGS >$seq.full 2>&1
status=$?
exit
diff --git a/076 b/076
index e472b26..793b869 100755
--- a/076
+++ b/076
@@ -74,8 +74,9 @@ echo "*** test concurrent block/fs access"
cat $SCRATCH_DEV >/dev/null &
pid=$!
-$FSSTRESS_PROG -d $SCRATCH_MNT -p 2 -n 2000 $FSSTRESS_AVOID >>$seq.full
-
+FSSTRESS_ARGS=`_scale_fsstress_args -p 2 -n 2000 $FSSTRESS_AVOID`
+echo "run fsstress with args: $FSSTRESS_ARGS" >>$seq.full
+$FSSTRESS_PROG $FSSTRESS_ARGS >>$seq.full
_lets_get_pidst
_check_scratch_fs
diff --git a/083 b/083
index e0670b9..f5349a9 100755
--- a/083
+++ b/083
@@ -84,8 +84,8 @@ workout()
|| _fail "mount failed"
# -w ensures that the only ops are ones which cause write I/O
- $FSSTRESS_PROG -d $SCRATCH_MNT -w -p $procs -n $nops $FSSTRESS_AVOID \
- >>$seq.full
+ FSSTRESS_ARGS=`_scale_fsstress_args -d $SCRATCH_MNT -w -p $procs -n $nops $FSSTRESS_AVOID`
+ $FSSTRESS_PROG $FSSTRESS_ARGS >>$seq.full
_check_scratch_fs
}
diff --git a/087 b/087
index 48e5eaa..e7be9a0 100755
--- a/087
+++ b/087
@@ -47,7 +47,8 @@ _do_meta()
param="-p 4 -z -f rmdir=10 -f link=10 -f creat=10 -f mkdir=10 \
-f rename=30 -f stat=30 -f unlink=30 -f truncate=20"
_echofull "calling fsstress $param -m8 -n $count"
- if ! $FSSTRESS_PROG $param $FSSTRESS_AVOID -m 8 -n $count -d $out >>$seq.full 2>&1
+ FSSTRESS_ARGS=`_scale_fsstress_args $param $FSSTRESS_AVOID -m 8 -n $count -d $out`
+ if ! $FSSTRESS_PROG $FSSTRESS_ARGS >>$seq.full 2>&1
then
_echofull "fsstress failed"
fi
diff --git a/104 b/104
index 14f2669..8db6d88 100755
--- a/104
+++ b/104
@@ -64,7 +64,9 @@ _stress_scratch()
procs=3
nops=1000
# -w ensures that the only ops are ones which cause write I/O
- $FSSTRESS_PROG -d $SCRATCH_MNT -w -p $procs -n $nops $FSSTRESS_AVOID > /dev/null &
+ FSSTRESS_ARGS=`_scale_fsstress_args -d $SCRATCH_MNT -w -p $procs \
+ -n $nops $FSSTRESS_AVOID`
+ $FSSTRESS_PROG $FSSTRESS_ARGS >> $seq.full &
}
# real QA test starts here
diff --git a/114 b/114
index 7679222..edce0f4 100755
--- a/114
+++ b/114
@@ -246,11 +246,11 @@ _test_fsstress()
out=$SCRATCH_MNT/fsstress.$$
count=1000
- args="-z \
+ args=`_scale_fsstress_args -z \
-f rmdir=10 -f link=10 -f creat=10 \
-f mkdir=10 -f rename=30 -f unlink=10 \
-f symlink=10 \
--n $count -d $out -p 3"
+-n $count -d $out -p 3`
echo "fsstress $args" | sed -e "s#$out#outdir#"
if ! $FSSTRESS_PROG $args | _filter_num
diff --git a/167 b/167
index ccb6c2a..5fb95e8 100755
--- a/167
+++ b/167
@@ -44,8 +44,9 @@ workout()
{
procs=100
nops=15000
- $FSSTRESS_PROG -d $SCRATCH_MNT -p $procs -n $nops $FSSTRESS_AVOID \
- >>$seq.full &
+ FSSTRESS_ARGS=`_scale_fsstress_args -d $SCRATCH_MNT -p $procs -n $nops \
+ $FSSTRESS_AVOID`
+ $FSSTRESS_PROG $FSSTRESS_ARGS >> $seq.full &
sleep 2
}
diff --git a/232 b/232
index 2795da7..d915d42 100755
--- a/232
+++ b/232
@@ -54,9 +54,9 @@ _fsstress()
out=$SCRATCH_MNT/fsstress.$$
count=2000
- args="-n $count -d $out -p 7"
+ args=`_scale_fsstress_args -d $out -n $count -p 7`
- echo "fsstress $args" | tee -a $here/$seq.full | sed -e "s#$out#outdir#"
+ echo "fsstress $args" >> tee -a $here/$seq.full
if ! $FSSTRESS_PROG $args | tee -a $here/$seq.full | _filter_num
then
echo " fsstress $args returned $?"
diff --git a/232.out b/232.out
index ef82a89..5da53d4 100644
--- a/232.out
+++ b/232.out
@@ -2,7 +2,6 @@ QA output created by 232
Testing fsstress
-fsstress -n 2000 -d outdir -p 7
seed = S
Comparing user usage
Comparing group usage
diff --git a/233 b/233
index 28e6ac7..649de51 100755
--- a/233
+++ b/233
@@ -58,12 +58,12 @@ _fsstress()
out=$SCRATCH_MNT/fsstress.$$
count=5000
- args="-z \
+ args=`_scale_fsstress_args -z \
-f rmdir=20 -f link=10 -f creat=10 -f mkdir=10 -f unlink=20 -f symlink=10 \
-f rename=10 -f fsync=2 -f write=15 -f dwrite=15 \
--n $count -d $out -p 7"
+-n $count -d $out -p 7`
- echo "fsstress $args" | tee -a $here/$seq.full | sed -e "s#$out#outdir#"
+ echo "fsstress $args" >> tee -a $here/$seq.full
if ! su $qa_user -c "$FSSTRESS_PROG $args" | tee -a $here/$seq.full | _filter_num
then
echo " fsstress $args returned $?"
diff --git a/233.out b/233.out
index fa36ca3..91c1a30 100644
--- a/233.out
+++ b/233.out
@@ -2,7 +2,6 @@ QA output created by 233
Testing fsstress
-fsstress -z -f rmdir=20 -f link=10 -f creat=10 -f mkdir=10 -f unlink=20 -f symlink=10 -f rename=10 -f fsync=2 -f write=15 -f dwrite=15 -n 5000 -d outdir -p 7
seed = S
Comparing user usage
Comparing group usage
diff --git a/269 b/269
index 7e13ed9..7d63b87 100755
--- a/269
+++ b/269
@@ -45,7 +45,7 @@ _workout()
num_iterations=10
enospc_time=2
out=$SCRATCH_MNT/fsstress.$$
- args="-p128 -n999999999 -f setattr=1 $FSSTRESS_AVOID -d $out"
+ args=`_scale_fsstress_args -p128 -n999999999 -f setattr=1 $FSSTRESS_AVOID -d $out`
echo "fsstress $args" >> $here/$seq.full
$FSSTRESS_PROG $args > /dev/null 2>&1 &
pid=$!
diff --git a/270 b/270
index b9ada27..b753923 100755
--- a/270
+++ b/270
@@ -48,7 +48,7 @@ _workout()
num_iterations=10
enospc_time=2
out=$SCRATCH_MNT/fsstress.$$
- args="-p128 -n999999999 -f setattr=1 $FSSTRESS_AVOID -d $out"
+ args=`_scale_fsstress_args -p128 -n999999999 -f setattr=1 $FSSTRESS_AVOID -d $out`
echo "fsstress $args" >> $here/$seq.full
# Grant chown capability
cp $FSSTRESS_PROG $tmp.fsstress.bin
diff --git a/common.rc b/common.rc
index 196619d..ea5c477 100644
--- a/common.rc
+++ b/common.rc
@@ -1793,6 +1793,20 @@ _devmgt_add()
echo ${tdl} > /sys/class/scsi_host/host${h}/scan || _fail "Add disk failed"
}
+_scale_fsstress_args()
+{
+ args=""
+ while [ $# -gt 0 ]; do
+ case "$1" in
+ -n) args="$args $1 $(($2 * $TIME_FACTOR))"; shift ;;
+ -p) args="$args $1 $(($2 * $LOAD_FACTOR))"; shift ;;
+ *) args="$args $1" ;;
+ esac
+ shift
+ done
+ echo $args
+}
+
################################################################################
if [ "$iam" != new -a "$iam" != bench ]
diff --git a/group b/group
index 810c938..c6630c9 100644
--- a/group
+++ b/group
@@ -137,7 +137,7 @@ stress
014 rw udf auto quick
015 other auto quick
016 rw auto quick
-017 mount auto quick
+017 mount auto quick stress
018 deprecated # log logprint v2log
019 mkfs auto quick
020 metadata attr udf auto quick
@@ -188,26 +188,26 @@ stress
065 dump auto
066 dump ioctl auto quick
067 acl attr auto quick
-068 other auto freeze dangerous
+068 other auto freeze dangerous stress
069 rw udf auto quick
-070 attr udf auto quick
+070 attr udf auto quick stress
071 rw auto
072 rw auto prealloc quick
073 copy auto
074 rw udf auto
075 rw udf auto quick
-076 metadata rw udf auto quick
+076 metadata rw udf auto quick stress
077 acl attr auto enospc
078 growfs auto quick
079 acl attr ioctl metadata auto quick
080 rw ioctl
081 deprecated # log logprint quota
082 deprecated # log logprint v2log
-083 rw auto
+083 rw auto enospc stress
084 ioctl rw auto
085 log auto quick
086 log v2log auto
-087 log v2log auto quota
+087 log v2log auto quota stress
088 perms auto quick
089 metadata auto
090 rw auto
@@ -224,7 +224,7 @@ stress
101 udf
102 udf
103 metadata dir ioctl auto quick
-104 growfs ioctl prealloc auto
+104 growfs ioctl prealloc auto stress
105 acl auto quick
106 quota
107 quota
@@ -234,7 +234,7 @@ stress
111 ioctl
112 rw aio auto quick
113 rw aio auto quick
-114 parent attr
+114 parent attr stress
115 parent attr
116 quota auto quick
117 attr auto quick
@@ -287,7 +287,7 @@ stress
164 rw pattern auto prealloc quick
165 rw pattern auto prealloc quick
166 rw metadata auto quick
-167 rw metadata auto
+167 rw metadata auto stress
168 dmapi auto
169 rw metadata auto quick
170 rw filestreams auto quick
@@ -355,8 +355,8 @@ stress
229 auto rw
230 auto quota quick
231 auto quota
-232 auto quota
-233 auto quota
+232 auto quota stress
+233 auto quota stress
234 auto quota
235 auto quota quick
236 auto quick metadata
@@ -392,8 +392,8 @@ stress
266 dump ioctl auto quick
267 dump ioctl tape
268 dump ioctl tape
-269 auto rw prealloc ioctl enospc
-270 auto quota rw prealloc ioctl enospc
+269 auto rw prealloc ioctl enospc stress
+270 auto quota rw prealloc ioctl enospc stress
271 auto rw quick
272 auto enospc rw
273 auto rw
--
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists