From: Anand Jain <anand.jain@oracle.com>
To: Josef Bacik <josef@toxicpanda.com>,
fstests@vger.kernel.org, linux-btrfs@vger.kernel.org,
kernel-team@fb.com
Subject: Re: [PATCH v2 2/3] fstests: change how we test for supported raid configs
Date: Tue, 9 Apr 2024 11:33:01 +0800 [thread overview]
Message-ID: <dbf70ca4-c834-4c54-a1ed-de553d0ff338@oracle.com> (raw)
In-Reply-To: <86703e27bdb8c49950be6ea65ac228ece3ecc315.1712346845.git.josef@toxicpanda.com>
On 4/6/24 03:56, Josef Bacik wrote:
> In btrfs there's a few ways we limit the RAID profiles we'll use. We
> have the raid56 feature that can be compiled out, zoned devices don't
> support certain raid configurations, and you can manually set
> BTRFS_PROFILE_CONFIGS to limit what you're testing.
>
> To handle all of these different scenarios in the same way, update
> _btrfs_get_profile_configs() to check for RAID56 support and remove it
> if it is not there, and then add _require_btrfs_raid_type and
> _check_btrfs_raid_type to get all the settings and then check if the
> requested raid type is available.
>
> From there I've updated all of the existing tests that use
>
> _require_btrfs_fs_feature raid56
>
> to use
>
> _require_btrfs_raid_type <type>
>
> where appropriate.
>
> Signed-off-by: Josef Bacik <josef@toxicpanda.com>
> ---
> common/btrfs | 29 ++++++++++++++++++++++++-----
> tests/btrfs/125 | 2 +-
> tests/btrfs/148 | 3 ++-
> tests/btrfs/157 | 2 +-
> tests/btrfs/158 | 2 +-
> 5 files changed, 29 insertions(+), 9 deletions(-)
>
> diff --git a/common/btrfs b/common/btrfs
> index e1b29c61..845d01ea 100644
> --- a/common/btrfs
> +++ b/common/btrfs
> @@ -98,11 +98,6 @@ _require_btrfs_fs_feature()
> modprobe btrfs > /dev/null 2>&1
> [ -e /sys/fs/btrfs/features/$feat ] || \
> _notrun "Feature $feat not supported by the available btrfs version"
> -
> - if [ $feat = "raid56" ]; then
> - # Zoned btrfs only supports SINGLE profile
> - _require_non_zoned_device "${SCRATCH_DEV}"
> - fi
> }
>
> _require_btrfs_fs_sysfs()
> @@ -218,6 +213,8 @@ _btrfs_get_profile_configs()
> return
> fi
>
> + modprobe btrfs > /dev/null 2>&1
> +
> local unsupported=()
> if [ "$1" == "replace" ]; then
> # We can't do replace with these profiles because they
> @@ -237,6 +234,14 @@ _btrfs_get_profile_configs()
> )
> fi
>
> + if [ ! -e /sys/fs/btrfs/features/raid56 ]; then
> + # We don't have raid56 compiled in, remove them
> + unsupported+=(
> + "raid5"
> + "raid6"
> + )
> + fi
> +
> if _scratch_btrfs_is_zoned; then
> # Zoned btrfs only supports SINGLE profile
> unsupported+=(
> @@ -792,3 +797,17 @@ _has_btrfs_sysfs_feature_attr()
>
> test -e /sys/fs/btrfs/features/$feature_attr
> }
> +
> +_check_btrfs_raid_type()
> +{
> + _btrfs_get_profile_configs
> + if [[ ! "${_btrfs_profile_configs[@]}" =~ "$1" ]]; then
> + return 1
> + fi
> + return 0
> +}
> +
> +_require_btrfs_raid_type()
> +{
> + _check_btrfs_raid_type $1 || _notrun "$1 isn't supported by the profile config"
> +}
We also call notrun for zoned devices.
I suggest tweaking the notrun message to:
_notrun "$1 isn't supported by the profile config or scratch device"
I have made this change and applied it.
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Thanks, Anand
> diff --git a/tests/btrfs/125 b/tests/btrfs/125
> index 1b6e5d78..d957c139 100755
> --- a/tests/btrfs/125
> +++ b/tests/btrfs/125
> @@ -41,7 +41,7 @@ _supported_fs btrfs
> _require_scratch_dev_pool 3
> _test_unmount
> _require_btrfs_forget_or_module_loadable
> -_require_btrfs_fs_feature raid56
> +_require_btrfs_raid_type raid5
>
> _scratch_dev_pool_get 3
>
> diff --git a/tests/btrfs/148 b/tests/btrfs/148
> index 65a26292..9bbcd8e9 100755
> --- a/tests/btrfs/148
> +++ b/tests/btrfs/148
> @@ -17,7 +17,8 @@ _supported_fs btrfs
> _require_scratch
> _require_scratch_dev_pool 4
> _require_odirect
> -_require_btrfs_fs_feature raid56
> +_require_btrfs_raid_type raid5
> +_require_btrfs_raid_type raid6
>
> _scratch_dev_pool_get 4
>
> diff --git a/tests/btrfs/157 b/tests/btrfs/157
> index 022db511..8441a786 100755
> --- a/tests/btrfs/157
> +++ b/tests/btrfs/157
> @@ -32,7 +32,7 @@ _begin_fstest auto quick raid read_repair
> _supported_fs btrfs
> _require_scratch_dev_pool 4
> _require_btrfs_command inspect-internal dump-tree
> -_require_btrfs_fs_feature raid56
> +_require_btrfs_raid_type raid6
>
> get_physical()
> {
> diff --git a/tests/btrfs/158 b/tests/btrfs/158
> index aa85835a..cd4f604c 100755
> --- a/tests/btrfs/158
> +++ b/tests/btrfs/158
> @@ -24,7 +24,7 @@ _begin_fstest auto quick raid scrub
> _supported_fs btrfs
> _require_scratch_dev_pool 4
> _require_btrfs_command inspect-internal dump-tree
> -_require_btrfs_fs_feature raid56
> +_require_btrfs_raid_type raid5
>
> get_physical()
> {
next prev parent reply other threads:[~2024-04-09 3:33 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-05 19:56 [PATCH v2 0/3] fstests: various RAID56 related fixes for btrfs Josef Bacik
2024-04-05 19:56 ` [PATCH v2 1/3] fstests: change btrfs/197 and btrfs/198 golden output Josef Bacik
2024-04-09 1:02 ` Anand Jain
2024-04-05 19:56 ` [PATCH v2 2/3] fstests: change how we test for supported raid configs Josef Bacik
2024-04-09 3:33 ` Anand Jain [this message]
2024-04-05 19:56 ` [PATCH v2 3/3] fstests: update tests to skip unsupported raid profile types Josef Bacik
2024-04-09 3:40 ` Anand Jain
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=dbf70ca4-c834-4c54-a1ed-de553d0ff338@oracle.com \
--to=anand.jain@oracle.com \
--cc=fstests@vger.kernel.org \
--cc=josef@toxicpanda.com \
--cc=kernel-team@fb.com \
--cc=linux-btrfs@vger.kernel.org \
/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