On Fri, 2022-10-21 at 15:34 +0900, Shin'ichiro Kawasaki wrote: > Recent fix of zonemode=zbd support for block size unaligned to zone size > unveiled that the test case #33 has two issues. > > First issue is test preparation. Before the fix, write was done to only > to the first zone due to a bug in zone selection which happens when > block size is not a divisor of zone size. Then, status of second zone > did not affect. After the fix, write count to the zones may vary if the > second zone has almost full status since the zone is skipped from write > target. Fix this by resetting the write target zones. > > Second issue is expected written data size. The test case checks that > the written data size is larger than the io_size option value. This > expectation was fine before the fix because data write was repeated in > do_io() and the limit was checked with io_issue_bytes_exceeded(), > which triggers loop break when written data is larger than io_size. > However, after the fix, the limit is checked with keep_running() in > thread_main(). According to code and block comment in keep_running(), > fio job terminates even when written data size is smaller than io_size > if the gap is smaller than maximum IO size. Then the expected written > data size is the largest multiple of block size smaller than or equal to > the io_size. This io_size check change resulted in the test case > failure. Avoid the failure by fixing the expected written data size > calculation. > > Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> LGTM Tested-by: Dmitry Fomichev <dmitry.fomichev@xxxxxxx> Reviewed-by: Dmitry Fomichev <dmitry.fomichev@xxxxxxx> > --- > t/zbd/test-zbd-support | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/t/zbd/test-zbd-support b/t/zbd/test-zbd-support > index cdc03f28..debe3763 100755 > --- a/t/zbd/test-zbd-support > +++ b/t/zbd/test-zbd-support > @@ -813,7 +813,8 @@ test33() { > local bs io_size size > local off capacity=0; > > - prep_write > + [ -n "$is_zbd" ] && reset_zone "$dev" -1 > + > off=$((first_sequential_zone_sector * 512)) > capacity=$(total_zone_capacity 1 $off $dev) > size=$((2 * zone_size)) > @@ -822,7 +823,7 @@ test33() { > run_fio_on_seq "$(ioengine "psync")" --iodepth=1 --rw=write \ > --size=$size --io_size=$io_size --bs=$bs \ > >> "${logfile}.${test_number}" 2>&1 || return $? > - check_written $(((io_size + bs - 1) / bs * bs)) || return $? > + check_written $((io_size / bs * bs)) || return $? > } > > # Write to sequential zones with a block size that is not a divisor of the