From: Chandan Rajendra <chandan@linux.vnet.ibm.com>
To: fstests@vger.kernel.org
Cc: Chandan Rajendra <chandan@linux.vnet.ibm.com>,
eguan@redhat.com, darrick.wong@oracle.com
Subject: [PATCH 01/16] Fix xfs/009 to work with 64k block size
Date: Thu, 16 Aug 2018 12:56:31 +0530 [thread overview]
Message-ID: <20180816072646.14490-2-chandan@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180816072646.14490-1-chandan@linux.vnet.ibm.com>
xfs_alloc_file_space() rounds up allocation requests by the filesystem
block size. Hence this commit changes the test to work with block size
units rather than with a multiple of 4096 bytes.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
---
tests/xfs/009 | 92 ++++++++++++++++++++++++++++++++++++++++++++++---------
tests/xfs/009.out | 66 +++++++++++++++++++--------------------
2 files changed, 110 insertions(+), 48 deletions(-)
diff --git a/tests/xfs/009 b/tests/xfs/009
index 68f6379..e8d1871 100755
--- a/tests/xfs/009
+++ b/tests/xfs/009
@@ -14,9 +14,6 @@ here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
-# This isn't really related to fs block size, it's just what
-# alloc uses for the "block" unit in it's input parameters...
-bsize=4096
_cleanup()
{
@@ -24,13 +21,6 @@ _cleanup()
_scratch_unmount
}
-_block_filter()
-{
- sed \
- -e 's/[0-9][0-9]*\.\.[0-9][0-9]*/BLOCKRANGE/g' \
- -e "s/blocksize $bsize/blocksize BSIZE/g"
-}
-
_init()
{
echo "*** mkfs"
@@ -49,11 +39,6 @@ _init()
fi
}
-_filesize()
-{
- ls -l $1 | $AWK_PROG '{print "filesize = " $5}'
-}
-
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
@@ -64,6 +49,83 @@ _supported_os Linux
_require_scratch
+# This isn't really related to fs block size, it's just what
+# alloc uses for the "block" unit in it's input parameters...
+# However, xfs_alloc_file_space() ends up rounding up allocation
+# request by the filesystem block size.
+bsize=$(_get_block_size $TEST_DIR)
+
+_filesize()
+{
+ ls -l $1 | $AWK_PROG -v bsize="$bsize" '{print "filesize = " $5 / bsize}'
+}
+
+_block_filter()
+{
+ $AWK_PROG -v bsize="$bsize" '
+ /blocksize/ {
+ printf(" blocksize BSIZE\n")
+
+ next
+ }
+
+ /CMD/ {
+ split($3, off, "=")
+ offset = strtonum(off[2])
+ if (offset != -1)
+ offset = offset / bsize
+
+ split($4, len, "=")
+ nr_blocks = strtonum(len[2])
+ if (nr_blocks != -1)
+ nr_blocks = nr_blocks / bsize
+
+ printf(" %s %s off=%s, len=%d\n", $1, $2, offset, nr_blocks)
+
+ next
+ }
+
+ /MAP/ {
+ split($2, off, "=")
+ offset = strtonum(off[2])
+ if (offset != -1)
+ offset = offset / bsize
+
+ split($3, len, "=")
+
+ nr_blocks = strtonum(len[2])
+
+ if (nr_blocks != -1)
+ nr_blocks = nr_blocks / bsize
+
+ printf(" %s off=%s, len=%d %s\n", $1, offset, nr_blocks, $4)
+
+ next
+ }
+
+ /TRUNCATE/ {
+ split($2, off, "=")
+ offset = strtonum(off[2]) / bsize
+
+ printf(" %s off=%s\n", $1, offset)
+
+ next
+ }
+
+ /\[[0-9]+,[0-9]+\]:/ {
+ printf(" %s BLOCKRANGE\n", $1)
+
+ next
+ }
+
+ {
+ print
+
+ next
+ }
+ '
+}
+
_init
out=$SCRATCH_MNT/$$.tmp
diff --git a/tests/xfs/009.out b/tests/xfs/009.out
index 7132aca..02b5d82 100644
--- a/tests/xfs/009.out
+++ b/tests/xfs/009.out
@@ -3,8 +3,8 @@ QA output created by 009
*** mount
*** test 1 - reservations cleared on O_TRUNC
blocksize BSIZE
- CMD resvsp, off=0, len=4096000
- MAP off=0, len=4096000 [0,1000]
+ CMD resvsp, off=0, len=1000
+ MAP off=0, len=1000 [0,1000]
[ofs,count]: start..end
[0,1000]: BLOCKRANGE
MAP off=0, len=-1 [0-]
@@ -17,53 +17,53 @@ filesize = 0
filesize = 0
*** test 2 - reserve & filesize
blocksize BSIZE
- CMD resvsp, off=0, len=4096000
- MAP off=0, len=4096000 [0,1000]
+ CMD resvsp, off=0, len=1000
+ MAP off=0, len=1000 [0,1000]
[ofs,count]: start..end
[0,1000]: BLOCKRANGE
filesize = 0
*** test 3 - alloc & filesize
blocksize BSIZE
- CMD allocsp, off=4096000, len=-1
- MAP off=4096000, len=-1 [1000-]
+ CMD allocsp, off=1000, len=-1
+ MAP off=1000, len=-1 [1000-]
[ofs,count]: start..end
-filesize = 4096000
+filesize = 1000
*** test 4 - allocations cleared on O_TRUNC
blocksize BSIZE
- CMD allocsp, off=4096000, len=-1
- MAP off=4096000, len=-1 [1000-]
+ CMD allocsp, off=1000, len=-1
+ MAP off=1000, len=-1 [1000-]
[ofs,count]: start..end
-filesize = 4096000
+filesize = 1000
blocksize BSIZE
MAP off=0, len=-1 [0-]
[ofs,count]: start..end
filesize = 0
*** test 5 - reserve / unreserve
blocksize BSIZE
- CMD resvsp, off=0, len=409600
- MAP off=0, len=409600 [0,100]
+ CMD resvsp, off=0, len=100
+ MAP off=0, len=100 [0,100]
[ofs,count]: start..end
[0,100]: BLOCKRANGE
- CMD unresvsp, off=409600, len=2048000
- MAP off=409600, len=2048000 [100,500]
+ CMD unresvsp, off=100, len=500
+ MAP off=100, len=500 [100,500]
[ofs,count]: start..end
MAP off=0, len=-1 [0-]
[ofs,count]: start..end
[0,100]: BLOCKRANGE
- CMD unresvsp, off=3686400, len=819200
- MAP off=3686400, len=819200 [900,200]
+ CMD unresvsp, off=900, len=200
+ MAP off=900, len=200 [900,200]
[ofs,count]: start..end
MAP off=0, len=-1 [0-]
[ofs,count]: start..end
[0,100]: BLOCKRANGE
*** test 6 - reserve adjacent
blocksize BSIZE
- CMD resvsp, off=0, len=409600
- MAP off=0, len=409600 [0,100]
+ CMD resvsp, off=0, len=100
+ MAP off=0, len=100 [0,100]
[ofs,count]: start..end
[0,100]: BLOCKRANGE
- CMD resvsp, off=409600, len=409600
- MAP off=409600, len=409600 [100,100]
+ CMD resvsp, off=100, len=100
+ MAP off=100, len=100 [100,100]
[ofs,count]: start..end
[100,100]: BLOCKRANGE
MAP off=0, len=-1 [0-]
@@ -71,44 +71,44 @@ filesize = 0
[0,200]: BLOCKRANGE
*** test 7 - alloc
blocksize BSIZE
- CMD allocsp, off=4096000, len=-1
- MAP off=4096000, len=-1 [1000-]
+ CMD allocsp, off=1000, len=-1
+ MAP off=1000, len=-1 [1000-]
[ofs,count]: start..end
MAP off=0, len=-1 [0-]
[ofs,count]: start..end
[0,1000]: BLOCKRANGE
- CMD allocsp, off=8192000, len=-1
- MAP off=8192000, len=-1 [2000-]
+ CMD allocsp, off=2000, len=-1
+ MAP off=2000, len=-1 [2000-]
[ofs,count]: start..end
MAP off=0, len=-1 [0-]
[ofs,count]: start..end
[0,2000]: BLOCKRANGE
-filesize = 8192000
+filesize = 2000
*** test 8 - alloc & truncate
blocksize BSIZE
- CMD allocsp, off=4096000, len=-1
- MAP off=4096000, len=-1 [1000-]
+ CMD allocsp, off=1000, len=-1
+ MAP off=1000, len=-1 [1000-]
[ofs,count]: start..end
MAP off=0, len=-1 [0-]
[ofs,count]: start..end
[0,1000]: BLOCKRANGE
- TRUNCATE off=2048000
+ TRUNCATE off=500
MAP off=0, len=-1 [0-]
[ofs,count]: start..end
[0,500]: BLOCKRANGE
-filesize = 2048000
+filesize = 500
*** test 9 - reserve & truncate
blocksize BSIZE
- CMD resvsp, off=0, len=4096000
- MAP off=0, len=4096000 [0,1000]
+ CMD resvsp, off=0, len=1000
+ MAP off=0, len=1000 [0,1000]
[ofs,count]: start..end
[0,1000]: BLOCKRANGE
MAP off=0, len=-1 [0-]
[ofs,count]: start..end
[0,1000]: BLOCKRANGE
- TRUNCATE off=2048000
+ TRUNCATE off=500
MAP off=0, len=-1 [0-]
[ofs,count]: start..end
[0,1000]: BLOCKRANGE
-filesize = 2048000
+filesize = 500
*** unmount
--
2.9.5
next prev parent reply other threads:[~2018-08-16 10:21 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-16 7:26 [PATCH 00/16] Fix tests to work on non-4k block sized fs instances Chandan Rajendra
2018-08-16 7:26 ` Chandan Rajendra [this message]
2018-08-16 7:26 ` [PATCH 02/16] xfs/050: Fix "Push past soft inode limit" case Chandan Rajendra
2018-08-16 7:26 ` [PATCH 03/16] Fix xfs/050 to work with 64k block size Chandan Rajendra
2018-08-16 7:26 ` [PATCH 04/16] Fix xfs/074 " Chandan Rajendra
2018-08-16 7:26 ` [PATCH 05/16] Fix xfs/127 " Chandan Rajendra
2018-08-16 7:26 ` [PATCH 06/16] Fix xfs/139 " Chandan Rajendra
2018-08-16 7:26 ` [PATCH 07/16] Fix xfs/140 " Chandan Rajendra
2018-08-16 7:26 ` [PATCH 08/16] Fix xfs/190 " Chandan Rajendra
2018-08-16 7:26 ` [PATCH 09/16] Fix xfs/299 " Chandan Rajendra
2018-08-16 7:26 ` [PATCH 10/16] xfs/325: Inject free_extent error after CoW operation Chandan Rajendra
2018-08-16 7:26 ` [PATCH 11/16] Fix generic/102 to work with 64k block size Chandan Rajendra
2018-08-16 7:26 ` [PATCH 12/16] Fix generic/172 " Chandan Rajendra
2018-08-16 7:26 ` [PATCH 13/16] Filter fiemap output by FS " Chandan Rajendra
2018-08-16 7:26 ` [PATCH 14/16] Fix generic/177 to work with 64k " Chandan Rajendra
2018-08-16 7:26 ` [PATCH 15/16] Fix generic/230 " Chandan Rajendra
2018-08-16 7:26 ` [PATCH 16/16] Fix generic/235 " Chandan Rajendra
2018-08-16 9:53 ` [PATCH RESEND] Fix xfs/190 " Chandan Rajendra
2018-09-01 17:21 ` [PATCH 00/16] Fix tests to work on non-4k block sized fs instances Eryu Guan
2018-09-04 15:29 ` Chandan Rajendra
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=20180816072646.14490-2-chandan@linux.vnet.ibm.com \
--to=chandan@linux.vnet.ibm.com \
--cc=darrick.wong@oracle.com \
--cc=eguan@redhat.com \
--cc=fstests@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.