On Wed, 2021-07-28 at 19:47 +0900, Shin'ichiro Kawasaki wrote: > To exercise zone reset by trim workload, add the test case #58. As the > precondition, it fills several zones. After that, a trim job and a > write > job run in parallel for 30 seconds. The ratio of trim commands and > write > commands is controlled by --flow option. > > Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> Tested-by: Dmitry Fomichev <dmitry.fomichev@xxxxxxx> Reviewed-by: Dmitry Fomichev <dmitry.fomichev@xxxxxxx> > --- > t/zbd/test-zbd-support | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/t/zbd/test-zbd-support b/t/zbd/test-zbd-support > index 57e6d05e..5103c406 100755 > --- a/t/zbd/test-zbd-support > +++ b/t/zbd/test-zbd-support > @@ -1215,6 +1215,32 @@ test57() { > >> "${logfile}.${test_number}" 2>&1 || return $? > } > > +# Random writes and random trims to sequential write required zones > for 30s. > +test58() { > + local off size bs > + > + require_seq_zones 128 || return $SKIP_TESTCASE > + > + size=$((zone_size * 128)) > + bs="$(max $((zone_size / 128)) "$logical_block_size")" > + prep_write > + off=$((first_sequential_zone_sector * 512)) > + run_fio --zonemode=zbd --direct=1 --zonesize="${zone_size}" -- > thread=1 \ > + --filename="${dev}" --norandommap=1 \ > + --name="precondition" --rw=write "$(ioengine "psync")" \ > + --offset="${off}" --size=$((zone_size * 16)) --bs="${bs}" > \ > + "${job_var_opts[@]}" \ > + --name=wjob --wait_for="precondition" --rw=randwrite \ > + "$(ioengine "libaio")" --iodepth=8 \ > + --offset="${off}" --size="${size}" --bs="${bs}" \ > + --time_based --runtime=30s --flow=128 "${job_var_opts[@]}" > \ > + --name=trimjob --wait_for="precondition" --rw=randtrim \ > + "$(ioengine "psync")" \ > + --offset="${off}" --size="${size}" --bs="${zone_size}" \ > + --time_based --runtime=30s --flow=1 "${job_var_opts[@]}" \ > + >>"${logfile}.${test_number}" 2>&1 > +} > + > SECONDS=0 > tests=() > dynamic_analyzer=()