Re: [PATCH 02/13] zbd: write to closed zones on the devices with max_active_zones limit

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

 



On Fri, Jul 07, 2023 at 12:14:54PM +0900, Shin'ichiro Kawasaki wrote:
> Current fio implementation does not handle zones in closed condition as
> write target zones. When the device has max_active_zones limit, the
> write to other zones may cause errors by exceeding the limit, since the
> zones in closed condition consume the device resource for the
> max_active_zones limit.
> 
> To avoid the error, handle the zones in closed condition as write target
> in same manner as the zones in open condition when the device has the
> max_active_zones limit. At the job start, check each condition of the
> zones in the IO ranges and if it has closed condition, pass the zone
> to zbd_write_zones_get() in same manner as the zones in open condition.
> 
> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx>
> ---
>  zbd.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/zbd.c b/zbd.c
> index 9743b60e..3069ad1d 100644
> --- a/zbd.c
> +++ b/zbd.c
> @@ -1255,7 +1255,11 @@ int zbd_setup_files(struct thread_data *td)
>  		for (zi = f->min_zone; zi < f->max_zone; zi++) {
>  			z = &zbd->zone_info[zi];
>  			if (z->cond != ZBD_ZONE_COND_IMP_OPEN &&
> -			    z->cond != ZBD_ZONE_COND_EXP_OPEN)
> +			    z->cond != ZBD_ZONE_COND_EXP_OPEN &&
> +			    z->cond != ZBD_ZONE_COND_CLOSED)
> +				continue;
> +			if (!zbd->max_active_zones &&
> +			    z->cond == ZBD_ZONE_COND_CLOSED)
>  				continue;
>  			if (__zbd_write_zone_get(td, f, z))
>  				continue;
> -- 
> 2.40.1
> 

Reviewed-by: Niklas Cassel <niklas.cassel@xxxxxxx>



[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