Shinichiro, > -----Original Message----- > From: Shinichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> > Sent: Tuesday, December 29, 2020 12:43 AM > To: Dmitry Fomichev <Dmitry.Fomichev@xxxxxxx> > Cc: Jens Axboe <axboe@xxxxxxxxx>; fio@xxxxxxxxxxxxxxx; Aravind Ramesh > <Aravind.Ramesh@xxxxxxx>; Bart Van Assche <bvanassche@xxxxxxx>; > Naohiro Aota <Naohiro.Aota@xxxxxxx>; Niklas Cassel > <Niklas.Cassel@xxxxxxx>; Damien Le Moal <Damien.LeMoal@xxxxxxx> > Subject: Re: [PATCH v2 33/36] t/zbd: add test #54 to exercise ZBD verification > > On Dec 24, 2020 / 11:12, Dmitry Fomichev wrote: > > Add a new test case to perform 75/25 read/write workload with varying > > i/o size and verification on. It is very important to use a good random > > generator for this test. Setting experimental_verify=1 is required for > > this test to operate correctly. > > > > Signed-off-by: Dmitry Fomichev <dmitry.fomichev@xxxxxxx> > > --- > > t/zbd/test-zbd-support | 18 ++++++++++++++++++ > > 1 file changed, 18 insertions(+) > > > > diff --git a/t/zbd/test-zbd-support b/t/zbd/test-zbd-support > > index 0b8015df..94c92e26 100755 > > --- a/t/zbd/test-zbd-support > > +++ b/t/zbd/test-zbd-support > > @@ -1135,6 +1135,24 @@ test53() { > > return 1 > > } > > > > +# Test read/write mix with verify. > > +test54() { > > + require_zbd || return $SKIP_TESTCASE > > + require_seq_zones 8 || return $SKIP_TESTCASE > > + > > + run_fio --name=job --filename=${dev} --ioengine=libaio \ > > I think --ioengine=libaio should be $(ioengine "libaio"), or test-zbd-support > script run with -l option with sg node will fail. Thanks for pointing this out - yes, ioengine selection should be conditional. I am going to send the v3 of the patch series with this change and the other one that you discovered which is also related to libzbc ioengine. While looking at this, I've also found that libzbc ioengine doesn't work with null_blk devices. There is a very trivial fix in the ioengine code allowing libzbc block backend to pick up and handle i/o to null_blk provided that device zone capacity is the same as the zone size. I am going to enable this functionality in the v3 and to modify run-io-against-nullb script to have the -l (libzbc) option, similar to test-zbd-support script. Regards, Dmitry > > -- > Best Regards, > Shin'ichiro Kawasaki > > > + --time_based=1 --runtime=30s --continue_on_error=0 \ > > + --offset=$((first_sequential_zone_sector * 512)) \ > > + --size=$((8*zone_size)) --direct=1 --iodepth=1 \ > > + --rw=randrw:2 --rwmixwrite=25 --bsrange=4k-${zone_size} \ > > + --zonemode=zbd --zonesize=${zone_size} \ > > + --verify=crc32c --do_verify=1 --verify_backlog=2 \ > > + --experimental_verify=1 \ > > + --alloc-size=65536 --random_generator=tausworthe64 \ > > + ${job_var_opts[@]} --debug=zbd \ > > + >> "${logfile}.${test_number}" 2>&1 || return $? > > +} > > + > > tests=() > > dynamic_analyzer=() > > reset_all_zones= > > -- > > 2.28.0 > >