From mboxrd@z Thu Jan 1 00:00:00 1970 From: Masayoshi MIZUMA Subject: [PATCH] update 068 to reproduce an unfreeze hanging up problem Date: Tue, 13 Dec 2011 09:42:46 +0900 Message-ID: <20111213094245.4004.61FB500B@jp.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Cc: linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com, linux-ext4@vger.kernel.org, Dave Chinner To: Christoph Hellwig Return-path: Received: from fgwmail6.fujitsu.co.jp ([192.51.44.36]:49115 "EHLO fgwmail6.fujitsu.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754768Ab1LMAm5 (ORCPT ); Mon, 12 Dec 2011 19:42:57 -0500 Sender: linux-fsdevel-owner@vger.kernel.org List-ID: 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 --- 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