* [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-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
* 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
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.