t/zbd: add test #54 to exercise ZBD verification
authorDmitry Fomichev <dmitry.fomichev@wdc.com>
Wed, 27 Jan 2021 04:19:42 +0000 (13:19 +0900)
committerJens Axboe <axboe@kernel.dk>
Fri, 29 Jan 2021 15:14:01 +0000 (08:14 -0700)
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@wdc.com>
Reviewed-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
t/zbd/test-zbd-support

index 0b8015df3a302b8ed7644e4a2bfe0986863f5964..0230f1af0fbb437ca2a593654f1e120331b66728 100755 (executable)
@@ -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")" \
+               --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=