All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] common/btrfs: avoid reinitialization of unsupported profile array
@ 2023-01-11 10:58 David Disseldorp
  2023-02-07 10:00 ` Gabriel Niebler
  2023-02-09 15:11 ` Zorro Lang
  0 siblings, 2 replies; 3+ messages in thread
From: David Disseldorp @ 2023-01-11 10:58 UTC (permalink / raw)
  To: fstests; +Cc: David Disseldorp

The _btrfs_get_profile_configs() unsupported array doesn't change
between configs, so avoid reinitializing it on each loop iteration.

Signed-off-by: David Disseldorp <ddiss@suse.de>
---
 common/btrfs | 66 ++++++++++++++++++++++++++--------------------------
 1 file changed, 33 insertions(+), 33 deletions(-)

diff --git a/common/btrfs b/common/btrfs
index ee673a93..9531c914 100644
--- a/common/btrfs
+++ b/common/btrfs
@@ -201,6 +201,39 @@ _btrfs_get_profile_configs()
 		return
 	fi
 
+	local unsupported=()
+	if [ "$1" == "replace" ]; then
+		# We can't do replace with these profiles because they
+		# imply only one device ($SCRATCH_DEV), and we need to
+		# keep $SCRATCH_DEV around for _scratch_mount
+		# and _check_scratch_fs.
+		unsupported+=(
+			"dup"
+		)
+	elif [ "$1" == "replace-missing" ]; then
+		# We can't replace missing devices with these profiles
+		# because there isn't enough redundancy.
+		unsupported+=(
+			"single"
+			"dup"
+			"raid0"
+		)
+	fi
+
+	if _scratch_btrfs_is_zoned; then
+		# Zoned btrfs only supports SINGLE profile
+		unsupported+=(
+			"dup"
+			"raid0"
+			"raid1"
+			"raid1c3"
+			"raid1c4"
+			"raid10"
+			"raid5"
+			"raid6"
+		)
+	fi
+
 	if [ -z "$BTRFS_PROFILE_CONFIGS" ]; then
 		# Default configurations to test.
 		local configs=(
@@ -222,39 +255,6 @@ _btrfs_get_profile_configs()
 	for cfg in "${configs[@]}"; do
 		local supported=true
 		local profiles=(${cfg/:/ })
-		if [ "$1" == "replace" ]; then
-			# We can't do replace with these profiles because they
-			# imply only one device ($SCRATCH_DEV), and we need to
-			# keep $SCRATCH_DEV around for _scratch_mount
-			# and _check_scratch_fs.
-			local unsupported=(
-				"dup"
-			)
-		elif [ "$1" == "replace-missing" ]; then
-			# We can't replace missing devices with these profiles
-			# because there isn't enough redundancy.
-			local unsupported=(
-				"single"
-				"dup"
-				"raid0"
-			)
-		else
-			local unsupported=()
-		fi
-
-		if _scratch_btrfs_is_zoned; then
-			# Zoned btrfs only supports SINGLE profile
-			unsupported+=(
-				"dup"
-				"raid0"
-				"raid1"
-				"raid1c3"
-				"raid1c4"
-				"raid10"
-				"raid5"
-				"raid6"
-			)
-		fi
 
 		for unsupp in "${unsupported[@]}"; do
 			if [ "${profiles[0]}" == "$unsupp" -o "${profiles[1]}" == "$unsupp" ]; then
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] common/btrfs: avoid reinitialization of unsupported profile array
  2023-01-11 10:58 [PATCH] common/btrfs: avoid reinitialization of unsupported profile array David Disseldorp
@ 2023-02-07 10:00 ` Gabriel Niebler
  2023-02-09 15:11 ` Zorro Lang
  1 sibling, 0 replies; 3+ messages in thread
From: Gabriel Niebler @ 2023-02-07 10:00 UTC (permalink / raw)
  To: David Disseldorp, fstests

Am 11.01.23 um 11:58 schrieb David Disseldorp:
> The _btrfs_get_profile_configs() unsupported array doesn't change
> between configs, so avoid reinitializing it on each loop iteration.
> 
> Signed-off-by: David Disseldorp <ddiss@suse.de>
> ---
>   common/btrfs | 66 ++++++++++++++++++++++++++--------------------------
>   1 file changed, 33 insertions(+), 33 deletions(-)
> 
> diff --git a/common/btrfs b/common/btrfs
> index ee673a93..9531c914 100644
> --- a/common/btrfs
> +++ b/common/btrfs
> @@ -201,6 +201,39 @@ _btrfs_get_profile_configs()
>   		return
>   	fi
>   
> +	local unsupported=()
> +	if [ "$1" == "replace" ]; then
> +		# We can't do replace with these profiles because they
> +		# imply only one device ($SCRATCH_DEV), and we need to
> +		# keep $SCRATCH_DEV around for _scratch_mount
> +		# and _check_scratch_fs.
> +		unsupported+=(
> +			"dup"
> +		)
> +	elif [ "$1" == "replace-missing" ]; then
> +		# We can't replace missing devices with these profiles
> +		# because there isn't enough redundancy.
> +		unsupported+=(
> +			"single"
> +			"dup"
> +			"raid0"
> +		)
> +	fi
> +
> +	if _scratch_btrfs_is_zoned; then
> +		# Zoned btrfs only supports SINGLE profile
> +		unsupported+=(
> +			"dup"
> +			"raid0"
> +			"raid1"
> +			"raid1c3"
> +			"raid1c4"
> +			"raid10"
> +			"raid5"
> +			"raid6"
> +		)
> +	fi
> +
>   	if [ -z "$BTRFS_PROFILE_CONFIGS" ]; then
>   		# Default configurations to test.
>   		local configs=(
> @@ -222,39 +255,6 @@ _btrfs_get_profile_configs()
>   	for cfg in "${configs[@]}"; do
>   		local supported=true
>   		local profiles=(${cfg/:/ })
> -		if [ "$1" == "replace" ]; then
> -			# We can't do replace with these profiles because they
> -			# imply only one device ($SCRATCH_DEV), and we need to
> -			# keep $SCRATCH_DEV around for _scratch_mount
> -			# and _check_scratch_fs.
> -			local unsupported=(
> -				"dup"
> -			)
> -		elif [ "$1" == "replace-missing" ]; then
> -			# We can't replace missing devices with these profiles
> -			# because there isn't enough redundancy.
> -			local unsupported=(
> -				"single"
> -				"dup"
> -				"raid0"
> -			)
> -		else
> -			local unsupported=()
> -		fi
> -
> -		if _scratch_btrfs_is_zoned; then
> -			# Zoned btrfs only supports SINGLE profile
> -			unsupported+=(
> -				"dup"
> -				"raid0"
> -				"raid1"
> -				"raid1c3"
> -				"raid1c4"
> -				"raid10"
> -				"raid5"
> -				"raid6"
> -			)
> -		fi
>   
>   		for unsupp in "${unsupported[@]}"; do
>   			if [ "${profiles[0]}" == "$unsupp" -o "${profiles[1]}" == "$unsupp" ]; then

This seems like a good change.

It only makes sense and in my local testing it reduced btrfs test run 
time by 10-17 seconds overall.

Not a huge amount, but every little helps.

-- 
Gabriel Niebler (he/him/his)
Senior Full-Stack Web Developer

SUSE

gabriel.niebler@suse.com

www.suse.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] common/btrfs: avoid reinitialization of unsupported profile array
  2023-01-11 10:58 [PATCH] common/btrfs: avoid reinitialization of unsupported profile array David Disseldorp
  2023-02-07 10:00 ` Gabriel Niebler
@ 2023-02-09 15:11 ` Zorro Lang
  1 sibling, 0 replies; 3+ messages in thread
From: Zorro Lang @ 2023-02-09 15:11 UTC (permalink / raw)
  To: David Disseldorp; +Cc: fstests

On Wed, Jan 11, 2023 at 11:58:27AM +0100, David Disseldorp wrote:
> The _btrfs_get_profile_configs() unsupported array doesn't change
> between configs, so avoid reinitializing it on each loop iteration.
> 
> Signed-off-by: David Disseldorp <ddiss@suse.de>
> ---

Good to me,

Reviewed-by: Zorro Lang <zlang@redhat.com>

>  common/btrfs | 66 ++++++++++++++++++++++++++--------------------------
>  1 file changed, 33 insertions(+), 33 deletions(-)
> 
> diff --git a/common/btrfs b/common/btrfs
> index ee673a93..9531c914 100644
> --- a/common/btrfs
> +++ b/common/btrfs
> @@ -201,6 +201,39 @@ _btrfs_get_profile_configs()
>  		return
>  	fi
>  
> +	local unsupported=()
> +	if [ "$1" == "replace" ]; then
> +		# We can't do replace with these profiles because they
> +		# imply only one device ($SCRATCH_DEV), and we need to
> +		# keep $SCRATCH_DEV around for _scratch_mount
> +		# and _check_scratch_fs.
> +		unsupported+=(
> +			"dup"
> +		)
> +	elif [ "$1" == "replace-missing" ]; then
> +		# We can't replace missing devices with these profiles
> +		# because there isn't enough redundancy.
> +		unsupported+=(
> +			"single"
> +			"dup"
> +			"raid0"
> +		)
> +	fi
> +
> +	if _scratch_btrfs_is_zoned; then
> +		# Zoned btrfs only supports SINGLE profile
> +		unsupported+=(
> +			"dup"
> +			"raid0"
> +			"raid1"
> +			"raid1c3"
> +			"raid1c4"
> +			"raid10"
> +			"raid5"
> +			"raid6"
> +		)
> +	fi
> +
>  	if [ -z "$BTRFS_PROFILE_CONFIGS" ]; then
>  		# Default configurations to test.
>  		local configs=(
> @@ -222,39 +255,6 @@ _btrfs_get_profile_configs()
>  	for cfg in "${configs[@]}"; do
>  		local supported=true
>  		local profiles=(${cfg/:/ })
> -		if [ "$1" == "replace" ]; then
> -			# We can't do replace with these profiles because they
> -			# imply only one device ($SCRATCH_DEV), and we need to
> -			# keep $SCRATCH_DEV around for _scratch_mount
> -			# and _check_scratch_fs.
> -			local unsupported=(
> -				"dup"
> -			)
> -		elif [ "$1" == "replace-missing" ]; then
> -			# We can't replace missing devices with these profiles
> -			# because there isn't enough redundancy.
> -			local unsupported=(
> -				"single"
> -				"dup"
> -				"raid0"
> -			)
> -		else
> -			local unsupported=()
> -		fi
> -
> -		if _scratch_btrfs_is_zoned; then
> -			# Zoned btrfs only supports SINGLE profile
> -			unsupported+=(
> -				"dup"
> -				"raid0"
> -				"raid1"
> -				"raid1c3"
> -				"raid1c4"
> -				"raid10"
> -				"raid5"
> -				"raid6"
> -			)
> -		fi
>  
>  		for unsupp in "${unsupported[@]}"; do
>  			if [ "${profiles[0]}" == "$unsupp" -o "${profiles[1]}" == "$unsupp" ]; then
> -- 
> 2.35.3
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-02-09 15:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-11 10:58 [PATCH] common/btrfs: avoid reinitialization of unsupported profile array David Disseldorp
2023-02-07 10:00 ` Gabriel Niebler
2023-02-09 15:11 ` 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.