From: "Darrick J. Wong" <djwong@kernel.org>
To: Pankaj Raghav <p.raghav@samsung.com>
Cc: fstests@vger.kernel.org, zlang@redhat.com,
linux-xfs@vger.kernel.org, gost.dev@samsung.com,
mcgrof@kernel.org, kernel@pankajraghav.com, david@fromorbit.com
Subject: Re: [PATCH 2/2] generic: increase file size to match CoW delayed allocation for XFS 64k bs
Date: Thu, 24 Oct 2024 11:17:09 -0700 [thread overview]
Message-ID: <20241024181709.GF2386201@frogsfrogsfrogs> (raw)
In-Reply-To: <20241024112311.615360-3-p.raghav@samsung.com>
On Thu, Oct 24, 2024 at 01:23:11PM +0200, Pankaj Raghav wrote:
> generic/305,326,328 have been failing for 32k and 64k blocksizes.
>
> We do the following in the test 305 and 326 (highlighting only the part
> that is related to failure):
>
> - create a 1M test-1/file1
> - reflink test-1/file2 and test-1/file3 based on test-1/file1
> - Overwrite first half of test-1/file2 to do a CoW operation
> - Expect the size of the test-1 dir to be 3M
>
> The test is failing for 32k and 64k blocksizes as the number of blocks
> (direct + delayed) is higher than number of blocks allocated for
> blocksizes < 32k in XFS, resulting in size of test-1 to be more than 3M.
> Though generic/328 has a different IO pattern, the reason for failure is
> the same.
>
> This is the failure output :
> --- tests/generic/305.out 2024-06-05 11:52:27.430262812 +0000
> +++ /root/results//64k_4ks/generic/305.out.bad 2024-10-23 10:56:57.643986870 +0000
> @@ -11,7 +11,7 @@
> CoW one of the files
> root 0 0 0
> nobody 0 0 0
> -fsgqa 3072 0 0
> +fsgqa 4608 0 0
> Remount the FS to see if accounting changes
> root 0 0 0
>
> In these tests, XFS is doing a delayed allocation of
> XFS_DEFAULT_COWEXTSIZE_HINT(32). Increase the size of the file so that
> the CoW write(sz/2) matches the maximum size of the delayed allocation
> for the max blocksize of 64k. This will ensure that all parts of the
> delayed extents are converted to real extents for all blocksizes.
>
> Even though this is not the most complete solution to fix these tests,
> the objective of these tests are to test quota and not the effect of delayed
> allocations.
>
> Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
> ---
> tests/generic/305 | 2 +-
> tests/generic/305.out | 12 ++++++------
> tests/generic/326 | 2 +-
> tests/generic/326.out | 12 ++++++------
> tests/generic/328 | 2 +-
> tests/generic/328.out | 16 +++++++++-------
> 6 files changed, 24 insertions(+), 22 deletions(-)
>
> diff --git a/tests/generic/305 b/tests/generic/305
> index c89bd821..6ccbb3d0 100755
> --- a/tests/generic/305
> +++ b/tests/generic/305
> @@ -32,7 +32,7 @@ quotaon $SCRATCH_MNT 2> /dev/null
> testdir=$SCRATCH_MNT/test-$seq
> mkdir $testdir
>
> -sz=1048576
> +sz=4194304
Hm, so you're increasing the filesize so that it exceeds 32*64k?
Hence 4M for some nice round numbers?
If so then I think I'm fine with that. Let's see what testing thinks.
:)
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
--D
> echo "Create the original files"
> $XFS_IO_PROG -f -c "pwrite -S 0x61 -b $sz 0 $sz" $testdir/file1 >> $seqres.full
> _cp_reflink $testdir/file1 $testdir/file2 >> $seqres.full
> diff --git a/tests/generic/305.out b/tests/generic/305.out
> index fbd4e241..1c348d1e 100644
> --- a/tests/generic/305.out
> +++ b/tests/generic/305.out
> @@ -1,22 +1,22 @@
> QA output created by 305
> Format and mount
> Create the original files
> -root 3072 0 0
> +root 12288 0 0
> nobody 0 0 0
> fsgqa 0 0 0
> Change file ownership
> root 0 0 0
> nobody 0 0 0
> -fsgqa 3072 0 0
> +fsgqa 12288 0 0
> CoW one of the files
> root 0 0 0
> nobody 0 0 0
> -fsgqa 3072 0 0
> +fsgqa 12288 0 0
> Remount the FS to see if accounting changes
> root 0 0 0
> nobody 0 0 0
> -fsgqa 3072 0 0
> +fsgqa 12288 0 0
> Chown one of the files
> root 0 0 0
> -nobody 1024 0 0
> -fsgqa 2048 0 0
> +nobody 4096 0 0
> +fsgqa 8192 0 0
> diff --git a/tests/generic/326 b/tests/generic/326
> index 1783fbf2..321e7dc6 100755
> --- a/tests/generic/326
> +++ b/tests/generic/326
> @@ -33,7 +33,7 @@ quotaon $SCRATCH_MNT 2> /dev/null
> testdir=$SCRATCH_MNT/test-$seq
> mkdir $testdir
>
> -sz=1048576
> +sz=4194304
> echo "Create the original files"
> $XFS_IO_PROG -f -c "pwrite -S 0x61 -b $sz 0 $sz" $testdir/file1 >> $seqres.full
> _cp_reflink $testdir/file1 $testdir/file2 >> $seqres.full
> diff --git a/tests/generic/326.out b/tests/generic/326.out
> index de7f20b5..4ccb3250 100644
> --- a/tests/generic/326.out
> +++ b/tests/generic/326.out
> @@ -1,22 +1,22 @@
> QA output created by 326
> Format and mount
> Create the original files
> -root 3072 0 0
> +root 12288 0 0
> nobody 0 0 0
> fsgqa 0 0 0
> Change file ownership
> root 0 0 0
> nobody 0 0 0
> -fsgqa 3072 0 0
> +fsgqa 12288 0 0
> CoW one of the files
> root 0 0 0
> nobody 0 0 0
> -fsgqa 3072 0 0
> +fsgqa 12288 0 0
> Remount the FS to see if accounting changes
> root 0 0 0
> nobody 0 0 0
> -fsgqa 3072 0 0
> +fsgqa 12288 0 0
> Chown one of the files
> root 0 0 0
> -nobody 1024 0 0
> -fsgqa 2048 0 0
> +nobody 4096 0 0
> +fsgqa 8192 0 0
> diff --git a/tests/generic/328 b/tests/generic/328
> index 0c8e1986..25e1f2a0 100755
> --- a/tests/generic/328
> +++ b/tests/generic/328
> @@ -32,7 +32,7 @@ quotaon $SCRATCH_MNT 2> /dev/null
> testdir=$SCRATCH_MNT/test-$seq
> mkdir $testdir
>
> -sz=1048576
> +sz=4194304
> echo "Create the original files"
> $XFS_IO_PROG -f -c "pwrite -S 0x61 -b $sz 0 $sz" $testdir/file1 >> $seqres.full
> chown $qa_user $testdir/file1
> diff --git a/tests/generic/328.out b/tests/generic/328.out
> index b7fe9f8c..0167637e 100644
> --- a/tests/generic/328.out
> +++ b/tests/generic/328.out
> @@ -2,24 +2,26 @@ QA output created by 328
> Format and mount
> Create the original files
> root 0 0 0
> -fsgqa 3072 0 0
> +fsgqa 12288 0 0
> Set hard quota to prevent rewrite
> root 0 0 0
> -fsgqa 3072 0 1024
> +fsgqa 12288 0 1024
> Try to dio write the whole file
> pwrite: Disk quota exceeded
> root 0 0 0
> -fsgqa 3072 0 1024
> +fsgqa 12288 0 1024
> Try to write the whole file
> pwrite: Disk quota exceeded
> root 0 0 0
> -fsgqa 3072 0 1024
> +fsgqa 12288 0 1024
> Set hard quota to allow rewrite
> root 0 0 0
> -fsgqa 3072 0 8192
> +fsgqa 12288 0 8192
> Try to dio write the whole file
> +pwrite: Disk quota exceeded
> root 0 0 0
> -fsgqa 3072 0 8192
> +fsgqa 12288 0 8192
> Try to write the whole file
> +pwrite: Disk quota exceeded
> root 0 0 0
> -fsgqa 3072 0 8192
> +fsgqa 12288 0 8192
> --
> 2.44.1
>
>
next prev parent reply other threads:[~2024-10-24 18:17 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-24 11:23 [PATCH 0/2] fix generic quota tests for XFS with 32k and 64k block sizes Pankaj Raghav
2024-10-24 11:23 ` [PATCH 1/2] generic/219: use filesystem blocksize while calculating the file size Pankaj Raghav
2024-10-24 18:19 ` Darrick J. Wong
2024-10-25 1:12 ` Pankaj Raghav (Samsung)
2024-10-25 5:28 ` Darrick J. Wong
2024-10-24 11:23 ` [PATCH 2/2] generic: increase file size to match CoW delayed allocation for XFS 64k bs Pankaj Raghav
2024-10-24 18:17 ` Darrick J. Wong [this message]
2024-10-25 3:23 ` Pankaj Raghav (Samsung)
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=20241024181709.GF2386201@frogsfrogsfrogs \
--to=djwong@kernel.org \
--cc=david@fromorbit.com \
--cc=fstests@vger.kernel.org \
--cc=gost.dev@samsung.com \
--cc=kernel@pankajraghav.com \
--cc=linux-xfs@vger.kernel.org \
--cc=mcgrof@kernel.org \
--cc=p.raghav@samsung.com \
--cc=zlang@redhat.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