From: Anand Jain <anand.jain@oracle.com>
To: Dave Chinner <david@fromorbit.com>
Cc: fstests@vger.kernel.org, linux-btrfs@vger.kernel.org, zlang@redhat.com
Subject: Re: [PATCH v1] fstests: add configuration option for executing post mkfs commands
Date: Thu, 28 Sep 2023 13:19:43 +0800 [thread overview]
Message-ID: <8bb7b134-a092-be52-63bf-d482f4b2f626@oracle.com> (raw)
In-Reply-To: <ZQelaoVEWPPQ1SD/@dread.disaster.area>
On 18/09/2023 09:18, Dave Chinner wrote:
> On Sun, Sep 17, 2023 at 07:58:11PM +0800, Anand Jain wrote:
>>
>>> In general, we've put filesystem specific post-mkfs commands inside
>>> the filesystem specific mkfs function.
>>>
>>>
>>> See _scratch_mkfs_xfs() for example. If we want to test TB scale
>>> scratch filesystems without requiring ENOSPC tests to fill TBs of
>>> disk space, we set LARGE_SCRATCH_DEV. This causes the mkfs function
>>> to do the post-mkfs creation of a hidden file that consumes all but
>>> 50GB of space via fallocate (by calling _setup_large_xfs_fs()).
>>> Hence filesystem filling tests don't spend forever filling the
>>> filesystem, and no code outside of XFS specific functions need to
>>> care that this hidden file exists....
>>>
>>> Given that the use case here is to issue filesystem specific
>>> commands rather than generic setup commands needed for all
>>> filesystems, I think it would be better to encapsulate it inside the
>>> btrfs specific mkfs implementation....
>>>
>>
>>
>> IMO, making it configurable and generic would also benefit other
>> filesystems. For instance, the XFS filesystem could set it to
>> 'POST_MKFS_CMD="xfs_admin -p"' or something similar ?
>
> That's basically no different to setting up the same filesystem
> config as using mkfs to do it. And a lot of the things that
> xfs_admin can change are always set on v5 format filesytsem and
> can't actually be modified. e.g. "-p" is such an option that is only
> ever added to old v4 filesystems, and even then it's been the mkfs
> default since 2013.
>
> As it is, it can't easily be used for things like LARGE_SCRATCH_DEV,
> because that requires multiple operations to create and internal
> fstests knowledge that large devices are being used.
>
>> The design choice here is to create an open and configurable command
>> variable. This is because we have several commands and options that
>> we need to test, and it wouldn't be practical to hardcode them.
>
> I'm not suggesting that you hard code them. I'm just saying that for
> filesystem specific post-mkfs changes prior to mounting the
> filesytsem fo rthe first time, the code should be located in the
> filesytsem specific mkfs functions. You *must* be doing filesystem
> specific things here because the filesystem hasn't been mounted, and
> that greatly limits the generic things one can do with such a
> command....
> > That is, you can still use environment variables to specify the
> -optional- post mkfs changes you want to test, but doing it from the
> internal _scratch_mkfs_$FSTYP() function allows the implementation
> to be specifically customised to whatever sort of complex operations
> you need to perform for that filesystem type without needing to care
> how that may impact other filesystems....
>
These changes have been implemented in the v2 that was sent out. Please
review and appreciate any comments you may have.
https://lore.kernel.org/linux-btrfs/dfc4cece-d809-4b5b-93f7-7251ba3a492a@gmx.com/T/#u
Thanks, Anand
> Cheers,
>
> Dave.
prev parent reply other threads:[~2023-09-28 5:20 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-27 9:04 [PATCH RFC] fstests: add configuration option for executing post mkfs commands Anand Jain
2023-09-14 15:07 ` [PATCH v1] " Anand Jain
2023-09-15 1:59 ` Dave Chinner
2023-09-17 11:58 ` Anand Jain
2023-09-18 1:18 ` Dave Chinner
2023-09-28 5:19 ` Anand Jain [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8bb7b134-a092-be52-63bf-d482f4b2f626@oracle.com \
--to=anand.jain@oracle.com \
--cc=david@fromorbit.com \
--cc=fstests@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--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