From: "Darrick J. Wong" <djwong@kernel.org>
To: Christoph Hellwig <hch@lst.de>
Cc: Zorro Lang <zlang@kernel.org>,
fstests@vger.kernel.org, linux-xfs@vger.kernel.org
Subject: Re: [PATCH 3/3] formalize and fix disabling the RT subvolume
Date: Thu, 9 Jul 2026 23:10:49 -0700 [thread overview]
Message-ID: <20260710061049.GG15210@frogsfrogsfrogs> (raw)
In-Reply-To: <20260710052747.1841555-4-hch@lst.de>
On Fri, Jul 10, 2026 at 07:27:35AM +0200, Christoph Hellwig wrote:
> Various test unset SCRATCH_RTDEV to avoid dealing with metadata
> allocations for the RT subvolume in the main device or differences
> in RT subvolume behavior. Besides being rather ad-hoc, this unset
> also fails to disable the internal RT zoned subvolume.
>
> Add a _disable_scratch_realtime helper that not only unsets
> SCRATCH_RTDEV, but also disables the zoned allocator and with
> that the internal RT subvolume.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Looks good to me now! :)
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> ---
> common/filestreams | 2 +-
> common/rc | 9 +++++++++
> tests/generic/250 | 2 +-
> tests/generic/252 | 2 +-
> tests/generic/441 | 2 +-
> tests/generic/484 | 2 +-
> tests/generic/487 | 2 +-
> tests/xfs/076 | 2 +-
> tests/xfs/189 | 2 +-
> tests/xfs/205 | 2 +-
> tests/xfs/306 | 2 +-
> tests/xfs/444 | 2 +-
> tests/xfs/445 | 2 +-
> 13 files changed, 21 insertions(+), 12 deletions(-)
>
> diff --git a/common/filestreams b/common/filestreams
> index 2d83a3661b01..c5421ef3ff2b 100644
> --- a/common/filestreams
> +++ b/common/filestreams
> @@ -84,7 +84,7 @@ _test_streams() {
> # Disable the scratch rt device to avoid test failures relating to the
> # rt bitmap consuming free space in our small data device and throwing
> # off the filestreams allocator.
> - unset SCRATCH_RTDEV
> + _disable_scratch_realtime
>
> # Skip these tests on zoned file systems as filestreams don't work
> # with the zoned allocator, and the operation below would force it into
> diff --git a/common/rc b/common/rc
> index 4947255479ca..d8d4d5292f8c 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -2435,6 +2435,15 @@ _require_no_realtime()
> _notrun "Test not compatible with realtime subvolumes, skipped this test"
> }
>
> +# Disable usage of internal or external scratch devices
> +_disable_scratch_realtime()
> +{
> + unset SCRATCH_RTDEV
> + if [ "$FSTYP" = "xfs" ]; then
> + MKFS_OPTIONS="${MKFS_OPTIONS//-r zoned=1}"
> + fi
> +}
> +
> # this test requires that a specified command (executable) exists
> # $1 - command, $2 - name for error message
> #
> diff --git a/tests/generic/250 b/tests/generic/250
> index 605d7c8ade3d..32326114798c 100755
> --- a/tests/generic/250
> +++ b/tests/generic/250
> @@ -29,7 +29,7 @@ _require_odirect
>
> # Disable the scratch rt device to avoid test failures relating to the rt
> # bitmap consuming all the free space in our small data device.
> -unset SCRATCH_RTDEV
> +_disable_scratch_realtime
>
> fssize=$((196 * 1048576))
> echo "Format and mount"
> diff --git a/tests/generic/252 b/tests/generic/252
> index 2ad0524c2037..2e462b61fce4 100755
> --- a/tests/generic/252
> +++ b/tests/generic/252
> @@ -30,7 +30,7 @@ AIO_TEST="$here/src/aio-dio-regress/aiocp"
>
> # Disable the scratch rt device to avoid test failures relating to the rt
> # bitmap consuming all the free space in our small data device.
> -unset SCRATCH_RTDEV
> +_disable_scratch_realtime
>
> fssize=$((196 * 1048576))
> echo "Format and mount"
> diff --git a/tests/generic/441 b/tests/generic/441
> index cc370bea5052..c3a096926eaf 100755
> --- a/tests/generic/441
> +++ b/tests/generic/441
> @@ -47,7 +47,7 @@ _require_test_program dmerror
>
> # Disable the scratch rt device to avoid test failures relating to the rt
> # bitmap consuming all the free space in our small data device.
> -unset SCRATCH_RTDEV
> +_disable_scratch_realtime
>
> echo "Format and mount"
> _scratch_mkfs > $seqres.full 2>&1
> diff --git a/tests/generic/484 b/tests/generic/484
> index 0455efcb6000..e2fea8c6b18d 100755
> --- a/tests/generic/484
> +++ b/tests/generic/484
> @@ -35,7 +35,7 @@ _require_xfs_io_command "syncfs"
>
> # Disable the scratch rt device to avoid test failures relating to the rt
> # bitmap consuming all the free space in our small data device.
> -unset SCRATCH_RTDEV
> +_disable_scratch_realtime
>
> echo "Format and mount"
> _scratch_mkfs > $seqres.full 2>&1
> diff --git a/tests/generic/487 b/tests/generic/487
> index 364f7eb4c032..cc6c8f0e63d9 100755
> --- a/tests/generic/487
> +++ b/tests/generic/487
> @@ -40,7 +40,7 @@ _require_dm_target error
>
> # Disable the scratch rt device to avoid test failures relating to the rt
> # bitmap consuming all the free space in our small data device.
> -unset SCRATCH_RTDEV
> +_disable_scratch_realtime
>
> echo "Format and mount"
> _scratch_mkfs > $seqres.full 2>&1
> diff --git a/tests/xfs/076 b/tests/xfs/076
> index 2ea6459b0dbe..103ad7509e0f 100755
> --- a/tests/xfs/076
> +++ b/tests/xfs/076
> @@ -66,7 +66,7 @@ _require_xfs_sparse_inodes
>
> # Disable the scratch rt device to avoid test failures relating to the rt
> # bitmap consuming all the free space in our small data device.
> -unset SCRATCH_RTDEV
> +_disable_scratch_realtime
>
> _scratch_mkfs "-d size=96m -m crc=1 -i sparse" | tee -a $seqres.full | \
> _filter_mkfs > /dev/null 2> $tmp.mkfs
> diff --git a/tests/xfs/189 b/tests/xfs/189
> index 1770023760fd..aa9712afac35 100755
> --- a/tests/xfs/189
> +++ b/tests/xfs/189
> @@ -250,7 +250,7 @@ _require_no_realtime
> _require_scratch
> _require_noattr2
>
> -unset SCRATCH_RTDEV
> +_disable_scratch_realtime
> unset SCRATCH_LOGDEV
>
> _scratch_mkfs_xfs | _filter_mkfs 2>/dev/null
> diff --git a/tests/xfs/205 b/tests/xfs/205
> index 73d51d8d602f..7d8c0e5e33dc 100755
> --- a/tests/xfs/205
> +++ b/tests/xfs/205
> @@ -18,7 +18,7 @@ _require_scratch_nocheck
>
> # Disable the scratch rt device to avoid test failures relating to the rt
> # bitmap consuming all the free space in our small data device.
> -unset SCRATCH_RTDEV
> +_disable_scratch_realtime
>
> fsblksz=1024
> _scratch_mkfs_xfs -d size=$((32768*fsblksz)) -b size=$fsblksz >> $seqres.full 2>&1
> diff --git a/tests/xfs/306 b/tests/xfs/306
> index d48b753632d5..60c2b486f671 100755
> --- a/tests/xfs/306
> +++ b/tests/xfs/306
> @@ -26,7 +26,7 @@ _require_test_program "punch-alternating"
>
> # Disable the scratch rt device to avoid test failures relating to the rt
> # bitmap consuming all the free space in our small data device.
> -unset SCRATCH_RTDEV
> +_disable_scratch_realtime
>
> # Create a small fs with a large directory block size. We want to fill up the fs
> # quickly and then create multi-fsb dirblocks over fragmented free space.
> diff --git a/tests/xfs/444 b/tests/xfs/444
> index 13c9de528ec8..949c5711e2c8 100755
> --- a/tests/xfs/444
> +++ b/tests/xfs/444
> @@ -31,7 +31,7 @@ _require_scratch_xfs_crc
> # Disable the scratch rt device to avoid test failures relating to the rt
> # bitmap consuming free space in our small data device and throwing off the
> # filestreams allocator.
> -unset SCRATCH_RTDEV
> +_disable_scratch_realtime
>
> mount_loop() {
> if ! _try_scratch_mount >> $seqres.full 2>&1; then
> diff --git a/tests/xfs/445 b/tests/xfs/445
> index 0ea85ad018d6..2e9b6ca1be34 100755
> --- a/tests/xfs/445
> +++ b/tests/xfs/445
> @@ -42,7 +42,7 @@ _check_filestreams_support || _notrun "filestreams not available"
> # Disable the scratch rt device to avoid test failures relating to the rt
> # bitmap consuming free space in our small data device and throwing off the
> # filestreams allocator.
> -unset SCRATCH_RTDEV
> +_disable_scratch_realtime
>
> # use small AGs for frequent stream switching
> _scratch_mkfs_xfs -d agsize=20m,size=2g >> $seqres.full 2>&1
> --
> 2.53.0
>
>
prev parent reply other threads:[~2026-07-10 6:10 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-10 5:27 scratch rtdev handling improvements Christoph Hellwig
2026-07-10 5:27 ` [PATCH 1/3] xfs/656: rearrange directio pread/pwrite for zoned filesystems Christoph Hellwig
2026-07-10 5:27 ` [PATCH 2/3] xfs/65[56]: don't unset SCRATCH_RTDEV here Christoph Hellwig
2026-07-10 5:27 ` [PATCH 3/3] formalize and fix disabling the RT subvolume Christoph Hellwig
2026-07-10 6:10 ` Darrick J. Wong [this message]
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=20260710061049.GG15210@frogsfrogsfrogs \
--to=djwong@kernel.org \
--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.