From: Jan Kara <jack@suse.cz>
To: Eric Sandeen <sandeen@sandeen.net>
Cc: hch@infradead.org, Jan Kara <jack@suse.cz>, xfs@oss.sgi.com
Subject: Re: [PATCH 4/8] Add test of quota accounting using fsx
Date: Tue, 15 Jun 2010 11:55:05 +0200 [thread overview]
Message-ID: <20100615095505.GB3347@quack.suse.cz> (raw)
In-Reply-To: <4C0FD43D.3040803@sandeen.net>
[-- Attachment #1: Type: text/plain, Size: 588 bytes --]
On Wed 09-06-10 12:49:49, Eric Sandeen wrote:
> Jan Kara wrote:
> > Run fsx (and also several fsx threads in parallel) and verify that
> > quota accounting is correct after they finish.
>
> Jan, I'm having trouble with this one on XFS for some reason, with our
> RHEL6 kernel and quota-3.17...
OK, attached is an improvement to the XFSQA tests after which all quota
tests pass for XFS just fine.
The second patch is just minor general improvement of _require_scratch
macro.
Could they be added to XFSQA repository? Thanks.
Honza
--
Jan Kara <jack@suse.cz>
SUSE Labs, CR
[-- Attachment #2: 0001-Provide-generic-function-for-checking-quota-usage.patch --]
[-- Type: text/x-patch, Size: 5593 bytes --]
>From 5f184d21e781f1b14365c356e6c80030964aaaf7 Mon Sep 17 00:00:00 2001
From: Jan Kara <jack@suse.cz>
Date: Thu, 10 Jun 2010 12:49:11 +0200
Subject: [PATCH 1/2] Provide generic function for checking quota usage
Provide generic function _check_quota_usage for checking whether quota usage
matches the space used and use it in proper tests.
Signed-off-by: Jan Kara <jack@suse.cz>
---
231 | 18 +++---------------
231.out | 6 ++++++
232 | 14 +-------------
232.out | 2 ++
233 | 14 +-------------
233.out | 2 ++
common.quota | 36 ++++++++++++++++++++++++++++++++++++
7 files changed, 51 insertions(+), 41 deletions(-)
diff --git a/231 b/231
index ebbe11e..e499c9a 100755
--- a/231
+++ b/231
@@ -49,18 +49,6 @@ s,$SCRATCH_DEV,[SCR_DEV],;
print;"
}
-check_usage()
-{
- quotaon -f -u -g $SCRATCH_MNT 2>/dev/null
- repquota -u -g $SCRATCH_MNT | grep -v "^root" | filter_scratch \
- >$tmp.orig
- quotacheck -u -g $SCRATCH_MNT 2>/dev/null
- repquota -u -g $SCRATCH_MNT | grep -v "^root" | filter_scratch \
- >$tmp.checked
- quotaon -u -g $SCRATCH_MNT 2>/dev/null
- diff $tmp.orig $tmp.checked
-}
-
_fsx()
{
tasks=$1
@@ -104,7 +92,7 @@ if ! _fsx 1; then
exit
fi
-if ! check_usage; then
+if ! _check_quota_usage; then
umount $SCRATCH_DEV 2>/dev/null
status=1
exit
@@ -116,7 +104,7 @@ if ! _fsx 4; then
exit
fi
-if ! check_usage; then
+if ! _check_quota_usage; then
umount $SCRATCH_DEV 2>/dev/null
status=1
exit
@@ -130,7 +118,7 @@ if ! _fsx 1; then
exit
fi
-if ! check_usage; then
+if ! _check_quota_usage; then
umount $SCRATCH_DEV 2>/dev/null
status=1
exit
diff --git a/231.out b/231.out
index 2f2d072..ef264a9 100644
--- a/231.out
+++ b/231.out
@@ -1,10 +1,16 @@
QA output created by 231
=== FSX Standard Mode, Memory Mapping, 1 Tasks ===
All operations completed A-OK!
+Comparing user usage
+Comparing group usage
=== FSX Standard Mode, Memory Mapping, 4 Tasks ===
All operations completed A-OK!
All operations completed A-OK!
All operations completed A-OK!
All operations completed A-OK!
+Comparing user usage
+Comparing group usage
=== FSX Standard Mode, Memory Mapping, 1 Tasks ===
All operations completed A-OK!
+Comparing user usage
+Comparing group usage
diff --git a/232 b/232
index cf4d25a..d5f99bd 100755
--- a/232
+++ b/232
@@ -46,18 +46,6 @@ s,$SCRATCH_DEV,[SCR_DEV],;
print;"
}
-check_usage()
-{
- quotaon -f -u -g $SCRATCH_MNT 2>/dev/null
- repquota -u -g -n $SCRATCH_MNT | grep -v "^#0" | filter_scratch |
- sort >$tmp.orig
- quotacheck -u -g $SCRATCH_MNT 2>/dev/null
- repquota -u -g -n $SCRATCH_MNT | grep -v "^#0" | filter_scratch |
- sort >$tmp.checked
- quotaon -u -g $SCRATCH_MNT 2>/dev/null
- diff $tmp.orig $tmp.checked
-}
-
_filter_num()
{
tee -a $here/$seq.full |\
@@ -104,7 +92,7 @@ if ! _fsstress; then
exit
fi
-if ! check_usage; then
+if ! _check_quota_usage; then
umount $SCRATCH_DEV 2>/dev/null
status=1
exit
diff --git a/232.out b/232.out
index 744192e..ef82a89 100644
--- a/232.out
+++ b/232.out
@@ -4,3 +4,5 @@ Testing fsstress
fsstress -n 2000 -d outdir -p 7
seed = S
+Comparing user usage
+Comparing group usage
diff --git a/233 b/233
index b967e0d..5060931 100755
--- a/233
+++ b/233
@@ -50,18 +50,6 @@ s,$SCRATCH_DEV,[SCR_DEV],;
print;"
}
-check_usage()
-{
- quotaon -f -u -g $SCRATCH_MNT 2>/dev/null
- repquota -u -g -n $SCRATCH_MNT | grep -v "^#0" | filter_scratch |
- sort >$tmp.orig
- quotacheck -u -g $SCRATCH_MNT 2>/dev/null
- repquota -u -g -n $SCRATCH_MNT | grep -v "^#0" | filter_scratch |
- sort >$tmp.checked
- quotaon -u -g $SCRATCH_MNT 2>/dev/null
- diff $tmp.orig $tmp.checked
-}
-
_filter_num()
{
tee -a $here/$seq.full |\
@@ -113,7 +101,7 @@ if ! _fsstress; then
exit
fi
-if ! check_usage; then
+if ! _check_quota_usage; then
umount $SCRATCH_DEV 2>/dev/null
status=1
exit
diff --git a/233.out b/233.out
index 208910d..fa36ca3 100644
--- a/233.out
+++ b/233.out
@@ -4,3 +4,5 @@ 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/common.quota b/common.quota
index d32e285..655e34d 100644
--- a/common.quota
+++ b/common.quota
@@ -211,5 +211,41 @@ _qmount_option()
echo "MOUNT_OPTIONS = $MOUNT_OPTIONS" >>$seq.full
}
+_check_quota_usage()
+{
+ # Sync to get delalloc to disk
+ sync
+ VFS_QUOTA=0
+ if [ $FSTYP = "ext2" -o $FSTYP = "ext3" -o $FSTYP = "ext4" -o $FSTYP = "reiserfs" ]; then
+ VFS_QUOTA=1
+ quotaon -f -u -g $SCRATCH_MNT 2>/dev/null
+ fi
+ repquota -u -n $SCRATCH_MNT | grep -v "^#0" | filter_scratch |
+ sort >$tmp.user.orig
+ repquota -g -n $SCRATCH_MNT | grep -v "^#0" | filter_scratch |
+ sort >$tmp.group.orig
+ if [ $VFS_QUOTA -eq 1 ]; then
+ quotacheck -u -g $SCRATCH_MNT 2>/dev/null
+ else
+ # use XFS method to force quotacheck
+ mount -o remount,noquota $SCRATCH_DEV
+ mount -o remount,usrquota,grpquota $SCRATCH_DEV
+ fi
+ repquota -u -n $SCRATCH_MNT | grep -v "^#0" | filter_scratch |
+ sort >$tmp.user.checked
+ repquota -g -n $SCRATCH_MNT | grep -v "^#0" | filter_scratch |
+ sort >$tmp.group.checked
+ if [ $VFS_QUOTA -eq 1 ]; then
+ quotaon -u -g $SCRATCH_MNT 2>/dev/null
+ fi
+ {
+ echo "Comparing user usage"
+ diff $tmp.user.orig $tmp.user.checked
+ } && {
+ echo "Comparing group usage"
+ diff $tmp.group.orig $tmp.group.checked
+ }
+}
+
# make sure this script returns success
/bin/true
--
1.6.4.2
[-- Attachment #3: 0002-Add-test-for-correct-SCRATCH_MNT-into-_require_scrat.patch --]
[-- Type: text/x-patch, Size: 643 bytes --]
>From d72c11b63aa22c920b460a71d4384c2f39be6513 Mon Sep 17 00:00:00 2001
From: Jan Kara <jack@suse.cz>
Date: Tue, 15 Jun 2010 10:54:12 +0200
Subject: [PATCH 2/2] Add test for correct $SCRATCH_MNT into _require_scratch
---
common.rc | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/common.rc b/common.rc
index 6bf1e12..72997f9 100644
--- a/common.rc
+++ b/common.rc
@@ -703,6 +703,10 @@ _require_scratch()
then
_notrun "this test requires a valid \$SCRATCH_DEV"
fi
+ if [ ! -d "$SCRATCH_MNT" ]
+ then
+ _notrun "this test requires a valid \$SCRATCH_MNT"
+ fi
;;
esac
--
1.6.4.2
[-- Attachment #4: Type: text/plain, Size: 121 bytes --]
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2010-06-15 9:52 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-24 14:14 [PATCH 0/8 v3] Quota tests for XFSQA Jan Kara
2010-05-24 14:14 ` [PATCH 1/8] Fix test whether kernel supports quotas Jan Kara
2010-05-24 14:14 ` [PATCH 2/8] Fix fallocate() test Jan Kara
2010-05-24 14:14 ` [PATCH 3/8] Test basic quota enforcement Jan Kara
2010-05-25 10:06 ` Christoph Hellwig
2010-05-25 14:41 ` Jan Kara
2010-05-25 20:39 ` Jan Kara
2010-05-27 16:30 ` Christoph Hellwig
2010-05-27 17:08 ` Jan Kara
2010-05-24 14:14 ` [PATCH 4/8] Add test of quota accounting using fsx Jan Kara
2010-06-09 17:49 ` Eric Sandeen
2010-06-10 10:58 ` Jan Kara
2010-06-10 16:50 ` Eric Sandeen
2010-06-10 20:43 ` Eric Sandeen
2010-06-14 12:46 ` Jan Kara
2010-06-14 10:48 ` Jan Kara
2010-06-15 9:55 ` Jan Kara [this message]
2010-07-26 21:46 ` Eric Sandeen
2010-07-27 8:15 ` Jan Kara
2010-07-27 8:48 ` Jan Kara
2010-07-27 13:11 ` Eric Sandeen
2010-05-24 14:14 ` [PATCH 5/8] Add quota test with fsstress Jan Kara
2010-05-24 14:14 ` [PATCH 6/8] Add quota accounting test when fsstress is run and quota limits are set low Jan Kara
2010-05-24 14:14 ` [PATCH 7/8] Add test of quota limit and info setting Jan Kara
2010-05-24 14:14 ` [PATCH 8/8] Add test for quota accounting after remount read only Jan Kara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100615095505.GB3347@quack.suse.cz \
--to=jack@suse.cz \
--cc=hch@infradead.org \
--cc=sandeen@sandeen.net \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox