The test case #4 specifies zone size as block size to read a zone. For some devices, zone size is very large in GB order, then single pread64 system call can not complete the request. This makes the test case fail. To avoid the failure, keep the block size adequate. If zone size is too large, use logical_block_size * 256 as the block size. Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> --- t/zbd/test-zbd-support | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/t/zbd/test-zbd-support b/t/zbd/test-zbd-support index 5103c406..f9dc9001 100755 --- a/t/zbd/test-zbd-support +++ b/t/zbd/test-zbd-support @@ -310,7 +310,8 @@ test4() { off=$((first_sequential_zone_sector * 512 + 129 * zone_size)) size=$((zone_size)) [ -n "$is_zbd" ] && reset_zone "$dev" $((off / 512)) - opts+=("--name=$dev" "--filename=$dev" "--offset=$off" "--bs=$size") + opts+=("--name=$dev" "--filename=$dev" "--offset=$off") + opts+=(--bs="$(min $((logical_block_size * 256)) $size)") opts+=("--size=$size" "--thread=1" "--read_beyond_wp=1") opts+=("$(ioengine "psync")" "--rw=read" "--direct=1" "--disable_lat=1") opts+=("--zonemode=zbd" "--zonesize=${zone_size}") -- 2.31.1