Message ID | b148b071bb11828f4a4c6600331cc8464a1895f1.1664419525.git.naohiro.aota@wdc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: test active zone tracking | expand |
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@wdc.com> > --- > 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@redhat.com> > > # 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 >
On Thu, Sep 29, 2022 at 01:15:07PM +0800, Zorro Lang wrote: > 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@wdc.com> > > --- > > 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: Oops, I forgot to run this one. Thank you for catching this. > Reviewed-by: Zorro Lang <zlang@redhat.com> > > > > > # 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 > > >
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 # 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
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@wdc.com> --- common/filter | 13 ------------- common/zoned | 28 ++++++++++++++++++++++++++++ tests/btrfs/237 | 8 ++------ 3 files changed, 30 insertions(+), 19 deletions(-) create mode 100644 common/zoned