* [PATCH] xfs/131: test iomap zero range via fsx and error tag
@ 2025-08-07 14:56 Brian Foster
2025-08-11 18:19 ` Zorro Lang
2025-08-11 18:24 ` Zorro Lang
0 siblings, 2 replies; 5+ messages in thread
From: Brian Foster @ 2025-08-07 14:56 UTC (permalink / raw)
To: fstests
iomap supports a zero range operation based on buffered writes. This
mechanism is used in limited spots, such as partial block zeroing,
etc., because usually for larger zeroing ops it is more efficient to
punch a hole and allocate unwritten extents.
This means iomap zero range has limited production test coverage
even though it has some particular corner cases that warrant test
coverage. XFS supports an error injection knob to force use of iomap
zero range on fallocate zero range operations. Add a test to run fsx
with this knob enabled to provide more zeroing test coverage.
Signed-off-by: Brian Foster <bfoster@redhat.com>
---
FYI, this test is intended to go along with this patch[1] that
introduces the errortag.
[1] https://lore.kernel.org/linux-fsdevel/20250807144711.564137-8-bfoster@redhat.com/
tests/xfs/131 | 26 ++++++++++++++++++++++++++
tests/xfs/131.out | 2 ++
2 files changed, 28 insertions(+)
create mode 100755 tests/xfs/131
create mode 100644 tests/xfs/131.out
diff --git a/tests/xfs/131 b/tests/xfs/131
new file mode 100755
index 00000000..eb8882a3
--- /dev/null
+++ b/tests/xfs/131
@@ -0,0 +1,26 @@
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2025 Red Hat, Inc.. All Rights Reserved.
+#
+# FS QA Test 131
+#
+# Run fsx with XFS force_zero_range error injection enabled. This is a proxy
+# test for iomap zero range. Zero range is used in limited cases by default,
+# such as EOF zeroing on file extension, etc. This error tag forces use of iomap
+# zero range for fallocate zero range operations.
+#
+. ./common/preamble
+_begin_fstest auto quick zero
+
+# Import common functions.
+. ./common/inject
+
+# Modify as appropriate.
+_require_test
+_require_xfs_io_error_injection "force_zero_range"
+
+_test_inject_error "force_zero_range"
+run_fsx "-q -S 0 -N 100000"
+
+# success, all done
+_exit 0
diff --git a/tests/xfs/131.out b/tests/xfs/131.out
new file mode 100644
index 00000000..2ca0d932
--- /dev/null
+++ b/tests/xfs/131.out
@@ -0,0 +1,2 @@
+QA output created by 131
+fsx -q -S 0 -N 100000
--
2.50.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] xfs/131: test iomap zero range via fsx and error tag
2025-08-07 14:56 [PATCH] xfs/131: test iomap zero range via fsx and error tag Brian Foster
@ 2025-08-11 18:19 ` Zorro Lang
2025-08-11 19:19 ` Brian Foster
2025-08-11 18:24 ` Zorro Lang
1 sibling, 1 reply; 5+ messages in thread
From: Zorro Lang @ 2025-08-11 18:19 UTC (permalink / raw)
To: Brian Foster; +Cc: fstests
On Thu, Aug 07, 2025 at 10:56:26AM -0400, Brian Foster wrote:
> iomap supports a zero range operation based on buffered writes. This
> mechanism is used in limited spots, such as partial block zeroing,
> etc., because usually for larger zeroing ops it is more efficient to
> punch a hole and allocate unwritten extents.
>
> This means iomap zero range has limited production test coverage
> even though it has some particular corner cases that warrant test
> coverage. XFS supports an error injection knob to force use of iomap
> zero range on fallocate zero range operations. Add a test to run fsx
> with this knob enabled to provide more zeroing test coverage.
>
> Signed-off-by: Brian Foster <bfoster@redhat.com>
> ---
>
> FYI, this test is intended to go along with this patch[1] that
> introduces the errortag.
>
> [1] https://lore.kernel.org/linux-fsdevel/20250807144711.564137-8-bfoster@redhat.com/
>
> tests/xfs/131 | 26 ++++++++++++++++++++++++++
> tests/xfs/131.out | 2 ++
> 2 files changed, 28 insertions(+)
> create mode 100755 tests/xfs/131
> create mode 100644 tests/xfs/131.out
>
> diff --git a/tests/xfs/131 b/tests/xfs/131
> new file mode 100755
> index 00000000..eb8882a3
> --- /dev/null
> +++ b/tests/xfs/131
> @@ -0,0 +1,26 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2025 Red Hat, Inc.. All Rights Reserved.
> +#
> +# FS QA Test 131
> +#
> +# Run fsx with XFS force_zero_range error injection enabled. This is a proxy
> +# test for iomap zero range. Zero range is used in limited cases by default,
> +# such as EOF zeroing on file extension, etc. This error tag forces use of iomap
> +# zero range for fallocate zero range operations.
> +#
> +. ./common/preamble
> +_begin_fstest auto quick zero
> +
> +# Import common functions.
> +. ./common/inject
> +
> +# Modify as appropriate.
> +_require_test
> +_require_xfs_io_error_injection "force_zero_range"
> +
> +_test_inject_error "force_zero_range"
> +run_fsx "-q -S 0 -N 100000"
Just check with you, if you hope to have a $TIME_FACTOR with -N at here.
This test case looks good to me with this patch:
https://lore.kernel.org/linux-xfs/20250807144711.564137-8-bfoster@redhat.com/
Reviewed-by: Zorro Lang <zlang@redhat.com>
> +
> +# success, all done
> +_exit 0
> diff --git a/tests/xfs/131.out b/tests/xfs/131.out
> new file mode 100644
> index 00000000..2ca0d932
> --- /dev/null
> +++ b/tests/xfs/131.out
> @@ -0,0 +1,2 @@
> +QA output created by 131
> +fsx -q -S 0 -N 100000
> --
> 2.50.1
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] xfs/131: test iomap zero range via fsx and error tag
2025-08-07 14:56 [PATCH] xfs/131: test iomap zero range via fsx and error tag Brian Foster
2025-08-11 18:19 ` Zorro Lang
@ 2025-08-11 18:24 ` Zorro Lang
1 sibling, 0 replies; 5+ messages in thread
From: Zorro Lang @ 2025-08-11 18:24 UTC (permalink / raw)
To: Brian Foster; +Cc: fstests
On Thu, Aug 07, 2025 at 10:56:26AM -0400, Brian Foster wrote:
> iomap supports a zero range operation based on buffered writes. This
> mechanism is used in limited spots, such as partial block zeroing,
> etc., because usually for larger zeroing ops it is more efficient to
> punch a hole and allocate unwritten extents.
>
> This means iomap zero range has limited production test coverage
> even though it has some particular corner cases that warrant test
> coverage. XFS supports an error injection knob to force use of iomap
> zero range on fallocate zero range operations. Add a test to run fsx
> with this knob enabled to provide more zeroing test coverage.
>
> Signed-off-by: Brian Foster <bfoster@redhat.com>
> ---
>
> FYI, this test is intended to go along with this patch[1] that
> introduces the errortag.
>
> [1] https://lore.kernel.org/linux-fsdevel/20250807144711.564137-8-bfoster@redhat.com/
>
> tests/xfs/131 | 26 ++++++++++++++++++++++++++
> tests/xfs/131.out | 2 ++
> 2 files changed, 28 insertions(+)
> create mode 100755 tests/xfs/131
> create mode 100644 tests/xfs/131.out
>
> diff --git a/tests/xfs/131 b/tests/xfs/131
> new file mode 100755
> index 00000000..eb8882a3
> --- /dev/null
> +++ b/tests/xfs/131
> @@ -0,0 +1,26 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2025 Red Hat, Inc.. All Rights Reserved.
> +#
> +# FS QA Test 131
> +#
> +# Run fsx with XFS force_zero_range error injection enabled. This is a proxy
> +# test for iomap zero range. Zero range is used in limited cases by default,
> +# such as EOF zeroing on file extension, etc. This error tag forces use of iomap
> +# zero range for fallocate zero range operations.
> +#
> +. ./common/preamble
> +_begin_fstest auto quick zero
> +
> +# Import common functions.
> +. ./common/inject
> +
> +# Modify as appropriate.
> +_require_test
> +_require_xfs_io_error_injection "force_zero_range"
> +
> +_test_inject_error "force_zero_range"
> +run_fsx "-q -S 0 -N 100000"
Just a picky review point:
As run_fsx() function use "$@", so the double quotation marks ("-q -S 0 -N 100000")
don't make sense I think, although it works. I'll help to remove it when I merge this
patch.
Thanks,
Zorro
> +
> +# success, all done
> +_exit 0
> diff --git a/tests/xfs/131.out b/tests/xfs/131.out
> new file mode 100644
> index 00000000..2ca0d932
> --- /dev/null
> +++ b/tests/xfs/131.out
> @@ -0,0 +1,2 @@
> +QA output created by 131
> +fsx -q -S 0 -N 100000
> --
> 2.50.1
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] xfs/131: test iomap zero range via fsx and error tag
2025-08-11 18:19 ` Zorro Lang
@ 2025-08-11 19:19 ` Brian Foster
2025-08-12 8:28 ` Zorro Lang
0 siblings, 1 reply; 5+ messages in thread
From: Brian Foster @ 2025-08-11 19:19 UTC (permalink / raw)
To: Zorro Lang; +Cc: fstests
On Tue, Aug 12, 2025 at 02:19:08AM +0800, Zorro Lang wrote:
> On Thu, Aug 07, 2025 at 10:56:26AM -0400, Brian Foster wrote:
> > iomap supports a zero range operation based on buffered writes. This
> > mechanism is used in limited spots, such as partial block zeroing,
> > etc., because usually for larger zeroing ops it is more efficient to
> > punch a hole and allocate unwritten extents.
> >
> > This means iomap zero range has limited production test coverage
> > even though it has some particular corner cases that warrant test
> > coverage. XFS supports an error injection knob to force use of iomap
> > zero range on fallocate zero range operations. Add a test to run fsx
> > with this knob enabled to provide more zeroing test coverage.
> >
> > Signed-off-by: Brian Foster <bfoster@redhat.com>
> > ---
> >
> > FYI, this test is intended to go along with this patch[1] that
> > introduces the errortag.
> >
> > [1] https://lore.kernel.org/linux-fsdevel/20250807144711.564137-8-bfoster@redhat.com/
> >
> > tests/xfs/131 | 26 ++++++++++++++++++++++++++
> > tests/xfs/131.out | 2 ++
> > 2 files changed, 28 insertions(+)
> > create mode 100755 tests/xfs/131
> > create mode 100644 tests/xfs/131.out
> >
> > diff --git a/tests/xfs/131 b/tests/xfs/131
> > new file mode 100755
> > index 00000000..eb8882a3
> > --- /dev/null
> > +++ b/tests/xfs/131
> > @@ -0,0 +1,26 @@
> > +#! /bin/bash
> > +# SPDX-License-Identifier: GPL-2.0
> > +# Copyright (c) 2025 Red Hat, Inc.. All Rights Reserved.
> > +#
> > +# FS QA Test 131
> > +#
> > +# Run fsx with XFS force_zero_range error injection enabled. This is a proxy
> > +# test for iomap zero range. Zero range is used in limited cases by default,
> > +# such as EOF zeroing on file extension, etc. This error tag forces use of iomap
> > +# zero range for fallocate zero range operations.
> > +#
> > +. ./common/preamble
> > +_begin_fstest auto quick zero
> > +
> > +# Import common functions.
> > +. ./common/inject
> > +
> > +# Modify as appropriate.
> > +_require_test
> > +_require_xfs_io_error_injection "force_zero_range"
> > +
> > +_test_inject_error "force_zero_range"
> > +run_fsx "-q -S 0 -N 100000"
>
> Just check with you, if you hope to have a $TIME_FACTOR with -N at here.
>
So do you just mean to make it 100000 * $TIME_FACTOR so the runtime can
be increased via configuration, if desired? If so, that sounds
reasonable to me (same for your tweak in the other email as well).
> This test case looks good to me with this patch:
> https://lore.kernel.org/linux-xfs/20250807144711.564137-8-bfoster@redhat.com/
>
> Reviewed-by: Zorro Lang <zlang@redhat.com>
>
Thanks!
Brian
> > +
> > +# success, all done
> > +_exit 0
> > diff --git a/tests/xfs/131.out b/tests/xfs/131.out
> > new file mode 100644
> > index 00000000..2ca0d932
> > --- /dev/null
> > +++ b/tests/xfs/131.out
> > @@ -0,0 +1,2 @@
> > +QA output created by 131
> > +fsx -q -S 0 -N 100000
> > --
> > 2.50.1
> >
> >
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] xfs/131: test iomap zero range via fsx and error tag
2025-08-11 19:19 ` Brian Foster
@ 2025-08-12 8:28 ` Zorro Lang
0 siblings, 0 replies; 5+ messages in thread
From: Zorro Lang @ 2025-08-12 8:28 UTC (permalink / raw)
To: Brian Foster; +Cc: fstests
On Mon, Aug 11, 2025 at 03:19:40PM -0400, Brian Foster wrote:
> On Tue, Aug 12, 2025 at 02:19:08AM +0800, Zorro Lang wrote:
> > On Thu, Aug 07, 2025 at 10:56:26AM -0400, Brian Foster wrote:
> > > iomap supports a zero range operation based on buffered writes. This
> > > mechanism is used in limited spots, such as partial block zeroing,
> > > etc., because usually for larger zeroing ops it is more efficient to
> > > punch a hole and allocate unwritten extents.
> > >
> > > This means iomap zero range has limited production test coverage
> > > even though it has some particular corner cases that warrant test
> > > coverage. XFS supports an error injection knob to force use of iomap
> > > zero range on fallocate zero range operations. Add a test to run fsx
> > > with this knob enabled to provide more zeroing test coverage.
> > >
> > > Signed-off-by: Brian Foster <bfoster@redhat.com>
> > > ---
> > >
> > > FYI, this test is intended to go along with this patch[1] that
> > > introduces the errortag.
> > >
> > > [1] https://lore.kernel.org/linux-fsdevel/20250807144711.564137-8-bfoster@redhat.com/
> > >
> > > tests/xfs/131 | 26 ++++++++++++++++++++++++++
> > > tests/xfs/131.out | 2 ++
> > > 2 files changed, 28 insertions(+)
> > > create mode 100755 tests/xfs/131
> > > create mode 100644 tests/xfs/131.out
> > >
> > > diff --git a/tests/xfs/131 b/tests/xfs/131
> > > new file mode 100755
> > > index 00000000..eb8882a3
> > > --- /dev/null
> > > +++ b/tests/xfs/131
> > > @@ -0,0 +1,26 @@
> > > +#! /bin/bash
> > > +# SPDX-License-Identifier: GPL-2.0
> > > +# Copyright (c) 2025 Red Hat, Inc.. All Rights Reserved.
> > > +#
> > > +# FS QA Test 131
> > > +#
> > > +# Run fsx with XFS force_zero_range error injection enabled. This is a proxy
> > > +# test for iomap zero range. Zero range is used in limited cases by default,
> > > +# such as EOF zeroing on file extension, etc. This error tag forces use of iomap
> > > +# zero range for fallocate zero range operations.
> > > +#
> > > +. ./common/preamble
> > > +_begin_fstest auto quick zero
> > > +
> > > +# Import common functions.
> > > +. ./common/inject
> > > +
> > > +# Modify as appropriate.
> > > +_require_test
> > > +_require_xfs_io_error_injection "force_zero_range"
> > > +
> > > +_test_inject_error "force_zero_range"
> > > +run_fsx "-q -S 0 -N 100000"
> >
> > Just check with you, if you hope to have a $TIME_FACTOR with -N at here.
> >
>
> So do you just mean to make it 100000 * $TIME_FACTOR so the runtime can
> be increased via configuration, if desired? If so, that sounds
> reasonable to me (same for your tweak in the other email as well).
Sure, only $TIME_FACTOR. As this is an error injection test, so I think
we don't need to add this test to soak group and use $SOAK_DURATION (except
you intend that). I'll merge this patch with the $TIME_FACTOR.
Thanks,
Zorro
>
> > This test case looks good to me with this patch:
> > https://lore.kernel.org/linux-xfs/20250807144711.564137-8-bfoster@redhat.com/
> >
> > Reviewed-by: Zorro Lang <zlang@redhat.com>
> >
>
> Thanks!
>
> Brian
>
> > > +
> > > +# success, all done
> > > +_exit 0
> > > diff --git a/tests/xfs/131.out b/tests/xfs/131.out
> > > new file mode 100644
> > > index 00000000..2ca0d932
> > > --- /dev/null
> > > +++ b/tests/xfs/131.out
> > > @@ -0,0 +1,2 @@
> > > +QA output created by 131
> > > +fsx -q -S 0 -N 100000
> > > --
> > > 2.50.1
> > >
> > >
> >
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-08-12 8:28 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-07 14:56 [PATCH] xfs/131: test iomap zero range via fsx and error tag Brian Foster
2025-08-11 18:19 ` Zorro Lang
2025-08-11 19:19 ` Brian Foster
2025-08-12 8:28 ` Zorro Lang
2025-08-11 18:24 ` Zorro Lang
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.