On Jun 04, 2021 / 08:03, Niklas Cassel wrote: > On Fri, Jun 04, 2021 at 02:33:49PM +0900, Shin'ichiro Kawasaki wrote: > > Recent commit d2f442bc0bd5 ("ioengines: add get_max_open_zones zoned > > block device operation") modified fio to compare --max_open_zones option > > value and max_open_zones reported by the device. The device limit is > > fetched through sysfs or through an ioengine specific implementation. > > > > The test script currently try to fetch the max open zones limit using > > libzbc tools or sg_inq. If either of these fail, default value 128 is > > supplied. This default value can be too high when the test script is > > run for certain zoned block devices, and can therefore result in fio > > error and test case failure. > > > > To avoid the failure, modify the default value used in the test script > > from 128 to 0. With this, --max_open_zones=0 is passed to fio, and it > > makes fio use the max_open_zones reported by the device. Also add > > comments to describe why the test script gets max_open_zones with tools. > > > > Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> > > --- > > t/zbd/functions | 15 ++++++++++++--- > > 1 file changed, 12 insertions(+), 3 deletions(-) > > > > diff --git a/t/zbd/functions b/t/zbd/functions > > index 40ffe1de..06973f79 100644 > > --- a/t/zbd/functions > > +++ b/t/zbd/functions > > @@ -173,15 +173,24 @@ last_online_zone() { > > fi > > } > > > > +# Get max_open_zones of SMR drives using sg_inq or libzbc tools. Two test cases > > +# 31 and 32 use this max_open_zones value. The test case 31 uses max_open_zones > > +# to decide number of write target zones. The test case 32 passes max_open_zones > > +# value to fio with --max_open_zones option. Of note is that fio itself as the > > +# feature to get max_open_zones from the device through sysfs or ioengine > > has the feature? Oops. Thanks for the catch. > > > +# specific implementation. This max_open_zones fetch by test script is required > > +# in case 1) ioengine lacks max_open_zones fetch feature, 2) Linux kernel lacks > > +# zoned block device support, or 3) Linux kernel supports zoned block devices > > +# but lacks max_open_zones in sysfs. > > 1) ioengine lacks max_open_zones > makes it sound like that is something that is needed, > it is not, there is the oslib implementation. Indeed. > > I think that you can replace 1, 2, 3 with something simpler like: > > ... is required in case fio is running on an old Linux kernel version which > lacks max_open_zones in sysfs. > > Or if you want something more specific: > > ... is required in case fio is running on an old Linux kernel version which > lacks max_oper_zones in sysfs, or which lacks zbd support completely. Will reflect to v3. Thank you! -- Best Regards, Shin'ichiro Kawasaki