On May 26, 2022 / 20:18, Ankit Kumar wrote: > nvme-ns generic character devices currently do not support O_DIRECT flag. > Check for fio option for direct flag only if filetype is a block device. > > t/zbd skip test case #1 for character devices as don't require > direct I/O. > > Signed-off-by: Ankit Kumar <ankit.kumar@xxxxxxxxxxx> > --- > t/zbd/test-zbd-support | 3 ++- > zbd.c | 4 ++-- > 2 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/t/zbd/test-zbd-support b/t/zbd/test-zbd-support > index 7e2fff00..a1ec5684 100755 > --- a/t/zbd/test-zbd-support > +++ b/t/zbd/test-zbd-support > @@ -251,8 +251,9 @@ require_conv_zones() { > return 0 > } > > -# Check whether buffered writes are refused. > +# Check whether buffered writes are refused for regular block devices. > test1() { > + require_regular_block_dev || return $SKIP_TESTCASE Hmm, this change skips this test case for character devices, but it also skips for zoned block devices. Not good. This test case should not be skipped for block devices for both zoned and non-zoned. The word "regular" in the the helper function require_regular_block_dev() means "non-zoned". So it ensures that the test target device is a *non-zoned* block device. To skip this test case for character devices and run for block devices, a new helper function require_block_dev() will be needed. > run_fio --name=job1 --filename="$dev" --rw=write --direct=0 --bs=4K \ > "$(ioengine "psync")" --size="${zone_size}" --thread=1 \ > --zonemode=zbd --zonesize="${zone_size}" 2>&1 | > diff --git a/zbd.c b/zbd.c > index b1fd6b4b..627fb968 100644 > --- a/zbd.c > +++ b/zbd.c > @@ -466,7 +466,7 @@ out: > return res; > } > > -/* Verify whether direct I/O is used for all host-managed zoned drives. */ > +/* Verify whether direct I/O is used for all host-managed zoned block drives. */ > static bool zbd_using_direct_io(void) > { > struct thread_data *td; > @@ -477,7 +477,7 @@ static bool zbd_using_direct_io(void) > if (td->o.odirect || !(td->o.td_ddir & TD_DDIR_WRITE)) > continue; > for_each_file(td, f, j) { > - if (f->zbd_info && > + if (f->zbd_info && f->filetype == FIO_TYPE_BLOCK && > f->zbd_info->model == ZBD_HOST_MANAGED) > return false; > } > -- > 2.17.1 > -- Shin'ichiro Kawasaki