Re: [PATCH 1/3] t/zbd: Use max_open_zones that fio fetched from device

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

 



On 2021/06/01 15:48, Shin'ichiro Kawasaki wrote:
> Recent commit d2f442bc0bd5 ("ioengines: add get_max_open_zones zoned
> block device operation") modified fio to compare --max_open_zoned option

s/max_open_zoned/max_open_zones

> 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.

If sysfs has the max_open_zones attribute file present, that value should be
retrieved first. libzbc and sg_inq should be used only if the sysfs attribute is
not present, that is, when running on older kernels.

> 
> To avoid the failure, modify the default value used in the test script
> from 128 to 0. With this, --max_open_zoned=0 is passed to fio, and it
> makes fio use the max_open_zones reported by the device.

Why pass anything at all since now fio will use the device reported limit by
default if the user does not specify anything ?

> 
> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx>
> ---
>  t/zbd/functions | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/t/zbd/functions b/t/zbd/functions
> index 40ffe1de..1a7ea970 100644
> --- a/t/zbd/functions
> +++ b/t/zbd/functions
> @@ -180,8 +180,8 @@ max_open_zones() {
>  	if ! ${sg_inq} -e --page=0xB6 --len=20 --hex "$dev" \
>  		 > /dev/null 2>&1; then
>  	    # Non scsi device such as null_blk can not return max open zones.

This comment is a little outdated since even nullblk now has a limit exposed
through sysfs (the limit may be 0 == no limit). See above comment. sysfs should
be the first thing to look at.

> -	    # Use default value.
> -	    echo 128
> +	    # Specify 0 to indicate fio to get max open zones from the device.
> +	    echo 0
>  	else
>  	    ${sg_inq} -e --page=0xB6 --len=20 --hex "$dev" | tail -1 |
>  		{
> 


-- 
Damien Le Moal
Western Digital Research




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux