]> www.infradead.org Git - users/hch/blktests.git/commitdiff
zbd/005: Enable zonemode=zbd when zone capacity is less than zone size
authorShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Tue, 28 Jul 2020 10:14:51 +0000 (19:14 +0900)
committerOmar Sandoval <osandov@fb.com>
Tue, 4 Aug 2020 20:56:14 +0000 (13:56 -0700)
The test case zbd/005 runs fio to issue sequential write requests with
high queue depth. This workload does not require zonemode=zbd for zones
with zone capacity same as zone length. However, when the zone has
smaller zone capacity than zone size, it issues write beyond zone
capacity and triggers write errors.

To allow fio skipping the writes beyond zone capacity, specify the option
zonemode=zbd to fio when the test target zone has zone capacity smaller
than zone size.

Also remove unused sysfs access in the test case.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
tests/zbd/005

index 65546a6f4ba3ced8a68a252759ceaa7de3feccd7..1e8962c73f07b04c2904f7ecb3c2ff796f32b91c 100755 (executable)
@@ -28,15 +28,21 @@ cleanup_fallback_device() {
 test_device() {
        local -i zone_idx
        local -i offset
+       local zbdmode=""
 
        echo "Running ${TEST_NAME}"
 
-       _get_sysfs_variable "${TEST_DEV}" || return $?
        _get_blkzone_report "${TEST_DEV}" || return $?
 
        zone_idx=$(_find_first_sequential_zone) || return $?
        offset=$((ZONE_STARTS[zone_idx] * 512))
 
+       # If the test target zone has smaller zone capacity than zone size,
+       # enable zonemode=zbd to have fio handle the zone capacity limit.
+       if ((ZONE_CAPS[zone_idx] != ZONE_LENGTHS[zone_idx])); then
+               zbdmode="--zonemode=zbd"
+       fi
+
        blkzone reset -o "${ZONE_STARTS[zone_idx]}" "${TEST_DEV}"
 
        _test_dev_queue_set scheduler deadline
@@ -45,10 +51,9 @@ test_device() {
        FIO_PERF_FIELDS=("write io" "write iops")
        _fio_perf --filename="${TEST_DEV}" --name zbdwo --rw=write --direct=1 \
                  --ioengine=libaio --iodepth=128 --bs=256k \
-                 --offset="${offset}"
+                 --offset="${offset}" ${zbdmode}
 
        _put_blkzone_report
-       _put_sysfs_variable
 
        echo "Test complete"
 }