From: "Darrick J. Wong" <djwong@kernel.org>
To: Christoph Hellwig <hch@lst.de>
Cc: zlang@kernel.org, dchinner@redhat.com, linux-xfs@vger.kernel.org,
fstests@vger.kernel.org
Subject: Re: [PATCH] xfs: remove the post-EOF prealloc tests from the auto and quick groups
Date: Wed, 23 Oct 2024 10:23:51 -0700 [thread overview]
Message-ID: <20241023172351.GG21853@frogsfrogsfrogs> (raw)
In-Reply-To: <20241023103930.432190-1-hch@lst.de>
On Wed, Oct 23, 2024 at 12:39:30PM +0200, Christoph Hellwig wrote:
> These fail for various non-default configs like DAX, alwayscow and
> small block sizes.
Shouldn't we selectively _notrun these tests for configurations where
speculative/delayed allocations don't work?
I had started on a helper to try to detect the situations where the
tests cannot ever pass, but never quite finished it:
diff --git a/common/xfs b/common/xfs
index 557017c716e32c..5cb2c102e2c04f 100644
--- a/common/xfs
+++ b/common/xfs
@@ -2238,3 +2238,34 @@ _scratch_xfs_scrubbed() {
$XFS_SCRUBBED_PROG "${scrubbed_args[@]}" "$@" $SCRATCH_MNT
}
+
+# Will this filesystem create speculative post-EOF preallocations for a file?
+_require_speculative_prealloc()
+{
+ local file="$1"
+ local tries
+ local overage
+
+ # Now that we have background garbage collection processes that can be
+ # triggered by low space/quota conditions, it's possible that we won't
+ # succeed in creating a speculative preallocation on the first try.
+ for ((tries = 0; tries < 5; tries++)); do
+ rm -f $file
+
+ # a few file extending open-write-close cycles should be enough
+ # to trigger the fs to retain preallocation. write 256k in 32k
+ # intervals to be sure
+ for i in $(seq 0 32768 262144); do
+ $XFS_IO_PROG -f -c "pwrite $i 32k" $file >> $seqres.full
+
+ # Do we have more blocks allocated than what we've
+ # written so far?
+ overage="$(stat -c '%b * %B - %s' $file | bc)"
+ test "$overage" -gt 0 && return 0
+ done
+ done
+
+ _notrun "Warning: No speculative preallocation for $file after " \
+ "$tries iterations." \
+ "Check use of the allocsize= mount option."
+}
--D
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> tests/xfs/629 | 2 +-
> tests/xfs/630 | 2 +-
> tests/xfs/631 | 2 +-
> tests/xfs/632 | 2 +-
> 4 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/tests/xfs/629 b/tests/xfs/629
> index 58beedc03a8b..e2f5af085b5f 100755
> --- a/tests/xfs/629
> +++ b/tests/xfs/629
> @@ -8,7 +8,7 @@
> #
>
> . ./common/preamble
> -_begin_fstest auto quick prealloc rw
> +_begin_fstest prealloc rw
>
> . ./common/filter
>
> diff --git a/tests/xfs/630 b/tests/xfs/630
> index 939d8a4ac37f..df7ca60111d6 100755
> --- a/tests/xfs/630
> +++ b/tests/xfs/630
> @@ -8,7 +8,7 @@
> #
>
> . ./common/preamble
> -_begin_fstest auto quick prealloc rw
> +_begin_fstest prealloc rw
>
> . ./common/filter
>
> diff --git a/tests/xfs/631 b/tests/xfs/631
> index 55a74297918a..1e50bc033f7c 100755
> --- a/tests/xfs/631
> +++ b/tests/xfs/631
> @@ -8,7 +8,7 @@
> #
>
> . ./common/preamble
> -_begin_fstest auto quick prealloc rw
> +_begin_fstest prealloc rw
>
> . ./common/filter
>
> diff --git a/tests/xfs/632 b/tests/xfs/632
> index 61041d45a706..3b1c61fdc129 100755
> --- a/tests/xfs/632
> +++ b/tests/xfs/632
> @@ -9,7 +9,7 @@
> #
>
> . ./common/preamble
> -_begin_fstest auto prealloc rw
> +_begin_fstest prealloc rw
>
> . ./common/filter
>
> --
> 2.45.2
>
>
next prev parent reply other threads:[~2024-10-23 17:23 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-23 10:39 [PATCH] xfs: remove the post-EOF prealloc tests from the auto and quick groups Christoph Hellwig
2024-10-23 17:23 ` Darrick J. Wong [this message]
2024-10-23 21:40 ` Dave Chinner
2024-10-24 6:24 ` Christoph Hellwig
2024-10-24 6:25 ` Christoph Hellwig
2024-10-24 13:24 ` Zorro Lang
2025-03-12 6:45 ` Christoph Hellwig
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=20241023172351.GG21853@frogsfrogsfrogs \
--to=djwong@kernel.org \
--cc=dchinner@redhat.com \
--cc=fstests@vger.kernel.org \
--cc=hch@lst.de \
--cc=linux-xfs@vger.kernel.org \
--cc=zlang@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.