On Jul 17, 2020 / 02:01, Damien Le Moal wrote: > On 2020/07/15 15:41, Shin'ichiro Kawasaki wrote: > > From: Hans Holmberg <hans.holmberg@xxxxxxx> > > > > Add support for testing zoned block devices where zone capacity is less > > than zone size. If the test case runs sequential workloads or workloads > > with verify, use zone capacity instead of zone size to complete. > > > > To use zone capacity of the test target zones, introduce a helper > > function total_zone_capacity() which sums up zone capacity numbers of the > > test target zones. > > > > Signed-off-by: Hans Holmberg <hans.holmberg@xxxxxxx> > > Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> > > --- > > t/zbd/functions | 37 +++++++++++++++ > > t/zbd/test-zbd-support | 100 ++++++++++++++++++++++++++--------------- > > 2 files changed, 102 insertions(+), 35 deletions(-) > > > > diff --git a/t/zbd/functions b/t/zbd/functions > > index 344836c8..82d64f5c 100644 > > --- a/t/zbd/functions > > +++ b/t/zbd/functions > > @@ -84,6 +84,43 @@ first_sequential_zone() { > > fi > > } > > > > +# Reports the summed zone capacity of $1 number of zones starting from offset $2 > > +# on device $3. > > +total_zone_capacity() { > > + local nr_zones=$1 > > + local sector=$(($2 / 512)) > > + local dev=$3 > > + local capacity=0 num > > + local grep_str > > + > > + if [ -z "$is_zbd" ]; then > > + # For regular block devices, handle zone size as zone capacity. > > + echo $((zone_size * nr_zones)) > > + return > > + fi > > + > > + if [ -n "${blkzone}" ] && [ ! -n "${use_libzbc}" ]; then > > + if blkzone_reports_capacity "${dev}"; then > > + grep_str='cap \K[0-9a-zA-Z]*' > > + else > > + # If zone capacity is not reported, refer zone length. > > + grep_str='len \K[0-9a-zA-Z]*' > > + fi > > + while read num; do > > + capacity=$((capacity + num)) > > + done < <(${blkzone} report -c "$nr_zones" -o "$sector" "$dev" | > > + grep -Po "${grep_str}") > > Why the space in "< <" ? Why not "<<" ? "<()" is the bash syntax "process substitution". To separate it from redirect, a space is required between "<" and "<()". Other than this, I will reflect all of your comments to v3. Thank you for the valuable comments. -- Best Regards, Shin'ichiro Kawasaki