Re: [PATCH 3/3] zbd: Ensure first I/O is write for random read/write to sequential zones

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

 



On 2020/04/13 17:33, Shin'ichiro Kawasaki wrote:
> In case read is chosen for the first random I/O for sequential write
> required zones, fio stops because no data can be read from the zones with
> empty status. Enforce to write at the first I/O to make sure data to read
> exists for the following read operations.
> 
> The unexpected fio stop symptom was observed with test case #30 of
> t/zbd/test-zbd-support. When the test case was run repeatedly resetting
> all zones with -r option, it often passes with too short run time.
> 
> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx>
> ---
>  zbd.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/zbd.c b/zbd.c
> index 0b0d4f40..abfa802c 100644
> --- a/zbd.c
> +++ b/zbd.c
> @@ -1348,6 +1348,16 @@ enum io_u_action zbd_adjust_block(struct thread_data *td, struct io_u *io_u)
>  	if (!zbd_zone_swr(zb))
>  		return io_u_accept;
>  
> +	/*
> +	 * In case read direction is chosen for the first random I/O, fio with
> +	 * zonemode=zbd stops because no data can be read from zoned block
> +	 * devices with all empty zones. Overwrite the first I/O direction as
> +	 * write to make sure data to read exists.
> +	 */
> +	if (td_rw(td) && !f->zbd_info->sectors_with_data
> +	    && !td->o.read_beyond_wp)
> +		io_u->ddir = DDIR_WRITE;
> +
>  	/*
>  	 * Accept the I/O offset for reads if reading beyond the write pointer
>  	 * is enabled.
> 

Looks OK to me.

Reviewed-by: Damien Le Moal <damien.lemoaal@xxxxxxx>


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