* initial xfstests support for zoned XFS
@ 2025-03-12 6:44 Christoph Hellwig
2025-03-12 6:44 ` [PATCH 01/17] xfs/177: force a small file system size Christoph Hellwig
` (17 more replies)
0 siblings, 18 replies; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:44 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
Hi all,
this series adds initial support for the zoned XFS code merge into
the xfs tree to xfstests. It does not include several newly developed
test cases which will be sent separately.
^ permalink raw reply [flat|nested] 48+ messages in thread
* [PATCH 01/17] xfs/177: force a small file system size
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
@ 2025-03-12 6:44 ` Christoph Hellwig
2025-03-12 19:56 ` Darrick J. Wong
2025-03-12 6:44 ` [PATCH 02/17] xfs/419: use _scratch_mkfs_xfs Christoph Hellwig
` (16 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:44 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
This test make assumptions about the number of metadata inodes. When
using small realtime group size (e.g. the customary 256MB for SMR
hard drives) this assumption gets violated even with modest file system
size. Force a small file system size to side-step this issue.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
tests/xfs/177 | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tests/xfs/177 b/tests/xfs/177
index 82b3ca264140..8d23f66d51b7 100755
--- a/tests/xfs/177
+++ b/tests/xfs/177
@@ -77,7 +77,9 @@ delay_centisecs="$(cat "$xfs_centisecs_file")"
sleep_seconds=$(( ( (99 + (delay_centisecs / 6) ) / 100) + 1))
echo "Will sleep $sleep_seconds seconds to expire inodes" >> $seqres.full
-_scratch_mkfs >> $seqres.full
+# Force a relatively small file system size to keep the number of rtgroups
+# and thus metadata inodes low
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full
_scratch_mount >> $seqres.full
junkdir=$SCRATCH_MNT/$seq.junk
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 02/17] xfs/419: use _scratch_mkfs_xfs
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
2025-03-12 6:44 ` [PATCH 01/17] xfs/177: force a small file system size Christoph Hellwig
@ 2025-03-12 6:44 ` Christoph Hellwig
2025-03-12 20:05 ` Darrick J. Wong
2025-03-12 6:44 ` [PATCH 03/17] xfs/540: " Christoph Hellwig
` (15 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:44 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
So that the test is _notrun instead of failed for conflicting options.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
tests/xfs/419 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/xfs/419 b/tests/xfs/419
index b9cd21faf443..5e122a0b8763 100755
--- a/tests/xfs/419
+++ b/tests/xfs/419
@@ -39,7 +39,7 @@ $MKFS_XFS_PROG -d rtinherit=0 "${mkfs_args[@]}" &>> $seqres.full || \
echo "mkfs should succeed with uninheritable rtext-unaligned extent hint"
# Move on to checking the kernel's behavior
-_scratch_mkfs -r extsize=7b | _filter_mkfs >> $seqres.full 2> $tmp.mkfs
+_scratch_mkfs_xfs -r extsize=7b | _filter_mkfs >> $seqres.full 2> $tmp.mkfs
cat $tmp.mkfs >> $seqres.full
. $tmp.mkfs
_scratch_mount
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 03/17] xfs/540: use _scratch_mkfs_xfs
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
2025-03-12 6:44 ` [PATCH 01/17] xfs/177: force a small file system size Christoph Hellwig
2025-03-12 6:44 ` [PATCH 02/17] xfs/419: use _scratch_mkfs_xfs Christoph Hellwig
@ 2025-03-12 6:44 ` Christoph Hellwig
2025-03-12 20:07 ` Darrick J. Wong
2025-03-12 6:44 ` [PATCH 04/17] common: extend the zoned device checks in _require_dm_target Christoph Hellwig
` (14 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:44 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
So that the test is _notrun instead of failed for conflicting options.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
tests/xfs/540 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/xfs/540 b/tests/xfs/540
index 3acb20951a56..9c0fa3c6bb10 100755
--- a/tests/xfs/540
+++ b/tests/xfs/540
@@ -26,7 +26,7 @@ _begin_fstest auto repair fuzzers
_require_scratch
echo "Format and mount"
-_scratch_mkfs -r extsize=7b | _filter_mkfs > $seqres.full 2>$tmp.mkfs
+_scratch_mkfs_xfs -r extsize=7b | _filter_mkfs > $seqres.full 2>$tmp.mkfs
cat $tmp.mkfs >> $seqres.full
. $tmp.mkfs
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 04/17] common: extend the zoned device checks in _require_dm_target
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (2 preceding siblings ...)
2025-03-12 6:44 ` [PATCH 03/17] xfs/540: " Christoph Hellwig
@ 2025-03-12 6:44 ` Christoph Hellwig
2025-03-12 20:09 ` Darrick J. Wong
2025-03-12 6:44 ` [PATCH 05/17] common: allow _require_non_zoned_device without an argument Christoph Hellwig
` (13 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:44 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
Also check for zoned log and rt devices in _require_dm_target
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/rc | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/common/rc b/common/rc
index dcdfa86e43b1..753e86f91a04 100644
--- a/common/rc
+++ b/common/rc
@@ -2501,6 +2501,12 @@ _require_dm_target()
case $target in
snapshot|thin-pool)
_require_non_zoned_device ${SCRATCH_DEV}
+ if [ "$FSTYP" = "xfs" ] && [ -b "$SCRATCH_RTDEV" ]; then
+ _require_non_zoned_device ${SCRATCH_RTDEV}
+ fi
+ if [ "$FSTYP" = "xfs" ] && [ -b "$SCRATCH_LOGDEV" ]; then
+ _require_non_zoned_device ${SCRATCH_LOGDEV}
+ fi
;;
esac
}
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 05/17] common: allow _require_non_zoned_device without an argument
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (3 preceding siblings ...)
2025-03-12 6:44 ` [PATCH 04/17] common: extend the zoned device checks in _require_dm_target Christoph Hellwig
@ 2025-03-12 6:44 ` Christoph Hellwig
2025-03-12 20:10 ` Darrick J. Wong
2025-03-12 6:44 ` [PATCH 06/17] common: support internal RT device in _require_realtime Christoph Hellwig
` (12 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:44 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
That way it can also be used for RT and log devices.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/rc | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/common/rc b/common/rc
index 753e86f91a04..b0131526380a 100644
--- a/common/rc
+++ b/common/rc
@@ -2545,8 +2545,7 @@ _require_non_zoned_device()
{
local target=$1
if [ -z $target ]; then
- echo "Usage: _require_non_zoned_device <device>"
- exit 1
+ return
fi
local type=`_zone_type ${target}`
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 06/17] common: support internal RT device in _require_realtime
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (4 preceding siblings ...)
2025-03-12 6:44 ` [PATCH 05/17] common: allow _require_non_zoned_device without an argument Christoph Hellwig
@ 2025-03-12 6:44 ` Christoph Hellwig
2025-03-12 20:12 ` Darrick J. Wong
2025-03-12 6:44 ` [PATCH 07/17] common: support internal RT devices in scratch_mkfs_sized Christoph Hellwig
` (11 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:44 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
If SCRATCH_DEV is a zoned device it implies an internal zoned RT device
and should not be skipped in _require_realtime.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/rc | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/common/rc b/common/rc
index b0131526380a..00a315db0fe7 100644
--- a/common/rc
+++ b/common/rc
@@ -2354,10 +2354,15 @@ _require_no_large_scratch_dev()
#
_require_realtime()
{
- [ "$USE_EXTERNAL" = yes ] || \
- _notrun "External volumes not in use, skipped this test"
- [ "$SCRATCH_RTDEV" = "" ] && \
- _notrun "Realtime device required, skipped this test"
+ local zone_type=`_zone_type $SCRATCH_DEV`
+ if [ "${zone_type}" = "none" ]; then
+ if [ "$USE_EXTERNAL" != "yes" ]; then
+ _notrun "External volumes not in use, skipped this test"
+ fi
+ if [ "$SCRATCH_RTDEV" = "" ]; then
+ _notrun "Realtime device required, skipped this test"
+ fi
+ fi
}
# This test requires that a realtime subvolume is not in use
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 07/17] common: support internal RT devices in scratch_mkfs_sized
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (5 preceding siblings ...)
2025-03-12 6:44 ` [PATCH 06/17] common: support internal RT device in _require_realtime Christoph Hellwig
@ 2025-03-12 6:44 ` Christoph Hellwig
2025-03-12 20:15 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 08/17] xfs: check for zoned-specific errors in _try_scratch_mkfs_xfs Christoph Hellwig
` (10 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:44 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/rc | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/common/rc b/common/rc
index 00a315db0fe7..5e56d90e5931 100644
--- a/common/rc
+++ b/common/rc
@@ -1268,6 +1268,7 @@ _try_scratch_mkfs_sized()
case $FSTYP in
xfs)
local rt_ops
+ local zone_type=`_zone_type $SCRATCH_DEV`
if [ -b "$SCRATCH_RTDEV" ]; then
local rtdevsize=`blockdev --getsize64 $SCRATCH_RTDEV`
@@ -1275,6 +1276,12 @@ _try_scratch_mkfs_sized()
_notrun "Scratch rt device too small"
fi
rt_ops="-r size=$fssize"
+ elif [ "${zone_type}" != "none" ] ||
+ [[ $MKFS_OPTIONS =~ "zoned=1" ]]; then
+ # Maybe also add back the size check, but it'll require
+ # somewhat complicated arithmetics for the size of the
+ # conventional zones
+ rt_ops="-r size=$fssize"
fi
# don't override MKFS_OPTIONS that set a block size.
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 08/17] xfs: check for zoned-specific errors in _try_scratch_mkfs_xfs
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (6 preceding siblings ...)
2025-03-12 6:44 ` [PATCH 07/17] common: support internal RT devices in scratch_mkfs_sized Christoph Hellwig
@ 2025-03-12 6:45 ` Christoph Hellwig
2025-03-12 20:17 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 09/17] common: notrun in mkfs_dev for too small zoned file systems Christoph Hellwig
` (9 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:45 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
Check for a few errors issued for unsupported zoned configurations in
_try_scratch_mkfs_xfs so that the test is not run instead of failed.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/xfs | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/common/xfs b/common/xfs
index 93260fdb4599..807454d3e03b 100644
--- a/common/xfs
+++ b/common/xfs
@@ -160,6 +160,11 @@ _try_scratch_mkfs_xfs()
grep -q crc=0 $tmp.mkfsstd && _force_xfsv4_mount_options
+ grep -q "zoned file systems do not support" $tmp.mkfserr && \
+ _notrun "Not supported on zoned file systems"
+ grep -q "must be greater than the minimum" $tmp.mkfserr && \
+ _notrun "Zone count too small"
+
if [ $mkfs_status -eq 0 -a "$LARGE_SCRATCH_DEV" = yes ]; then
# manually parse the mkfs output to get the fs size in bytes
local fs_size
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 09/17] common: notrun in mkfs_dev for too small zoned file systems
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (7 preceding siblings ...)
2025-03-12 6:45 ` [PATCH 08/17] xfs: check for zoned-specific errors in _try_scratch_mkfs_xfs Christoph Hellwig
@ 2025-03-12 6:45 ` Christoph Hellwig
2025-03-12 20:18 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 10/17] xfs: add helpers to require zoned/non-zoned " Christoph Hellwig
` (8 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:45 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
Similar to the regular scratch_mkfs, skip the test if the file system
would be so small that there's not enough zones.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/rc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/common/rc b/common/rc
index 5e56d90e5931..e664f3b81a6b 100644
--- a/common/rc
+++ b/common/rc
@@ -910,6 +910,10 @@ _mkfs_dev()
{
local tmp=`mktemp -u`
if ! _try_mkfs_dev "$@" 2>$tmp.mkfserr 1>$tmp.mkfsstd; then
+ grep -q "must be greater than the minimum" $tmp.mkfserr && \
+ _notrun "Zone count too small"
+ grep -q "too small for zoned allocator" $tmp.mkfserr && \
+ _notrun "Zone count too small"
# output stored mkfs output
cat $tmp.mkfserr >&2
cat $tmp.mkfsstd
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 10/17] xfs: add helpers to require zoned/non-zoned file systems
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (8 preceding siblings ...)
2025-03-12 6:45 ` [PATCH 09/17] common: notrun in mkfs_dev for too small zoned file systems Christoph Hellwig
@ 2025-03-12 6:45 ` Christoph Hellwig
2025-03-12 20:19 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 11/17] xfs: handle zoned file systems in _scratch_xfs_force_no_metadir Christoph Hellwig
` (7 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:45 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
Looking at the max_open_zones sysfs attribute to see if a file system is
zoned or not, as various tests depend on that.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/xfs | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/common/xfs b/common/xfs
index 807454d3e03b..86953b7310d9 100644
--- a/common/xfs
+++ b/common/xfs
@@ -2076,6 +2076,33 @@ _scratch_xfs_force_no_metadir()
fi
}
+# do not run on zoned file systems
+_require_xfs_scratch_non_zoned()
+{
+ if _has_fs_sysfs_attr $SCRATCH_DEV "zoned/max_open_zones"; then
+ _notrun "Not supported on zoned file systems"
+ fi
+}
+
+# only run on zoned file systems
+_require_xfs_scratch_zoned()
+{
+ local attr="zoned/max_open_zones"
+ local min_open_zones=$1
+
+ if ! _has_fs_sysfs_attr $SCRATCH_DEV $attr; then
+ _notrun "Requires zoned file system"
+ fi
+
+ if [ -n "${min_open_zones}" ]; then
+ local has_open_zones=`_get_fs_sysfs_attr $SCRATCH_DEV $attr`
+
+ if [ "${min_open_zones}" -gt "${has_open_zones}" ]; then
+ _notrun "Requires at least ${min_open_zones} open zones"
+ fi
+ fi
+}
+
# Decide if a mount filesystem has metadata directory trees.
_xfs_mount_has_metadir() {
local mount="$1"
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 11/17] xfs: handle zoned file systems in _scratch_xfs_force_no_metadir
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (9 preceding siblings ...)
2025-03-12 6:45 ` [PATCH 10/17] xfs: add helpers to require zoned/non-zoned " Christoph Hellwig
@ 2025-03-12 6:45 ` Christoph Hellwig
2025-03-12 20:23 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 12/17] xfs: no quota support with internal rtdev Christoph Hellwig
` (6 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:45 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
Zoned file systems required the metadir feature. If the tests are run
on a conventional block device as the RT device, we can simply remove
the zoned flag an run the test, but if the file systems sits on a zoned
block device there is no way to run a test that wants a non-metadir
file system.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/xfs | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/common/xfs b/common/xfs
index 86953b7310d9..a18b721eb5cf 100644
--- a/common/xfs
+++ b/common/xfs
@@ -2054,6 +2054,12 @@ _scratch_xfs_find_metafile()
# Force metadata directories off.
_scratch_xfs_force_no_metadir()
{
+ _require_non_zoned_device $SCRATCH_DEV
+ # metadir is required for when the rt device is on a zoned device
+ if [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ]; then
+ _require_non_zoned_device $SCRATCH_RTDEV
+ fi
+
# Remove any mkfs-time quota options because those are only supported
# with metadir=1
for opt in uquota gquota pquota; do
@@ -2074,6 +2080,11 @@ _scratch_xfs_force_no_metadir()
if grep -q 'metadir=' $MKFS_XFS_PROG; then
MKFS_OPTIONS="-m metadir=0 $MKFS_OPTIONS"
fi
+
+ # zoned requires metadir
+ if grep -q 'zoned=' $MKFS_XFS_PROG; then
+ MKFS_OPTIONS="-m zoned=0 $MKFS_OPTIONS"
+ fi
}
# do not run on zoned file systems
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 12/17] xfs: no quota support with internal rtdev
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (10 preceding siblings ...)
2025-03-12 6:45 ` [PATCH 11/17] xfs: handle zoned file systems in _scratch_xfs_force_no_metadir Christoph Hellwig
@ 2025-03-12 6:45 ` Christoph Hellwig
2025-03-12 20:25 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 13/17] xfs: xfs_copy doesn't like RT sections Christoph Hellwig
` (5 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:45 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
Same as regular zoned, but the previous check didn't work.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/xfs | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/common/xfs b/common/xfs
index a18b721eb5cf..3f9119d5ef65 100644
--- a/common/xfs
+++ b/common/xfs
@@ -2210,7 +2210,10 @@ _xfs_scratch_supports_rtquota() {
# can check that quickly, and we make the bold assumption that the same will
# apply to any scratch fs that might be created.
_require_xfs_rtquota_if_rtdev() {
- test "$USE_EXTERNAL" = "yes" || return
+ if [ "$USE_EXTERNAL" != "yes" ]; then
+ xfs_info "$TEST_DIR" | grep -q 'realtime.*internal' &&
+ _notrun "Quota on internal rt device not supported"
+ fi
if [ -n "$TEST_RTDEV$SCRATCH_RTDEV" ]; then
_xfs_kmod_supports_rtquota || \
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 13/17] xfs: xfs_copy doesn't like RT sections
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (11 preceding siblings ...)
2025-03-12 6:45 ` [PATCH 12/17] xfs: no quota support with internal rtdev Christoph Hellwig
@ 2025-03-12 6:45 ` Christoph Hellwig
2025-03-12 20:25 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 14/17] xfs: skip filestreams tests on internal RT devices Christoph Hellwig
` (4 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:45 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
internal or external..
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/xfs | 3 +++
1 file changed, 3 insertions(+)
diff --git a/common/xfs b/common/xfs
index 3f9119d5ef65..7756c82cf0e5 100644
--- a/common/xfs
+++ b/common/xfs
@@ -1561,6 +1561,9 @@ _require_xfs_copy()
[ "$USE_EXTERNAL" = yes ] && \
_notrun "Cannot xfs_copy with external devices"
+ xfs_info "$TEST_DIR" | grep -q 'realtime.*internal' &&
+ _notrun "Cannot xfs_copy with internal rt device"
+
# xfs_copy on v5 filesystems do not require the "-d" option if xfs_db
# can change the UUID on v5 filesystems
touch /tmp/$$.img
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 14/17] xfs: skip filestreams tests on internal RT devices
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (12 preceding siblings ...)
2025-03-12 6:45 ` [PATCH 13/17] xfs: xfs_copy doesn't like RT sections Christoph Hellwig
@ 2025-03-12 6:45 ` Christoph Hellwig
2025-03-12 20:26 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 15/17] xfs: skip various tests on zoned devices Christoph Hellwig
` (3 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:45 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
The filestreams tests using _test_streams force a run on the data
section, but for internal RT zoned devices the data section can be tiny
and might not provide enough space. Skip these tests as they aren't
really useful when testing a zoned config anyway.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/filestreams | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/common/filestreams b/common/filestreams
index 00b28066873f..bb8459405b3e 100644
--- a/common/filestreams
+++ b/common/filestreams
@@ -108,6 +108,11 @@ _test_streams() {
_scratch_mount
fi
+ # Skip these tests on zoned file systems as filestreams don't work
+ # with the zoned allocator, and the above would force it into the
+ # tiny data section only used for metadata anyway.
+ _require_xfs_scratch_non_zoned
+
cd $SCRATCH_MNT
# start $stream_count streams
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 15/17] xfs: skip various tests on zoned devices
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (13 preceding siblings ...)
2025-03-12 6:45 ` [PATCH 14/17] xfs: skip filestreams tests on internal RT devices Christoph Hellwig
@ 2025-03-12 6:45 ` Christoph Hellwig
2025-03-12 20:27 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 16/17] xfs: skip various tests when using the zoned allocator Christoph Hellwig
` (2 subsequent siblings)
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:45 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
Various tests don't work with underlying zoned devices because either the
device mapper maps don't align to zone boundaries, or in one case the test
creates an ext2 file system that doesn't support zoned devices.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
tests/xfs/049 | 2 ++
tests/xfs/311 | 3 +++
tests/xfs/438 | 7 +++++++
3 files changed, 12 insertions(+)
diff --git a/tests/xfs/049 b/tests/xfs/049
index cdcddf76498c..07feb58c9ad6 100755
--- a/tests/xfs/049
+++ b/tests/xfs/049
@@ -40,6 +40,8 @@ _require_scratch_nocheck
_require_no_large_scratch_dev
_require_loop
_require_extra_fs ext2
+# this test actually runs ext2 on the scratch device
+_require_non_zoned_device $SCRATCH_DEV
echo "(dev=$SCRATCH_DEV, mount=$SCRATCH_MNT)" >> $seqres.full
echo "" >> $seqres.full
diff --git a/tests/xfs/311 b/tests/xfs/311
index 8b806fc29eb1..e8fc547cc4b4 100755
--- a/tests/xfs/311
+++ b/tests/xfs/311
@@ -30,6 +30,9 @@ _cleanup()
_require_scratch
_require_dm_target delay
+# The dm-delay map added by this test doesn't work on zoned devices
+_require_non_zoned_device $SCRATCH_DEV
+
echo "Silence is golden."
_scratch_mkfs_xfs >> $seqres.full 2>&1
diff --git a/tests/xfs/438 b/tests/xfs/438
index 6d1988c8b9b8..d436b583f9d1 100755
--- a/tests/xfs/438
+++ b/tests/xfs/438
@@ -96,6 +96,13 @@ _require_user
_require_xfs_quota
_require_freeze
+#
+# The dm-flakey map added by this test doesn't work on zoned devices
+# because table sizes need to be aligned to the zone size.
+#
+_require_non_zoned_device $SCRATCH_DEV
+_require_non_zoned_device $SCRATCH_RTDEV
+
echo "Silence is golden"
_scratch_mkfs > $seqres.full 2>&1
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 16/17] xfs: skip various tests when using the zoned allocator
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (14 preceding siblings ...)
2025-03-12 6:45 ` [PATCH 15/17] xfs: skip various tests on zoned devices Christoph Hellwig
@ 2025-03-12 6:45 ` Christoph Hellwig
2025-03-12 20:30 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 17/17] xfs/206: filter out the zoned line from mkfs output Christoph Hellwig
2025-03-12 20:30 ` initial xfstests support for zoned XFS Darrick J. Wong
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:45 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
Various file system features tested are incompatible with the zoned
allocator. Add a _require_xfs_scratch_non_zoned to guard them.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
tests/xfs/015 | 7 +++++++
tests/xfs/041 | 5 +++++
tests/xfs/272 | 5 +++++
tests/xfs/276 | 5 +++++
tests/xfs/306 | 4 ++++
tests/xfs/419 | 3 +++
tests/xfs/449 | 3 +++
tests/xfs/521 | 3 +++
tests/xfs/524 | 4 ++++
tests/xfs/540 | 3 +++
tests/xfs/541 | 3 +++
tests/xfs/556 | 13 +++++++++++++
tests/xfs/596 | 3 +++
13 files changed, 61 insertions(+)
diff --git a/tests/xfs/015 b/tests/xfs/015
index acaace0ce103..ddb3e0911813 100755
--- a/tests/xfs/015
+++ b/tests/xfs/015
@@ -38,6 +38,13 @@ _require_scratch
# need 128M space, don't make any assumption
_scratch_mkfs >/dev/null 2>&1
_scratch_mount
+
+# This test tries to grow the data device, which doesn't work for internal
+# zoned RT devices
+if [ -z "$SCRATCH_RTDEV" ]; then
+ _require_xfs_scratch_non_zoned
+fi
+
_require_fs_space $SCRATCH_MNT 196608
_scratch_unmount
diff --git a/tests/xfs/041 b/tests/xfs/041
index 780078d44eeb..6cbcef6cfff0 100755
--- a/tests/xfs/041
+++ b/tests/xfs/041
@@ -44,6 +44,11 @@ bsize=`_scratch_mkfs_xfs -dsize=${agsize}m,agcount=1 2>&1 | _filter_mkfs 2>&1 \
onemeginblocks=`expr 1048576 / $bsize`
_scratch_mount
+# Growing the data device doesn't work with an internal RT volume directly
+# following the data device. But even without that this test forces data
+# to the data device, which often is tiny on zoned file systems.
+_require_xfs_scratch_non_zoned
+
# We're growing the data device, so force new file creation there
_xfs_force_bdev data $SCRATCH_MNT
diff --git a/tests/xfs/272 b/tests/xfs/272
index 0a7a7273ac92..aa5831dc0234 100755
--- a/tests/xfs/272
+++ b/tests/xfs/272
@@ -29,6 +29,11 @@ echo "Format and mount"
_scratch_mkfs > "$seqres.full" 2>&1
_scratch_mount
+# The synthetic devices for internal zoned rt devices confuse the parser
+if [ -z "$SCRATCH_RTDEV" ]; then
+ _require_xfs_scratch_non_zoned
+fi
+
# Make sure everything is on the data device
_xfs_force_bdev data $SCRATCH_MNT
diff --git a/tests/xfs/276 b/tests/xfs/276
index b675e79b249a..2802fc03c473 100755
--- a/tests/xfs/276
+++ b/tests/xfs/276
@@ -32,6 +32,11 @@ _scratch_mkfs | _filter_mkfs 2> "$tmp.mkfs" >/dev/null
cat "$tmp.mkfs" > $seqres.full
_scratch_mount
+# The synthetic devices for internal zoned rt devices confuse the parser
+if [ -z "$SCRATCH_RTDEV" ]; then
+ _require_xfs_scratch_non_zoned
+fi
+
# Don't let the rt extent size perturb the fsmap output with unwritten
# extents in places we don't expect them
test $rtextsz -eq $dbsize || _notrun "Skipping test due to rtextsize > 1 fsb"
diff --git a/tests/xfs/306 b/tests/xfs/306
index 8981cbd72e1c..e78493784233 100755
--- a/tests/xfs/306
+++ b/tests/xfs/306
@@ -33,6 +33,10 @@ unset SCRATCH_RTDEV
_scratch_mkfs_xfs -d size=100m -n size=64k >> $seqres.full 2>&1
_scratch_mount
+# When using the zone allotator, mkfs still creates an internal RT ѕection by
+# default and the above unsetting SCRATCH_RTDEV of doesn't work.
+_require_xfs_scratch_non_zoned
+
# Fill a source directory with many largish-named files. 1k uuid-named entries
# sufficiently populates a 64k directory block.
mkdir $SCRATCH_MNT/src
diff --git a/tests/xfs/419 b/tests/xfs/419
index 5e122a0b8763..94ae18743da9 100755
--- a/tests/xfs/419
+++ b/tests/xfs/419
@@ -44,6 +44,9 @@ cat $tmp.mkfs >> $seqres.full
. $tmp.mkfs
_scratch_mount
+# no support for rtextsize > 1 on zoned file systems
+_require_xfs_scratch_non_zoned
+
test $rtextsz -ne $dbsize || \
_notrun "cannot set rt extent size ($rtextsz) larger than fs block size ($dbsize)"
diff --git a/tests/xfs/449 b/tests/xfs/449
index a739df50e319..d93d84952c6a 100755
--- a/tests/xfs/449
+++ b/tests/xfs/449
@@ -38,6 +38,9 @@ fi
_scratch_mount
+# can't grow data volume on mixed configs
+_require_xfs_scratch_non_zoned
+
$XFS_SPACEMAN_PROG -c "info" $SCRATCH_MNT > $tmp.spaceman
echo SPACEMAN >> $seqres.full
cat $tmp.spaceman >> $seqres.full
diff --git a/tests/xfs/521 b/tests/xfs/521
index c92c621a2fd4..0da05a55a276 100755
--- a/tests/xfs/521
+++ b/tests/xfs/521
@@ -43,6 +43,9 @@ export SCRATCH_RTDEV=$rtdev
_scratch_mkfs -r size=100m > $seqres.full
_try_scratch_mount || _notrun "Could not mount scratch with synthetic rt volume"
+# zoned file systems only support zoned size-rounded RT device sizes
+_require_xfs_scratch_non_zoned
+
testdir=$SCRATCH_MNT/test-$seq
mkdir $testdir
diff --git a/tests/xfs/524 b/tests/xfs/524
index ef47a8461bf7..6251863476e5 100755
--- a/tests/xfs/524
+++ b/tests/xfs/524
@@ -25,6 +25,10 @@ _require_test
_require_scratch_nocheck
_require_xfs_mkfs_cfgfile
+# reflink is currently not supported for zoned devices, and the normal support
+# checks for it don't work at mkfs time.
+_require_non_zoned_device $SCRATCH_DEV
+
echo "Silence is golden"
def_cfgfile=$TEST_DIR/a
diff --git a/tests/xfs/540 b/tests/xfs/540
index 9c0fa3c6bb10..5595eee85a9b 100755
--- a/tests/xfs/540
+++ b/tests/xfs/540
@@ -34,6 +34,9 @@ test $rtextsz -ne $dbsize || \
_notrun "cannot set rt extent size ($rtextsz) larger than fs block size ($dbsize)"
_scratch_mount >> $seqres.full 2>&1
+# no support for rtextsize > 1 on zoned file systems
+_require_xfs_scratch_non_zoned
+
rootino=$(stat -c '%i' $SCRATCH_MNT)
_scratch_unmount
diff --git a/tests/xfs/541 b/tests/xfs/541
index b4856d496d5e..2b8c7ba17ff8 100755
--- a/tests/xfs/541
+++ b/tests/xfs/541
@@ -30,6 +30,9 @@ _require_scratch
SCRATCH_RTDEV="" _scratch_mkfs | _filter_mkfs 2> $tmp.mkfs >> $seqres.full
_try_scratch_mount || _notrun "Can't mount file system"
+# Zoned file systems don't support rtextsize > 1
+_require_xfs_scratch_non_zoned
+
# Check that there's no realtime section.
source $tmp.mkfs
test $rtblocks -eq 0 || echo "expected 0 rtblocks, got $rtblocks"
diff --git a/tests/xfs/556 b/tests/xfs/556
index 83d5022e700c..f5ad90c869ba 100755
--- a/tests/xfs/556
+++ b/tests/xfs/556
@@ -35,6 +35,19 @@ filter_scrub_errors() {
}
_scratch_mkfs >> $seqres.full
+
+#
+# The dm-error map added by this test doesn't work on zoned devices because
+# table sizes need to be aligned to the zone size, and even for zoned on
+# conventional this test will get confused because of the internal RT device.
+#
+# That check requires a mounted file system, so do a dummy mount before setting
+# up DM.
+#
+_scratch_mount
+_require_xfs_scratch_non_zoned
+_scratch_unmount
+
_dmerror_init
_dmerror_mount >> $seqres.full 2>&1
diff --git a/tests/xfs/596 b/tests/xfs/596
index 12c38c2e9604..5827f045b4e6 100755
--- a/tests/xfs/596
+++ b/tests/xfs/596
@@ -44,6 +44,9 @@ _scratch_mkfs_xfs -rsize=${rtsize}m | _filter_mkfs 2> "$tmp.mkfs" >> $seqres.ful
onemeginblocks=`expr 1048576 / $dbsize`
_scratch_mount
+# growfs on zoned file systems only works on zone boundaries
+_require_xfs_scratch_non_zoned
+
# We're growing the realtime device, so force new file creation there
_xfs_force_bdev realtime $SCRATCH_MNT
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [PATCH 17/17] xfs/206: filter out the zoned line from mkfs output
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (15 preceding siblings ...)
2025-03-12 6:45 ` [PATCH 16/17] xfs: skip various tests when using the zoned allocator Christoph Hellwig
@ 2025-03-12 6:45 ` Christoph Hellwig
2025-03-12 20:20 ` Darrick J. Wong
2025-03-12 20:30 ` initial xfstests support for zoned XFS Darrick J. Wong
17 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-12 6:45 UTC (permalink / raw)
To: Zorro Lang; +Cc: Darrick J. Wong, Hans Holmberg, fstests, linux-xfs
So that the test still passes with a zone enabled mkfs.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
tests/xfs/206 | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/xfs/206 b/tests/xfs/206
index 01531e1f08c3..bfd2dee939dd 100755
--- a/tests/xfs/206
+++ b/tests/xfs/206
@@ -66,6 +66,7 @@ mkfs_filter()
-e '/metadir=.*/d' \
-e 's/, parent=[01]//' \
-e '/rgcount=/d' \
+ -e '/zoned=/d' \
-e "/^Default configuration/d"
}
--
2.45.2
^ permalink raw reply related [flat|nested] 48+ messages in thread
* Re: [PATCH 01/17] xfs/177: force a small file system size
2025-03-12 6:44 ` [PATCH 01/17] xfs/177: force a small file system size Christoph Hellwig
@ 2025-03-12 19:56 ` Darrick J. Wong
0 siblings, 0 replies; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 19:56 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:44:53AM +0100, Christoph Hellwig wrote:
> This test make assumptions about the number of metadata inodes. When
> using small realtime group size (e.g. the customary 256MB for SMR
> hard drives) this assumption gets violated even with modest file system
> size. Force a small file system size to side-step this issue.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> tests/xfs/177 | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tests/xfs/177 b/tests/xfs/177
> index 82b3ca264140..8d23f66d51b7 100755
> --- a/tests/xfs/177
> +++ b/tests/xfs/177
> @@ -77,7 +77,9 @@ delay_centisecs="$(cat "$xfs_centisecs_file")"
> sleep_seconds=$(( ( (99 + (delay_centisecs / 6) ) / 100) + 1))
> echo "Will sleep $sleep_seconds seconds to expire inodes" >> $seqres.full
>
> -_scratch_mkfs >> $seqres.full
> +# Force a relatively small file system size to keep the number of rtgroups
> +# and thus metadata inodes low
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full
I guess that works... will try it out overnight and see what happens.
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> _scratch_mount >> $seqres.full
>
> junkdir=$SCRATCH_MNT/$seq.junk
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 02/17] xfs/419: use _scratch_mkfs_xfs
2025-03-12 6:44 ` [PATCH 02/17] xfs/419: use _scratch_mkfs_xfs Christoph Hellwig
@ 2025-03-12 20:05 ` Darrick J. Wong
2025-03-13 7:24 ` Christoph Hellwig
0 siblings, 1 reply; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:05 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:44:54AM +0100, Christoph Hellwig wrote:
> So that the test is _notrun instead of failed for conflicting options.
Which options are those? I'm assuming that you're forcing -r zoned=1?
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> tests/xfs/419 | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/xfs/419 b/tests/xfs/419
> index b9cd21faf443..5e122a0b8763 100755
> --- a/tests/xfs/419
> +++ b/tests/xfs/419
> @@ -39,7 +39,7 @@ $MKFS_XFS_PROG -d rtinherit=0 "${mkfs_args[@]}" &>> $seqres.full || \
> echo "mkfs should succeed with uninheritable rtext-unaligned extent hint"
>
> # Move on to checking the kernel's behavior
> -_scratch_mkfs -r extsize=7b | _filter_mkfs >> $seqres.full 2> $tmp.mkfs
> +_scratch_mkfs_xfs -r extsize=7b | _filter_mkfs >> $seqres.full 2> $tmp.mkfs
Yeah, seems fine to me -- if we didn't get the extsize=7b then the test
would have aborted anyway.
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> cat $tmp.mkfs >> $seqres.full
> . $tmp.mkfs
> _scratch_mount
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 03/17] xfs/540: use _scratch_mkfs_xfs
2025-03-12 6:44 ` [PATCH 03/17] xfs/540: " Christoph Hellwig
@ 2025-03-12 20:07 ` Darrick J. Wong
0 siblings, 0 replies; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:07 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:44:55AM +0100, Christoph Hellwig wrote:
> So that the test is _notrun instead of failed for conflicting options.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Looks good to me,
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> ---
> tests/xfs/540 | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/xfs/540 b/tests/xfs/540
> index 3acb20951a56..9c0fa3c6bb10 100755
> --- a/tests/xfs/540
> +++ b/tests/xfs/540
> @@ -26,7 +26,7 @@ _begin_fstest auto repair fuzzers
> _require_scratch
>
> echo "Format and mount"
> -_scratch_mkfs -r extsize=7b | _filter_mkfs > $seqres.full 2>$tmp.mkfs
> +_scratch_mkfs_xfs -r extsize=7b | _filter_mkfs > $seqres.full 2>$tmp.mkfs
> cat $tmp.mkfs >> $seqres.full
> . $tmp.mkfs
>
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 04/17] common: extend the zoned device checks in _require_dm_target
2025-03-12 6:44 ` [PATCH 04/17] common: extend the zoned device checks in _require_dm_target Christoph Hellwig
@ 2025-03-12 20:09 ` Darrick J. Wong
0 siblings, 0 replies; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:09 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:44:56AM +0100, Christoph Hellwig wrote:
> Also check for zoned log and rt devices in _require_dm_target
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> common/rc | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/common/rc b/common/rc
> index dcdfa86e43b1..753e86f91a04 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -2501,6 +2501,12 @@ _require_dm_target()
> case $target in
> snapshot|thin-pool)
> _require_non_zoned_device ${SCRATCH_DEV}
> + if [ "$FSTYP" = "xfs" ] && [ -b "$SCRATCH_RTDEV" ]; then
Silly nit: -n not -b, to be consistent with the codebase?
(Doesn't really matter since _require_non_zoned_device never aborts the
test if it's fed something that isn't a block device)
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> + _require_non_zoned_device ${SCRATCH_RTDEV}
> + fi
> + if [ "$FSTYP" = "xfs" ] && [ -b "$SCRATCH_LOGDEV" ]; then
> + _require_non_zoned_device ${SCRATCH_LOGDEV}
> + fi
> ;;
> esac
> }
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 05/17] common: allow _require_non_zoned_device without an argument
2025-03-12 6:44 ` [PATCH 05/17] common: allow _require_non_zoned_device without an argument Christoph Hellwig
@ 2025-03-12 20:10 ` Darrick J. Wong
2025-03-13 7:24 ` Christoph Hellwig
0 siblings, 1 reply; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:10 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:44:57AM +0100, Christoph Hellwig wrote:
> That way it can also be used for RT and log devices.
Do you mean "That way callers can pass SCRATCH_RTDEV directly without
needing to check for zero-length themselves"?
--D
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> common/rc | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/common/rc b/common/rc
> index 753e86f91a04..b0131526380a 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -2545,8 +2545,7 @@ _require_non_zoned_device()
> {
> local target=$1
> if [ -z $target ]; then
> - echo "Usage: _require_non_zoned_device <device>"
> - exit 1
> + return
> fi
>
> local type=`_zone_type ${target}`
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 06/17] common: support internal RT device in _require_realtime
2025-03-12 6:44 ` [PATCH 06/17] common: support internal RT device in _require_realtime Christoph Hellwig
@ 2025-03-12 20:12 ` Darrick J. Wong
2025-03-13 7:25 ` Christoph Hellwig
0 siblings, 1 reply; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:12 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:44:58AM +0100, Christoph Hellwig wrote:
> If SCRATCH_DEV is a zoned device it implies an internal zoned RT device
> and should not be skipped in _require_realtime.
/methinks that should be a comment in the code itself.
> Signed-off-by: Christoph Hellwig <hch@lst.de>
With that changed,
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> ---
> common/rc | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/common/rc b/common/rc
> index b0131526380a..00a315db0fe7 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -2354,10 +2354,15 @@ _require_no_large_scratch_dev()
> #
> _require_realtime()
> {
> - [ "$USE_EXTERNAL" = yes ] || \
> - _notrun "External volumes not in use, skipped this test"
> - [ "$SCRATCH_RTDEV" = "" ] && \
> - _notrun "Realtime device required, skipped this test"
> + local zone_type=`_zone_type $SCRATCH_DEV`
> + if [ "${zone_type}" = "none" ]; then
> + if [ "$USE_EXTERNAL" != "yes" ]; then
> + _notrun "External volumes not in use, skipped this test"
> + fi
> + if [ "$SCRATCH_RTDEV" = "" ]; then
> + _notrun "Realtime device required, skipped this test"
> + fi
> + fi
> }
>
> # This test requires that a realtime subvolume is not in use
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 07/17] common: support internal RT devices in scratch_mkfs_sized
2025-03-12 6:44 ` [PATCH 07/17] common: support internal RT devices in scratch_mkfs_sized Christoph Hellwig
@ 2025-03-12 20:15 ` Darrick J. Wong
0 siblings, 0 replies; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:15 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:44:59AM +0100, Christoph Hellwig wrote:
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> common/rc | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/common/rc b/common/rc
> index 00a315db0fe7..5e56d90e5931 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -1268,6 +1268,7 @@ _try_scratch_mkfs_sized()
> case $FSTYP in
> xfs)
> local rt_ops
> + local zone_type=`_zone_type $SCRATCH_DEV`
>
> if [ -b "$SCRATCH_RTDEV" ]; then
> local rtdevsize=`blockdev --getsize64 $SCRATCH_RTDEV`
> @@ -1275,6 +1276,12 @@ _try_scratch_mkfs_sized()
> _notrun "Scratch rt device too small"
> fi
> rt_ops="-r size=$fssize"
> + elif [ "${zone_type}" != "none" ] ||
> + [[ $MKFS_OPTIONS =~ "zoned=1" ]]; then
> + # Maybe also add back the size check, but it'll require
> + # somewhat complicated arithmetics for the size of the
> + # conventional zones
> + rt_ops="-r size=$fssize"
Hmm, what happens if you pass -dsize=X and -rzoned=1,size=X?
Oh, you get a data section of size X followed by an internal zoned
section also of size X.
Might want to mention that in the commit message...
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> fi
>
> # don't override MKFS_OPTIONS that set a block size.
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 08/17] xfs: check for zoned-specific errors in _try_scratch_mkfs_xfs
2025-03-12 6:45 ` [PATCH 08/17] xfs: check for zoned-specific errors in _try_scratch_mkfs_xfs Christoph Hellwig
@ 2025-03-12 20:17 ` Darrick J. Wong
2025-03-13 7:26 ` Christoph Hellwig
0 siblings, 1 reply; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:17 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:45:00AM +0100, Christoph Hellwig wrote:
> Check for a few errors issued for unsupported zoned configurations in
> _try_scratch_mkfs_xfs so that the test is not run instead of failed.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> common/xfs | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/common/xfs b/common/xfs
> index 93260fdb4599..807454d3e03b 100644
> --- a/common/xfs
> +++ b/common/xfs
> @@ -160,6 +160,11 @@ _try_scratch_mkfs_xfs()
>
> grep -q crc=0 $tmp.mkfsstd && _force_xfsv4_mount_options
>
> + grep -q "zoned file systems do not support" $tmp.mkfserr && \
> + _notrun "Not supported on zoned file systems"
> + grep -q "must be greater than the minimum" $tmp.mkfserr && \
Hmmm... this doesn't mention the word "zone" at all.
Maybe that error message in calculate_zone_geometry should read:
"realtime group count (%llu) must be greater than the minimum (%u) zone count" ?
and I think you should post the xfsprogs zoned patches.
--D
> + _notrun "Zone count too small"
> +
> if [ $mkfs_status -eq 0 -a "$LARGE_SCRATCH_DEV" = yes ]; then
> # manually parse the mkfs output to get the fs size in bytes
> local fs_size
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 09/17] common: notrun in mkfs_dev for too small zoned file systems
2025-03-12 6:45 ` [PATCH 09/17] common: notrun in mkfs_dev for too small zoned file systems Christoph Hellwig
@ 2025-03-12 20:18 ` Darrick J. Wong
0 siblings, 0 replies; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:18 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:45:01AM +0100, Christoph Hellwig wrote:
> Similar to the regular scratch_mkfs, skip the test if the file system
> would be so small that there's not enough zones.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> common/rc | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/common/rc b/common/rc
> index 5e56d90e5931..e664f3b81a6b 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -910,6 +910,10 @@ _mkfs_dev()
> {
> local tmp=`mktemp -u`
> if ! _try_mkfs_dev "$@" 2>$tmp.mkfserr 1>$tmp.mkfsstd; then
> + grep -q "must be greater than the minimum" $tmp.mkfserr && \
/methinks this also should look for the word "zone" somewhere so that it
doesn't trip on some other validation message for which we might want to
emit a different error.
--D
> + _notrun "Zone count too small"
> + grep -q "too small for zoned allocator" $tmp.mkfserr && \
> + _notrun "Zone count too small"
> # output stored mkfs output
> cat $tmp.mkfserr >&2
> cat $tmp.mkfsstd
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 10/17] xfs: add helpers to require zoned/non-zoned file systems
2025-03-12 6:45 ` [PATCH 10/17] xfs: add helpers to require zoned/non-zoned " Christoph Hellwig
@ 2025-03-12 20:19 ` Darrick J. Wong
0 siblings, 0 replies; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:19 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:45:02AM +0100, Christoph Hellwig wrote:
> Looking at the max_open_zones sysfs attribute to see if a file system is
> zoned or not, as various tests depend on that.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Looks fine to me,
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> ---
> common/xfs | 27 +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/common/xfs b/common/xfs
> index 807454d3e03b..86953b7310d9 100644
> --- a/common/xfs
> +++ b/common/xfs
> @@ -2076,6 +2076,33 @@ _scratch_xfs_force_no_metadir()
> fi
> }
>
> +# do not run on zoned file systems
> +_require_xfs_scratch_non_zoned()
> +{
> + if _has_fs_sysfs_attr $SCRATCH_DEV "zoned/max_open_zones"; then
> + _notrun "Not supported on zoned file systems"
> + fi
> +}
> +
> +# only run on zoned file systems
> +_require_xfs_scratch_zoned()
> +{
> + local attr="zoned/max_open_zones"
> + local min_open_zones=$1
> +
> + if ! _has_fs_sysfs_attr $SCRATCH_DEV $attr; then
> + _notrun "Requires zoned file system"
> + fi
> +
> + if [ -n "${min_open_zones}" ]; then
> + local has_open_zones=`_get_fs_sysfs_attr $SCRATCH_DEV $attr`
> +
> + if [ "${min_open_zones}" -gt "${has_open_zones}" ]; then
> + _notrun "Requires at least ${min_open_zones} open zones"
> + fi
> + fi
> +}
> +
> # Decide if a mount filesystem has metadata directory trees.
> _xfs_mount_has_metadir() {
> local mount="$1"
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 17/17] xfs/206: filter out the zoned line from mkfs output
2025-03-12 6:45 ` [PATCH 17/17] xfs/206: filter out the zoned line from mkfs output Christoph Hellwig
@ 2025-03-12 20:20 ` Darrick J. Wong
0 siblings, 0 replies; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:20 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:45:09AM +0100, Christoph Hellwig wrote:
> So that the test still passes with a zone enabled mkfs.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Same patch that I had!
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> ---
> tests/xfs/206 | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/tests/xfs/206 b/tests/xfs/206
> index 01531e1f08c3..bfd2dee939dd 100755
> --- a/tests/xfs/206
> +++ b/tests/xfs/206
> @@ -66,6 +66,7 @@ mkfs_filter()
> -e '/metadir=.*/d' \
> -e 's/, parent=[01]//' \
> -e '/rgcount=/d' \
> + -e '/zoned=/d' \
> -e "/^Default configuration/d"
> }
>
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 11/17] xfs: handle zoned file systems in _scratch_xfs_force_no_metadir
2025-03-12 6:45 ` [PATCH 11/17] xfs: handle zoned file systems in _scratch_xfs_force_no_metadir Christoph Hellwig
@ 2025-03-12 20:23 ` Darrick J. Wong
2025-03-13 7:28 ` Christoph Hellwig
0 siblings, 1 reply; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:23 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:45:03AM +0100, Christoph Hellwig wrote:
> Zoned file systems required the metadir feature. If the tests are run
> on a conventional block device as the RT device, we can simply remove
> the zoned flag an run the test, but if the file systems sits on a zoned
> block device there is no way to run a test that wants a non-metadir
> file system.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> common/xfs | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/common/xfs b/common/xfs
> index 86953b7310d9..a18b721eb5cf 100644
> --- a/common/xfs
> +++ b/common/xfs
> @@ -2054,6 +2054,12 @@ _scratch_xfs_find_metafile()
> # Force metadata directories off.
> _scratch_xfs_force_no_metadir()
> {
> + _require_non_zoned_device $SCRATCH_DEV
> + # metadir is required for when the rt device is on a zoned device
> + if [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ]; then
> + _require_non_zoned_device $SCRATCH_RTDEV
> + fi
> +
> # Remove any mkfs-time quota options because those are only supported
> # with metadir=1
> for opt in uquota gquota pquota; do
> @@ -2074,6 +2080,11 @@ _scratch_xfs_force_no_metadir()
> if grep -q 'metadir=' $MKFS_XFS_PROG; then
> MKFS_OPTIONS="-m metadir=0 $MKFS_OPTIONS"
> fi
> +
> + # zoned requires metadir
> + if grep -q 'zoned=' $MKFS_XFS_PROG; then
> + MKFS_OPTIONS="-m zoned=0 $MKFS_OPTIONS"
I think this cause mkfs to fail due to the respecification of -mzoned
if MKFS_OPTIONS originally had -mzoned= in it?
--D
> + fi
> }
>
> # do not run on zoned file systems
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 12/17] xfs: no quota support with internal rtdev
2025-03-12 6:45 ` [PATCH 12/17] xfs: no quota support with internal rtdev Christoph Hellwig
@ 2025-03-12 20:25 ` Darrick J. Wong
2025-03-13 7:30 ` Christoph Hellwig
0 siblings, 1 reply; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:25 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:45:04AM +0100, Christoph Hellwig wrote:
> Same as regular zoned, but the previous check didn't work.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> common/xfs | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/common/xfs b/common/xfs
> index a18b721eb5cf..3f9119d5ef65 100644
> --- a/common/xfs
> +++ b/common/xfs
> @@ -2210,7 +2210,10 @@ _xfs_scratch_supports_rtquota() {
> # can check that quickly, and we make the bold assumption that the same will
> # apply to any scratch fs that might be created.
> _require_xfs_rtquota_if_rtdev() {
> - test "$USE_EXTERNAL" = "yes" || return
> + if [ "$USE_EXTERNAL" != "yes" ]; then
> + xfs_info "$TEST_DIR" | grep -q 'realtime.*internal' &&
> + _notrun "Quota on internal rt device not supported"
Huh, I wonder if we should've allowed internal non-zoned rt devices.
It might've made the whole "we want 2MB blocksize on pmem" mess a little
less unpalatable.
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> + fi
>
> if [ -n "$TEST_RTDEV$SCRATCH_RTDEV" ]; then
> _xfs_kmod_supports_rtquota || \
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 13/17] xfs: xfs_copy doesn't like RT sections
2025-03-12 6:45 ` [PATCH 13/17] xfs: xfs_copy doesn't like RT sections Christoph Hellwig
@ 2025-03-12 20:25 ` Darrick J. Wong
0 siblings, 0 replies; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:25 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:45:05AM +0100, Christoph Hellwig wrote:
> internal or external..
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> common/xfs | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/common/xfs b/common/xfs
> index 3f9119d5ef65..7756c82cf0e5 100644
> --- a/common/xfs
> +++ b/common/xfs
> @@ -1561,6 +1561,9 @@ _require_xfs_copy()
> [ "$USE_EXTERNAL" = yes ] && \
> _notrun "Cannot xfs_copy with external devices"
>
> + xfs_info "$TEST_DIR" | grep -q 'realtime.*internal' &&
$XFS_INFO_PROG
(here and in the surrounding patches)
--D
> + _notrun "Cannot xfs_copy with internal rt device"
> +
> # xfs_copy on v5 filesystems do not require the "-d" option if xfs_db
> # can change the UUID on v5 filesystems
> touch /tmp/$$.img
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 14/17] xfs: skip filestreams tests on internal RT devices
2025-03-12 6:45 ` [PATCH 14/17] xfs: skip filestreams tests on internal RT devices Christoph Hellwig
@ 2025-03-12 20:26 ` Darrick J. Wong
2025-03-13 7:31 ` Christoph Hellwig
0 siblings, 1 reply; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:26 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:45:06AM +0100, Christoph Hellwig wrote:
> The filestreams tests using _test_streams force a run on the data
> section, but for internal RT zoned devices the data section can be tiny
> and might not provide enough space. Skip these tests as they aren't
> really useful when testing a zoned config anyway.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Looks ok, assuming you don't just want to kill filestreams entirely :)
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> ---
> common/filestreams | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/common/filestreams b/common/filestreams
> index 00b28066873f..bb8459405b3e 100644
> --- a/common/filestreams
> +++ b/common/filestreams
> @@ -108,6 +108,11 @@ _test_streams() {
> _scratch_mount
> fi
>
> + # Skip these tests on zoned file systems as filestreams don't work
> + # with the zoned allocator, and the above would force it into the
> + # tiny data section only used for metadata anyway.
> + _require_xfs_scratch_non_zoned
> +
> cd $SCRATCH_MNT
>
> # start $stream_count streams
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 15/17] xfs: skip various tests on zoned devices
2025-03-12 6:45 ` [PATCH 15/17] xfs: skip various tests on zoned devices Christoph Hellwig
@ 2025-03-12 20:27 ` Darrick J. Wong
2025-03-13 7:32 ` Christoph Hellwig
0 siblings, 1 reply; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:27 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:45:07AM +0100, Christoph Hellwig wrote:
> Various tests don't work with underlying zoned devices because either the
> device mapper maps don't align to zone boundaries, or in one case the test
> creates an ext2 file system that doesn't support zoned devices.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> tests/xfs/049 | 2 ++
> tests/xfs/311 | 3 +++
> tests/xfs/438 | 7 +++++++
> 3 files changed, 12 insertions(+)
>
> diff --git a/tests/xfs/049 b/tests/xfs/049
> index cdcddf76498c..07feb58c9ad6 100755
> --- a/tests/xfs/049
> +++ b/tests/xfs/049
> @@ -40,6 +40,8 @@ _require_scratch_nocheck
> _require_no_large_scratch_dev
> _require_loop
> _require_extra_fs ext2
> +# this test actually runs ext2 on the scratch device
> +_require_non_zoned_device $SCRATCH_DEV
>
> echo "(dev=$SCRATCH_DEV, mount=$SCRATCH_MNT)" >> $seqres.full
> echo "" >> $seqres.full
> diff --git a/tests/xfs/311 b/tests/xfs/311
> index 8b806fc29eb1..e8fc547cc4b4 100755
> --- a/tests/xfs/311
> +++ b/tests/xfs/311
> @@ -30,6 +30,9 @@ _cleanup()
> _require_scratch
> _require_dm_target delay
>
> +# The dm-delay map added by this test doesn't work on zoned devices
> +_require_non_zoned_device $SCRATCH_DEV
Should this kind of check become a part of _require_dm_target? Or does
dm-delay support zoned targets, just not for this test?
> +
> echo "Silence is golden."
>
> _scratch_mkfs_xfs >> $seqres.full 2>&1
> diff --git a/tests/xfs/438 b/tests/xfs/438
> index 6d1988c8b9b8..d436b583f9d1 100755
> --- a/tests/xfs/438
> +++ b/tests/xfs/438
> @@ -96,6 +96,13 @@ _require_user
> _require_xfs_quota
> _require_freeze
>
> +#
> +# The dm-flakey map added by this test doesn't work on zoned devices
> +# because table sizes need to be aligned to the zone size.
> +#
> +_require_non_zoned_device $SCRATCH_DEV
> +_require_non_zoned_device $SCRATCH_RTDEV
Can we fix the table sizes?
--D
> +
> echo "Silence is golden"
>
> _scratch_mkfs > $seqres.full 2>&1
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 16/17] xfs: skip various tests when using the zoned allocator
2025-03-12 6:45 ` [PATCH 16/17] xfs: skip various tests when using the zoned allocator Christoph Hellwig
@ 2025-03-12 20:30 ` Darrick J. Wong
2025-03-13 7:33 ` Christoph Hellwig
0 siblings, 1 reply; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:30 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:45:08AM +0100, Christoph Hellwig wrote:
> Various file system features tested are incompatible with the zoned
> allocator. Add a _require_xfs_scratch_non_zoned to guard them.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> tests/xfs/015 | 7 +++++++
> tests/xfs/041 | 5 +++++
> tests/xfs/272 | 5 +++++
> tests/xfs/276 | 5 +++++
> tests/xfs/306 | 4 ++++
> tests/xfs/419 | 3 +++
> tests/xfs/449 | 3 +++
> tests/xfs/521 | 3 +++
> tests/xfs/524 | 4 ++++
> tests/xfs/540 | 3 +++
> tests/xfs/541 | 3 +++
> tests/xfs/556 | 13 +++++++++++++
> tests/xfs/596 | 3 +++
> 13 files changed, 61 insertions(+)
>
> diff --git a/tests/xfs/015 b/tests/xfs/015
> index acaace0ce103..ddb3e0911813 100755
> --- a/tests/xfs/015
> +++ b/tests/xfs/015
> @@ -38,6 +38,13 @@ _require_scratch
> # need 128M space, don't make any assumption
> _scratch_mkfs >/dev/null 2>&1
> _scratch_mount
> +
> +# This test tries to grow the data device, which doesn't work for internal
> +# zoned RT devices
> +if [ -z "$SCRATCH_RTDEV" ]; then
> + _require_xfs_scratch_non_zoned
> +fi
Does growfs work for external zoned rt devices?
> +
> _require_fs_space $SCRATCH_MNT 196608
> _scratch_unmount
>
> diff --git a/tests/xfs/041 b/tests/xfs/041
> index 780078d44eeb..6cbcef6cfff0 100755
> --- a/tests/xfs/041
> +++ b/tests/xfs/041
> @@ -44,6 +44,11 @@ bsize=`_scratch_mkfs_xfs -dsize=${agsize}m,agcount=1 2>&1 | _filter_mkfs 2>&1 \
> onemeginblocks=`expr 1048576 / $bsize`
> _scratch_mount
>
> +# Growing the data device doesn't work with an internal RT volume directly
> +# following the data device. But even without that this test forces data
> +# to the data device, which often is tiny on zoned file systems.
> +_require_xfs_scratch_non_zoned
> +
> # We're growing the data device, so force new file creation there
> _xfs_force_bdev data $SCRATCH_MNT
>
> diff --git a/tests/xfs/272 b/tests/xfs/272
> index 0a7a7273ac92..aa5831dc0234 100755
> --- a/tests/xfs/272
> +++ b/tests/xfs/272
> @@ -29,6 +29,11 @@ echo "Format and mount"
> _scratch_mkfs > "$seqres.full" 2>&1
> _scratch_mount
>
> +# The synthetic devices for internal zoned rt devices confuse the parser
> +if [ -z "$SCRATCH_RTDEV" ]; then
> + _require_xfs_scratch_non_zoned
> +fi
> +
> # Make sure everything is on the data device
> _xfs_force_bdev data $SCRATCH_MNT
>
> diff --git a/tests/xfs/276 b/tests/xfs/276
> index b675e79b249a..2802fc03c473 100755
> --- a/tests/xfs/276
> +++ b/tests/xfs/276
> @@ -32,6 +32,11 @@ _scratch_mkfs | _filter_mkfs 2> "$tmp.mkfs" >/dev/null
> cat "$tmp.mkfs" > $seqres.full
> _scratch_mount
>
> +# The synthetic devices for internal zoned rt devices confuse the parser
> +if [ -z "$SCRATCH_RTDEV" ]; then
> + _require_xfs_scratch_non_zoned
> +fi
> +
> # Don't let the rt extent size perturb the fsmap output with unwritten
> # extents in places we don't expect them
> test $rtextsz -eq $dbsize || _notrun "Skipping test due to rtextsize > 1 fsb"
> diff --git a/tests/xfs/306 b/tests/xfs/306
> index 8981cbd72e1c..e78493784233 100755
> --- a/tests/xfs/306
> +++ b/tests/xfs/306
> @@ -33,6 +33,10 @@ unset SCRATCH_RTDEV
> _scratch_mkfs_xfs -d size=100m -n size=64k >> $seqres.full 2>&1
> _scratch_mount
>
> +# When using the zone allotator, mkfs still creates an internal RT ѕection by
allocator
Now you have me craving tator tots.
--D
> +# default and the above unsetting SCRATCH_RTDEV of doesn't work.
> +_require_xfs_scratch_non_zoned
> +
> # Fill a source directory with many largish-named files. 1k uuid-named entries
> # sufficiently populates a 64k directory block.
> mkdir $SCRATCH_MNT/src
> diff --git a/tests/xfs/419 b/tests/xfs/419
> index 5e122a0b8763..94ae18743da9 100755
> --- a/tests/xfs/419
> +++ b/tests/xfs/419
> @@ -44,6 +44,9 @@ cat $tmp.mkfs >> $seqres.full
> . $tmp.mkfs
> _scratch_mount
>
> +# no support for rtextsize > 1 on zoned file systems
> +_require_xfs_scratch_non_zoned
> +
> test $rtextsz -ne $dbsize || \
> _notrun "cannot set rt extent size ($rtextsz) larger than fs block size ($dbsize)"
>
> diff --git a/tests/xfs/449 b/tests/xfs/449
> index a739df50e319..d93d84952c6a 100755
> --- a/tests/xfs/449
> +++ b/tests/xfs/449
> @@ -38,6 +38,9 @@ fi
>
> _scratch_mount
>
> +# can't grow data volume on mixed configs
> +_require_xfs_scratch_non_zoned
> +
> $XFS_SPACEMAN_PROG -c "info" $SCRATCH_MNT > $tmp.spaceman
> echo SPACEMAN >> $seqres.full
> cat $tmp.spaceman >> $seqres.full
> diff --git a/tests/xfs/521 b/tests/xfs/521
> index c92c621a2fd4..0da05a55a276 100755
> --- a/tests/xfs/521
> +++ b/tests/xfs/521
> @@ -43,6 +43,9 @@ export SCRATCH_RTDEV=$rtdev
> _scratch_mkfs -r size=100m > $seqres.full
> _try_scratch_mount || _notrun "Could not mount scratch with synthetic rt volume"
>
> +# zoned file systems only support zoned size-rounded RT device sizes
> +_require_xfs_scratch_non_zoned
> +
> testdir=$SCRATCH_MNT/test-$seq
> mkdir $testdir
>
> diff --git a/tests/xfs/524 b/tests/xfs/524
> index ef47a8461bf7..6251863476e5 100755
> --- a/tests/xfs/524
> +++ b/tests/xfs/524
> @@ -25,6 +25,10 @@ _require_test
> _require_scratch_nocheck
> _require_xfs_mkfs_cfgfile
>
> +# reflink is currently not supported for zoned devices, and the normal support
> +# checks for it don't work at mkfs time.
> +_require_non_zoned_device $SCRATCH_DEV
> +
> echo "Silence is golden"
>
> def_cfgfile=$TEST_DIR/a
> diff --git a/tests/xfs/540 b/tests/xfs/540
> index 9c0fa3c6bb10..5595eee85a9b 100755
> --- a/tests/xfs/540
> +++ b/tests/xfs/540
> @@ -34,6 +34,9 @@ test $rtextsz -ne $dbsize || \
> _notrun "cannot set rt extent size ($rtextsz) larger than fs block size ($dbsize)"
>
> _scratch_mount >> $seqres.full 2>&1
> +# no support for rtextsize > 1 on zoned file systems
> +_require_xfs_scratch_non_zoned
> +
> rootino=$(stat -c '%i' $SCRATCH_MNT)
> _scratch_unmount
>
> diff --git a/tests/xfs/541 b/tests/xfs/541
> index b4856d496d5e..2b8c7ba17ff8 100755
> --- a/tests/xfs/541
> +++ b/tests/xfs/541
> @@ -30,6 +30,9 @@ _require_scratch
> SCRATCH_RTDEV="" _scratch_mkfs | _filter_mkfs 2> $tmp.mkfs >> $seqres.full
> _try_scratch_mount || _notrun "Can't mount file system"
>
> +# Zoned file systems don't support rtextsize > 1
> +_require_xfs_scratch_non_zoned
> +
> # Check that there's no realtime section.
> source $tmp.mkfs
> test $rtblocks -eq 0 || echo "expected 0 rtblocks, got $rtblocks"
> diff --git a/tests/xfs/556 b/tests/xfs/556
> index 83d5022e700c..f5ad90c869ba 100755
> --- a/tests/xfs/556
> +++ b/tests/xfs/556
> @@ -35,6 +35,19 @@ filter_scrub_errors() {
> }
>
> _scratch_mkfs >> $seqres.full
> +
> +#
> +# The dm-error map added by this test doesn't work on zoned devices because
> +# table sizes need to be aligned to the zone size, and even for zoned on
> +# conventional this test will get confused because of the internal RT device.
> +#
> +# That check requires a mounted file system, so do a dummy mount before setting
> +# up DM.
> +#
> +_scratch_mount
> +_require_xfs_scratch_non_zoned
> +_scratch_unmount
> +
> _dmerror_init
> _dmerror_mount >> $seqres.full 2>&1
>
> diff --git a/tests/xfs/596 b/tests/xfs/596
> index 12c38c2e9604..5827f045b4e6 100755
> --- a/tests/xfs/596
> +++ b/tests/xfs/596
> @@ -44,6 +44,9 @@ _scratch_mkfs_xfs -rsize=${rtsize}m | _filter_mkfs 2> "$tmp.mkfs" >> $seqres.ful
> onemeginblocks=`expr 1048576 / $dbsize`
> _scratch_mount
>
> +# growfs on zoned file systems only works on zone boundaries
> +_require_xfs_scratch_non_zoned
> +
> # We're growing the realtime device, so force new file creation there
> _xfs_force_bdev realtime $SCRATCH_MNT
>
> --
> 2.45.2
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: initial xfstests support for zoned XFS
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
` (16 preceding siblings ...)
2025-03-12 6:45 ` [PATCH 17/17] xfs/206: filter out the zoned line from mkfs output Christoph Hellwig
@ 2025-03-12 20:30 ` Darrick J. Wong
17 siblings, 0 replies; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-12 20:30 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 07:44:52AM +0100, Christoph Hellwig wrote:
> Hi all,
>
> this series adds initial support for the zoned XFS code merge into
> the xfs tree to xfstests. It does not include several newly developed
> test cases which will be sent separately.
Heh, looking forward to that. I'll give this latest version a spin on
my qa fleet and report back...
--D
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 02/17] xfs/419: use _scratch_mkfs_xfs
2025-03-12 20:05 ` Darrick J. Wong
@ 2025-03-13 7:24 ` Christoph Hellwig
0 siblings, 0 replies; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-13 7:24 UTC (permalink / raw)
To: Darrick J. Wong
Cc: Christoph Hellwig, Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 01:05:12PM -0700, Darrick J. Wong wrote:
> On Wed, Mar 12, 2025 at 07:44:54AM +0100, Christoph Hellwig wrote:
> > So that the test is _notrun instead of failed for conflicting options.
>
> Which options are those? I'm assuming that you're forcing -r zoned=1?
Yes.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 05/17] common: allow _require_non_zoned_device without an argument
2025-03-12 20:10 ` Darrick J. Wong
@ 2025-03-13 7:24 ` Christoph Hellwig
0 siblings, 0 replies; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-13 7:24 UTC (permalink / raw)
To: Darrick J. Wong
Cc: Christoph Hellwig, Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 01:10:36PM -0700, Darrick J. Wong wrote:
> On Wed, Mar 12, 2025 at 07:44:57AM +0100, Christoph Hellwig wrote:
> > That way it can also be used for RT and log devices.
>
> Do you mean "That way callers can pass SCRATCH_RTDEV directly without
> needing to check for zero-length themselves"?
Yes.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 06/17] common: support internal RT device in _require_realtime
2025-03-12 20:12 ` Darrick J. Wong
@ 2025-03-13 7:25 ` Christoph Hellwig
0 siblings, 0 replies; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-13 7:25 UTC (permalink / raw)
To: Darrick J. Wong
Cc: Christoph Hellwig, Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 01:12:42PM -0700, Darrick J. Wong wrote:
> On Wed, Mar 12, 2025 at 07:44:58AM +0100, Christoph Hellwig wrote:
> > If SCRATCH_DEV is a zoned device it implies an internal zoned RT device
> > and should not be skipped in _require_realtime.
>
> /methinks that should be a comment in the code itself.
Sure.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 08/17] xfs: check for zoned-specific errors in _try_scratch_mkfs_xfs
2025-03-12 20:17 ` Darrick J. Wong
@ 2025-03-13 7:26 ` Christoph Hellwig
2025-03-13 17:14 ` Darrick J. Wong
0 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-13 7:26 UTC (permalink / raw)
To: Darrick J. Wong
Cc: Christoph Hellwig, Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 01:17:25PM -0700, Darrick J. Wong wrote:
> > + grep -q "zoned file systems do not support" $tmp.mkfserr && \
> > + _notrun "Not supported on zoned file systems"
> > + grep -q "must be greater than the minimum" $tmp.mkfserr && \
>
> Hmmm... this doesn't mention the word "zone" at all.
>
> Maybe that error message in calculate_zone_geometry should read:
>
> "realtime group count (%llu) must be greater than the minimum (%u) zone count" ?
Yeah.
> and I think you should post the xfsprogs zoned patches.
Still waiting for a baseline to post against, i.e. rtrmap and rtreflink
being merged.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 11/17] xfs: handle zoned file systems in _scratch_xfs_force_no_metadir
2025-03-12 20:23 ` Darrick J. Wong
@ 2025-03-13 7:28 ` Christoph Hellwig
2025-03-13 17:18 ` Darrick J. Wong
0 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-13 7:28 UTC (permalink / raw)
To: Darrick J. Wong
Cc: Christoph Hellwig, Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 01:23:14PM -0700, Darrick J. Wong wrote:
> > for opt in uquota gquota pquota; do
> > @@ -2074,6 +2080,11 @@ _scratch_xfs_force_no_metadir()
> > if grep -q 'metadir=' $MKFS_XFS_PROG; then
> > MKFS_OPTIONS="-m metadir=0 $MKFS_OPTIONS"
> > fi
> > +
> > + # zoned requires metadir
> > + if grep -q 'zoned=' $MKFS_XFS_PROG; then
> > + MKFS_OPTIONS="-m zoned=0 $MKFS_OPTIONS"
>
> I think this cause mkfs to fail due to the respecification of -mzoned
> if MKFS_OPTIONS originally had -mzoned= in it?
Hmm, don't we allow respecification to override earlier settings?
Let me double check the _scratch_xfs_force_no_metadir tests on
zoned on conventional runs.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 12/17] xfs: no quota support with internal rtdev
2025-03-12 20:25 ` Darrick J. Wong
@ 2025-03-13 7:30 ` Christoph Hellwig
0 siblings, 0 replies; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-13 7:30 UTC (permalink / raw)
To: Darrick J. Wong
Cc: Christoph Hellwig, Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 01:25:11PM -0700, Darrick J. Wong wrote:
> > # apply to any scratch fs that might be created.
> > _require_xfs_rtquota_if_rtdev() {
> > - test "$USE_EXTERNAL" = "yes" || return
> > + if [ "$USE_EXTERNAL" != "yes" ]; then
> > + xfs_info "$TEST_DIR" | grep -q 'realtime.*internal' &&
> > + _notrun "Quota on internal rt device not supported"
>
> Huh, I wonder if we should've allowed internal non-zoned rt devices.
> It might've made the whole "we want 2MB blocksize on pmem" mess a little
> less unpalatable.
The code should be able to easily support it, but we'd need a new
feature flag to look for the rtstart value. We can probably just add
that feature the next time we add a somewhat relevant feature flag.
Hopefuly until then we'll support quotas on zoned so this check can
go away. Of maybe we just need to find a better way to probe for
quota support in general as the checks in xfstests are a bit of a
mess.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 14/17] xfs: skip filestreams tests on internal RT devices
2025-03-12 20:26 ` Darrick J. Wong
@ 2025-03-13 7:31 ` Christoph Hellwig
0 siblings, 0 replies; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-13 7:31 UTC (permalink / raw)
To: Darrick J. Wong
Cc: Christoph Hellwig, Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 01:26:03PM -0700, Darrick J. Wong wrote:
> On Wed, Mar 12, 2025 at 07:45:06AM +0100, Christoph Hellwig wrote:
> > The filestreams tests using _test_streams force a run on the data
> > section, but for internal RT zoned devices the data section can be tiny
> > and might not provide enough space. Skip these tests as they aren't
> > really useful when testing a zoned config anyway.
> >
> > Signed-off-by: Christoph Hellwig <hch@lst.de>
>
> Looks ok, assuming you don't just want to kill filestreams entirely :)
Hans and I are in fact looking into ways to repurpose it for zone
placement. But that might just end up reusing the mru cache and look
a bit different to the user.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 15/17] xfs: skip various tests on zoned devices
2025-03-12 20:27 ` Darrick J. Wong
@ 2025-03-13 7:32 ` Christoph Hellwig
2025-03-13 17:19 ` Darrick J. Wong
0 siblings, 1 reply; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-13 7:32 UTC (permalink / raw)
To: Darrick J. Wong
Cc: Christoph Hellwig, Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 01:27:59PM -0700, Darrick J. Wong wrote:
> > +# The dm-delay map added by this test doesn't work on zoned devices
> > +_require_non_zoned_device $SCRATCH_DEV
>
> Should this kind of check become a part of _require_dm_target? Or does
> dm-delay support zoned targets, just not for this test?
i.e. check for specific targets in _require_dm_target and reject them
on zoned? I can see if that would work.
> > +#
> > +# The dm-flakey map added by this test doesn't work on zoned devices
> > +# because table sizes need to be aligned to the zone size.
> > +#
> > +_require_non_zoned_device $SCRATCH_DEV
> > +_require_non_zoned_device $SCRATCH_RTDEV
>
> Can we fix the table sizes?
I'll take a look.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 16/17] xfs: skip various tests when using the zoned allocator
2025-03-12 20:30 ` Darrick J. Wong
@ 2025-03-13 7:33 ` Christoph Hellwig
0 siblings, 0 replies; 48+ messages in thread
From: Christoph Hellwig @ 2025-03-13 7:33 UTC (permalink / raw)
To: Darrick J. Wong
Cc: Christoph Hellwig, Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Wed, Mar 12, 2025 at 01:30:08PM -0700, Darrick J. Wong wrote:
> > +
> > +# This test tries to grow the data device, which doesn't work for internal
> > +# zoned RT devices
> > +if [ -z "$SCRATCH_RTDEV" ]; then
> > + _require_xfs_scratch_non_zoned
> > +fi
>
> Does growfs work for external zoned rt devices?
It works, but the amount grown needs to be aligned to the zone
size. So this test won't work either and the above comment needs to
be correct. A test based on this one that tests zoned grows will
follow in the next series.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 08/17] xfs: check for zoned-specific errors in _try_scratch_mkfs_xfs
2025-03-13 7:26 ` Christoph Hellwig
@ 2025-03-13 17:14 ` Darrick J. Wong
0 siblings, 0 replies; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-13 17:14 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Thu, Mar 13, 2025 at 08:26:37AM +0100, Christoph Hellwig wrote:
> On Wed, Mar 12, 2025 at 01:17:25PM -0700, Darrick J. Wong wrote:
> > > + grep -q "zoned file systems do not support" $tmp.mkfserr && \
> > > + _notrun "Not supported on zoned file systems"
> > > + grep -q "must be greater than the minimum" $tmp.mkfserr && \
> >
> > Hmmm... this doesn't mention the word "zone" at all.
> >
> > Maybe that error message in calculate_zone_geometry should read:
> >
> > "realtime group count (%llu) must be greater than the minimum (%u) zone count" ?
>
> Yeah.
>
> > and I think you should post the xfsprogs zoned patches.
>
> Still waiting for a baseline to post against, i.e. rtrmap and rtreflink
> being merged.
That's all in for-next now, though I don't think there's going to be a
xfsprogs release until the kernel does it.
--D
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 11/17] xfs: handle zoned file systems in _scratch_xfs_force_no_metadir
2025-03-13 7:28 ` Christoph Hellwig
@ 2025-03-13 17:18 ` Darrick J. Wong
0 siblings, 0 replies; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-13 17:18 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Thu, Mar 13, 2025 at 08:28:09AM +0100, Christoph Hellwig wrote:
> On Wed, Mar 12, 2025 at 01:23:14PM -0700, Darrick J. Wong wrote:
> > > for opt in uquota gquota pquota; do
> > > @@ -2074,6 +2080,11 @@ _scratch_xfs_force_no_metadir()
> > > if grep -q 'metadir=' $MKFS_XFS_PROG; then
> > > MKFS_OPTIONS="-m metadir=0 $MKFS_OPTIONS"
> > > fi
> > > +
> > > + # zoned requires metadir
> > > + if grep -q 'zoned=' $MKFS_XFS_PROG; then
> > > + MKFS_OPTIONS="-m zoned=0 $MKFS_OPTIONS"
> >
> > I think this cause mkfs to fail due to the respecification of -mzoned
> > if MKFS_OPTIONS originally had -mzoned= in it?
>
> Hmm, don't we allow respecification to override earlier settings?
Nope:
$ mkfs.xfs -f -m rmapbt=0 -m rmapbt=1 /tmp/a
-m rmapbt option respecified
<snip>
You can't even override the options specified in a config file:
$ mkfs.xfs -f -c options=/usr/share/xfsprogs/mkfs/lts_5.4.conf -m rmapbt=1 /tmp/a
-m rmapbt option respecified
> Let me double check the _scratch_xfs_force_no_metadir tests on
> zoned on conventional runs.
--D
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [PATCH 15/17] xfs: skip various tests on zoned devices
2025-03-13 7:32 ` Christoph Hellwig
@ 2025-03-13 17:19 ` Darrick J. Wong
0 siblings, 0 replies; 48+ messages in thread
From: Darrick J. Wong @ 2025-03-13 17:19 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Zorro Lang, Hans Holmberg, fstests, linux-xfs
On Thu, Mar 13, 2025 at 08:32:18AM +0100, Christoph Hellwig wrote:
> On Wed, Mar 12, 2025 at 01:27:59PM -0700, Darrick J. Wong wrote:
> > > +# The dm-delay map added by this test doesn't work on zoned devices
> > > +_require_non_zoned_device $SCRATCH_DEV
> >
> > Should this kind of check become a part of _require_dm_target? Or does
> > dm-delay support zoned targets, just not for this test?
>
> i.e. check for specific targets in _require_dm_target and reject them
> on zoned? I can see if that would work.
Yeah, since it already switches on which target you ask for, and applies
per-target requirements checking.
--D
> > > +#
> > > +# The dm-flakey map added by this test doesn't work on zoned devices
> > > +# because table sizes need to be aligned to the zone size.
> > > +#
> > > +_require_non_zoned_device $SCRATCH_DEV
> > > +_require_non_zoned_device $SCRATCH_RTDEV
> >
> > Can we fix the table sizes?
>
> I'll take a look.
>
>
^ permalink raw reply [flat|nested] 48+ messages in thread
end of thread, other threads:[~2025-03-13 17:19 UTC | newest]
Thread overview: 48+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-12 6:44 initial xfstests support for zoned XFS Christoph Hellwig
2025-03-12 6:44 ` [PATCH 01/17] xfs/177: force a small file system size Christoph Hellwig
2025-03-12 19:56 ` Darrick J. Wong
2025-03-12 6:44 ` [PATCH 02/17] xfs/419: use _scratch_mkfs_xfs Christoph Hellwig
2025-03-12 20:05 ` Darrick J. Wong
2025-03-13 7:24 ` Christoph Hellwig
2025-03-12 6:44 ` [PATCH 03/17] xfs/540: " Christoph Hellwig
2025-03-12 20:07 ` Darrick J. Wong
2025-03-12 6:44 ` [PATCH 04/17] common: extend the zoned device checks in _require_dm_target Christoph Hellwig
2025-03-12 20:09 ` Darrick J. Wong
2025-03-12 6:44 ` [PATCH 05/17] common: allow _require_non_zoned_device without an argument Christoph Hellwig
2025-03-12 20:10 ` Darrick J. Wong
2025-03-13 7:24 ` Christoph Hellwig
2025-03-12 6:44 ` [PATCH 06/17] common: support internal RT device in _require_realtime Christoph Hellwig
2025-03-12 20:12 ` Darrick J. Wong
2025-03-13 7:25 ` Christoph Hellwig
2025-03-12 6:44 ` [PATCH 07/17] common: support internal RT devices in scratch_mkfs_sized Christoph Hellwig
2025-03-12 20:15 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 08/17] xfs: check for zoned-specific errors in _try_scratch_mkfs_xfs Christoph Hellwig
2025-03-12 20:17 ` Darrick J. Wong
2025-03-13 7:26 ` Christoph Hellwig
2025-03-13 17:14 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 09/17] common: notrun in mkfs_dev for too small zoned file systems Christoph Hellwig
2025-03-12 20:18 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 10/17] xfs: add helpers to require zoned/non-zoned " Christoph Hellwig
2025-03-12 20:19 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 11/17] xfs: handle zoned file systems in _scratch_xfs_force_no_metadir Christoph Hellwig
2025-03-12 20:23 ` Darrick J. Wong
2025-03-13 7:28 ` Christoph Hellwig
2025-03-13 17:18 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 12/17] xfs: no quota support with internal rtdev Christoph Hellwig
2025-03-12 20:25 ` Darrick J. Wong
2025-03-13 7:30 ` Christoph Hellwig
2025-03-12 6:45 ` [PATCH 13/17] xfs: xfs_copy doesn't like RT sections Christoph Hellwig
2025-03-12 20:25 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 14/17] xfs: skip filestreams tests on internal RT devices Christoph Hellwig
2025-03-12 20:26 ` Darrick J. Wong
2025-03-13 7:31 ` Christoph Hellwig
2025-03-12 6:45 ` [PATCH 15/17] xfs: skip various tests on zoned devices Christoph Hellwig
2025-03-12 20:27 ` Darrick J. Wong
2025-03-13 7:32 ` Christoph Hellwig
2025-03-13 17:19 ` Darrick J. Wong
2025-03-12 6:45 ` [PATCH 16/17] xfs: skip various tests when using the zoned allocator Christoph Hellwig
2025-03-12 20:30 ` Darrick J. Wong
2025-03-13 7:33 ` Christoph Hellwig
2025-03-12 6:45 ` [PATCH 17/17] xfs/206: filter out the zoned line from mkfs output Christoph Hellwig
2025-03-12 20:20 ` Darrick J. Wong
2025-03-12 20:30 ` initial xfstests support for zoned XFS Darrick J. Wong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox