On Wed, Jan 22, 2025 at 10:38:34AM +0900, Shin'ichiro Kawasaki wrote: > Currently, fio checks the conditions of each zone within the IO range at > the job start. If a zone is in an open condition, it is added to the > write target zone array. If the number of write target zones exceeds the > max_open_zones or job_max_open_zones limit, fio terminates with the > error message "Number of open zones exceeds max_open_zones limit". This > check for zone condition and the resulting termination occur even when > the job does not perform a write operation, leading to confusion among > users. > > To avoid the confusion, skip the check when jobs do not perform write > operations. Additionally, print the message to inform that the > job_max_open_zones limit does not work for non-write jobs. > > Fixes: 954217b90191 ("zbd: Initialize open zones list referring zone status at fio start") > Fixes: 8ac768899d63 ("zbd: do not reset extra zones in open conditions") > 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 8a092cbe..ee095b1d 100644 > --- a/zbd.c > +++ b/zbd.c > @@ -1264,6 +1264,16 @@ int zbd_setup_files(struct thread_data *td) > return 1; > } > > + /* > + * If this job does not do write operations, skip open zone > + * condition check. > + */ > + if (!td_write(td)) { > + if (td->o.job_max_open_zones) > + log_info("'job_max_open_zones' is valid only for write jobs\n"); > + continue; > + } > + > /* > * The per job max open zones limit cannot be used without a > * global max open zones limit. (As the tracking of open zones > -- > 2.47.0 > Reviewed-by: Niklas Cassel <niklas.cassel@xxxxxxx>