Re: [PATCH v2 1/2] common: introduce zone_capacity() to return a zone capacity

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Thu, Sep 29, 2022 at 01:19:24PM +0900, Naohiro Aota wrote:
> Introduce _zone_capacity() to return a zone capacity of the given address
> in the given device (optional). Move _filter_blkzone_report() for it, and
> rewrite btrfs/237 with it.
> 
> Signed-off-by: Naohiro Aota <naohiro.aota@xxxxxxx>
> ---
>  common/filter   | 13 -------------
>  common/zoned    | 28 ++++++++++++++++++++++++++++
>  tests/btrfs/237 |  8 ++------
>  3 files changed, 30 insertions(+), 19 deletions(-)
>  create mode 100644 common/zoned
> 
> diff --git a/common/filter b/common/filter
> index 28dea64662dc..ac5c93422567 100644
> --- a/common/filter
> +++ b/common/filter
> @@ -651,18 +651,5 @@ _filter_bash()
>  	sed -e "s/^bash: line 1: /bash: /"
>  }
>  
> -#
> -# blkzone report added zone capacity to be printed from v2.37.
> -# This filter will add an extra column 'cap' with the same value of
> -# 'len'(zone size) for blkzone version < 2.37
> -#
> -# Before: start: 0x000100000, len 0x040000, wptr 0x000000 ..
> -# After: start: 0x000100000, len 0x040000, cap 0x040000, wptr 0x000000 ..
> -_filter_blkzone_report()
> -{
> -	$AWK_PROG -F "," 'BEGIN{OFS=",";} $3 !~ /cap/ {$2=$2","$2;} {print;}' |\
> -	sed -e 's/len/cap/2'
> -}
> -
>  # make sure this script returns success
>  /bin/true
> diff --git a/common/zoned b/common/zoned
> new file mode 100644
> index 000000000000..d1bc60f784a1
> --- /dev/null
> +++ b/common/zoned
> @@ -0,0 +1,28 @@
> +#
> +# Common zoned block device specific functions
> +#
> +
> +#
> +# blkzone report added zone capacity to be printed from v2.37.
> +# This filter will add an extra column 'cap' with the same value of
> +# 'len'(zone size) for blkzone version < 2.37
> +#
> +# Before: start: 0x000100000, len 0x040000, wptr 0x000000 ..
> +# After: start: 0x000100000, len 0x040000, cap 0x040000, wptr 0x000000 ..
> +_filter_blkzone_report()
> +{
> +	$AWK_PROG -F "," 'BEGIN{OFS=",";} $3 !~ /cap/ {$2=$2","$2;} {print;}' |\
> +	sed -e 's/len/cap/2'
> +}
> +
> +_zone_capacity() {
> +    local phy=$1
> +    local dev=$2
> +
> +    [ -z "$dev" ] && dev=$SCRATCH_DEV
> +
> +    size=$($BLKZONE_PROG report -o $phy -l 1 $dev |\
> +	       _filter_blkzone_report |\
> +	       grep -Po "cap 0x[[:xdigit:]]+" | cut -d ' ' -f 2)
> +    echo $((size << 9))
> +}
> diff --git a/tests/btrfs/237 b/tests/btrfs/237
> index bc6522e2200a..101094b5ce70 100755
> --- a/tests/btrfs/237
> +++ b/tests/btrfs/237
> @@ -13,7 +13,7 @@
>  _begin_fstest auto quick zone balance
>  
>  # Import common functions.
> -. ./common/filter
> +. ./common/zbd

I'm a little surprised this line doesn't report error :) Anyway, it should be
common/zoned as above. Others look good to me. With this fix, you can add:

Reviewed-by: Zorro Lang <zlang@xxxxxxxxxx>

>  
>  # real QA test starts here
>  
> @@ -56,11 +56,7 @@ fi
>  
>  start_data_bg_phy=$(get_data_bg_physical)
>  start_data_bg_phy=$((start_data_bg_phy >> 9))
> -
> -size=$($BLKZONE_PROG report -o $start_data_bg_phy -l 1 $SCRATCH_DEV |\
> -	_filter_blkzone_report |\
> -	grep -Po "cap 0x[[:xdigit:]]+" | cut -d ' ' -f 2)
> -size=$((size << 9))
> +size=$(_zone_capacity $start_data_bg_phy)
>  
>  reclaim_threshold=75
>  echo $reclaim_threshold > /sys/fs/btrfs/"$uuid"/bg_reclaim_threshold
> -- 
> 2.37.3
> 




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux