xfs
[Top] [All Lists]

[PATCH] update 068 to reproduce an unfreeze hanging up problem

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: [PATCH] update 068 to reproduce an unfreeze hanging up problem
From: Masayoshi MIZUMA <m.mizuma@xxxxxxxxxxxxxx>
Date: Tue, 13 Dec 2011 09:42:46 +0900
Cc: linux-fsdevel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, Dave Chinner <david@xxxxxxxxxxxxx>
update 068 to reproduce an unfreeze hanging up problem which is unfreeze
function, thaw_super(), sometimes hangs up if flush kernel thread does
writeback to the same filesystem concurrently.
The problem occurs on ext4 and ext3. They are reported at
ext4:
http://marc.info/?l=linux-ext4&m=132339590004560&w=2
ext3:
http://marc.info/?l=linux-ext4&m=131536612113658&w=2

This test runs freeze/unfreeze under heavy load. If the problem is
reproduced, this test will hang up because "xfs_freeze -u" hangs up...

Signed-off-by: Masayoshi MIZUMA <m.mizuma@xxxxxxxxxxxxxx>
---
 068     |   17 +++----
 068.out |  160 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 167 insertions(+), 10 deletions(-)

diff --git a/068 b/068
index 5d0053d..3b3597d 100755
--- a/068
+++ b/068
@@ -32,7 +32,7 @@ here=`pwd`
 tmp=/tmp/$$
 status=0       # success is the default!
 
-ITERATIONS=10
+ITERATIONS=50
 
 _cleanup()
 {
@@ -51,7 +51,7 @@ trap "_cleanup" 0 1 2 3 15
 . ./common.filter
 
 # real QA test starts here
-_supported_fs xfs
+_supported_fs ext3 ext4 xfs
 _supported_os Linux IRIX
 
 _require_scratch
@@ -62,7 +62,7 @@ rm -f $seq.full
 umount $SCRATCH_DEV >/dev/null 2>&1
 echo "*** MKFS ***"                         >>$seq.full
 echo ""                                     >>$seq.full
-_scratch_mkfs_xfs                           >>$seq.full 2>&1 \
+_scratch_mkfs                               >>$seq.full 2>&1 \
     || _fail "mkfs failed"
 _scratch_mount                              >>$seq.full 2>&1 \
     || _fail "mount failed"
@@ -75,12 +75,11 @@ touch $tmp.running
     STRESS_DIR="$SCRATCH_MNT/fsstress_test_dir"
     mkdir "$STRESS_DIR"
 
-    procs=2
-    nops=200
+    procs=100
+    nops=1000
     while [ -f "$tmp.running" ]
-      do
-      #        -w ensures that the only ops are ones which cause write I/O
-      $FSSTRESS_PROG -d $STRESS_DIR -w -p $procs -n $nops $FSSTRESS_AVOID \
+    do
+      $FSSTRESS_PROG -d $STRESS_DIR -p $procs -n $nops $FSSTRESS_AVOID \
          > /dev/null 2>&1
     done
 
@@ -99,13 +98,11 @@ do
        xfs_freeze -f "$SCRATCH_MNT" | tee -a $seq.full
        [ $? != 0 ] && echo xfs_freeze -f "$SCRATCH_MNT" failed | \
            tee -a $seq.full
-       sleep 2
 
        echo "*** thawing  \$SCRATCH_MNT" | tee -a $seq.full
        xfs_freeze -u "$SCRATCH_MNT" | tee -a $seq.full
        [ $? != 0 ] && echo xfs_freeze -u "$SCRATCH_MNT" failed | \
            tee -a $seq.full
-       sleep 2
 
        echo  | tee -a $seq.full
        let i=$i+1
diff --git a/068.out b/068.out
index 363d0e9..11eb58d 100644
--- a/068.out
+++ b/068.out
@@ -41,3 +41,163 @@ QA output created by 068
 *** freezing $SCRATCH_MNT
 *** thawing  $SCRATCH_MNT
 
+*** iteration: 10
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 11
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 12
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 13
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 14
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 15
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 16
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 17
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 18
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 19
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 20
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 21
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 22
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 23
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 24
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 25
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 26
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 27
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 28
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 29
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 30
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 31
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 32
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 33
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 34
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 35
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 36
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 37
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 38
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 39
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 40
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 41
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 42
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 43
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 44
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 45
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 46
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 47
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 48
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
+*** iteration: 49
+*** freezing $SCRATCH_MNT
+*** thawing  $SCRATCH_MNT
+
-- 
1.7.1

Thanks,
Masayoshi Mizuma


<Prev in Thread] Current Thread [Next in Thread>