From: "Darrick J. Wong" <djwong@kernel.org>
To: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Cc: Zorro Lang <zlang@redhat.com>,
fstests@vger.kernel.org, Ritesh Harjani <ritesh.list@gmail.com>,
john.g.garry@oracle.com, tytso@mit.edu,
linux-xfs@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-ext4@vger.kernel.org
Subject: Re: [PATCH v3 02/13] common/rc: Fix fsx for ext4 with bigalloc
Date: Wed, 23 Jul 2025 07:50:21 -0700 [thread overview]
Message-ID: <20250723145021.GM2672039@frogsfrogsfrogs> (raw)
In-Reply-To: <aH9ffl7-2ri2Exgv@li-dc0c254c-257c-11b2-a85c-98b6c1322444.ibm.com>
On Tue, Jul 22, 2025 at 03:23:02PM +0530, Ojaswin Mujoo wrote:
> On Thu, Jul 17, 2025 at 09:11:54AM -0700, Darrick J. Wong wrote:
> > On Sat, Jul 12, 2025 at 07:42:44PM +0530, Ojaswin Mujoo wrote:
> > > Insert range and collapse range only works with bigalloc in case
> > > the range is cluster size aligned, which fsx doesnt take care. To
> > > work past this, disable insert range and collapse range on ext4, if
> > > bigalloc is enabled.
> > >
> > > This is achieved by defining a new function _set_default_fsx_avoid
> > > called via run_fsx helper. This can be used to selectively disable
> > > fsx options based on the configuration.
> > >
> > > Co-developed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
> > > Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
> > > Signed-off-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
> > > ---
> > > common/rc | 27 +++++++++++++++++++++++++++
> > > 1 file changed, 27 insertions(+)
> > >
> > > diff --git a/common/rc b/common/rc
> > > index 9a9d3cc8..218cf253 100644
> > > --- a/common/rc
> > > +++ b/common/rc
> > > @@ -5113,10 +5113,37 @@ _require_hugepage_fsx()
> > > _notrun "fsx binary does not support MADV_COLLAPSE"
> > > }
> > >
> > > +_set_default_fsx_avoid() {
> > > + local file=$1
> > > +
> > > + case "$FSTYP" in
> > > + "ext4")
> > > + local dev=$(findmnt -n -o SOURCE --target $file)
> > > +
> > > + # open code instead of _require_dumpe2fs cause we don't
> > > + # want to _notrun if dumpe2fs is not available
> > > + if [ -z "$DUMPE2FS_PROG" ]; then
> > > + echo "_set_default_fsx_avoid: dumpe2fs not found, skipping bigalloc check." >> $seqres.full
> > > + return
> > > + fi
> >
> > I hate to be the guy who says one thing and then another, but ...
> >
> > If we extended _get_file_block_size to report the ext4 bigalloc cluster
> > size, would that be sufficient to keep testing collapse/insert range?
> >
> > I guess the tricky part here is that bigalloc allows sub-cluster
> > mappings and we might not want to do all file IO testing in such big
> > units.
>
> Hmm, so maybe a better way is to just add a parameter like alloc_unit in
> fsx where we can pass the cluster_size to which INSERT/COLLAPSE range be
> aligned to. For now we can pass it explicitly in the tests if needed.
>
> I do plan on working on your suggestion of exposing alloc unit via
> statx(). Once we have that in the kernel, fsx can use that as well.
>
> If this approach sounds okay I can try to maybe send the whole "fixing
> of insert/collpase range in fsx" as a patchset separate from atomic
> writes.
Yeah, that sounds like a good longer-term solution to me. :)
--D
> >
> > > +
> > > + $DUMPE2FS_PROG -h $dev 2>&1 | grep -q bigalloc && {
> > > + export FSX_AVOID+=" -I -C"
> >
> > No need to export FSX_AVOID to subprocesses.
> >
> > --D
>
> Got it, will fix. Thanks for review!
>
>
> Regards,
> ojaswin
> >
> > > + }
> > > + ;;
> > > + # Add other filesystem types here as needed
> > > + *)
> > > + ;;
> > > + esac
> > > +}
> > > +
> > > _run_fsx()
> > > {
> > > echo "fsx $*"
> > > local args=`echo $@ | sed -e "s/ BSIZE / $bsize /g" -e "s/ PSIZE / $psize /g"`
> > > +
> > > + _set_default_fsx_avoid $testfile
> > > +
> > > set -- $FSX_PROG $args $FSX_AVOID $TEST_DIR/junk
> > > echo "$@" >>$seqres.full
> > > rm -f $TEST_DIR/junk
> > > --
> > > 2.49.0
> > >
> > >
>
next prev parent reply other threads:[~2025-07-23 14:50 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-12 14:12 [PATCH v3 00/13] Add more tests for multi fs block atomic writes Ojaswin Mujoo
2025-07-12 14:12 ` [PATCH v3 01/13] common/rc: Add _min() and _max() helpers Ojaswin Mujoo
2025-07-17 15:02 ` Darrick J. Wong
2025-07-12 14:12 ` [PATCH v3 02/13] common/rc: Fix fsx for ext4 with bigalloc Ojaswin Mujoo
2025-07-17 16:11 ` Darrick J. Wong
2025-07-22 9:53 ` Ojaswin Mujoo
2025-07-23 14:50 ` Darrick J. Wong [this message]
2025-07-12 14:12 ` [PATCH v3 03/13] common/rc: Add a helper to run fsx on a given file Ojaswin Mujoo
2025-07-12 14:12 ` [PATCH v3 04/13] ltp/fsx.c: Add atomic writes support to fsx Ojaswin Mujoo
2025-07-17 16:17 ` Darrick J. Wong
2025-07-22 9:59 ` Ojaswin Mujoo
2025-07-23 14:57 ` Darrick J. Wong
2025-07-12 14:12 ` [PATCH v3 05/13] generic/1226: Add atomic write test using fio crc check verifier Ojaswin Mujoo
2025-07-17 13:00 ` John Garry
2025-07-17 13:52 ` Ojaswin Mujoo
2025-07-17 14:06 ` John Garry
2025-07-22 8:47 ` Ojaswin Mujoo
2025-07-23 11:33 ` John Garry
2025-07-23 13:51 ` Ojaswin Mujoo
2025-07-23 16:25 ` John Garry
2025-07-25 6:27 ` Ojaswin Mujoo
2025-07-25 8:14 ` John Garry
2025-07-28 6:43 ` Ojaswin Mujoo
2025-07-28 9:09 ` John Garry
2025-07-28 13:35 ` Ojaswin Mujoo
2025-07-28 14:00 ` John Garry
2025-07-29 6:11 ` Ojaswin Mujoo
2025-07-29 14:45 ` Darrick J. Wong
2025-07-31 4:18 ` Ojaswin Mujoo
2025-07-31 7:58 ` John Garry
2025-08-01 6:41 ` Ojaswin Mujoo
2025-08-01 8:23 ` John Garry
2025-08-02 6:49 ` Ojaswin Mujoo
2025-08-04 7:12 ` John Garry
2025-08-08 6:00 ` Ojaswin Mujoo
2025-07-12 14:12 ` [PATCH v3 06/13] generic/1227: Add atomic write test using fio verify on file mixed mappings Ojaswin Mujoo
2025-07-17 16:32 ` Darrick J. Wong
2025-07-28 8:58 ` Zorro Lang
2025-07-28 9:27 ` Ojaswin Mujoo
2025-07-12 14:12 ` [PATCH v3 07/13] generic/1228: Add atomic write multi-fsblock O_[D]SYNC tests Ojaswin Mujoo
2025-07-17 16:35 ` Darrick J. Wong
2025-07-23 13:53 ` Ojaswin Mujoo
2025-07-23 14:54 ` Darrick J. Wong
2025-08-10 9:41 ` Ojaswin Mujoo
2025-07-12 14:12 ` [PATCH v3 08/13] generic/1229: Stress fsx with atomic writes enabled Ojaswin Mujoo
2025-07-17 16:22 ` Darrick J. Wong
2025-07-23 6:30 ` Ojaswin Mujoo
2025-07-23 14:56 ` Darrick J. Wong
2025-07-12 14:12 ` [PATCH v3 09/13] generic/1230: Add sudden shutdown tests for multi block atomic writes Ojaswin Mujoo
2025-07-29 19:49 ` Darrick J. Wong
2025-07-12 14:12 ` [PATCH v3 10/13] ext4/061: Atomic writes stress test for bigalloc using fio crc verifier Ojaswin Mujoo
2025-07-29 19:47 ` Darrick J. Wong
2025-07-30 13:56 ` Ojaswin Mujoo
2025-07-12 14:12 ` [PATCH v3 11/13] ext4/062: Atomic writes test for bigalloc using fio crc verifier on multiple files Ojaswin Mujoo
2025-07-29 19:44 ` Darrick J. Wong
2025-07-12 14:12 ` [PATCH v3 12/13] ext4/063: Atomic write test for extent split across leaf nodes Ojaswin Mujoo
2025-07-29 19:41 ` Darrick J. Wong
2025-07-30 14:06 ` Ojaswin Mujoo
2025-07-12 14:12 ` [PATCH v3 13/13] ext4/064: Add atomic write tests for journal credit calculation Ojaswin Mujoo
2025-07-29 19:36 ` Darrick J. Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250723145021.GM2672039@frogsfrogsfrogs \
--to=djwong@kernel.org \
--cc=fstests@vger.kernel.org \
--cc=john.g.garry@oracle.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=ojaswin@linux.ibm.com \
--cc=ritesh.list@gmail.com \
--cc=tytso@mit.edu \
--cc=zlang@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox