[PATCH 0/8] zbd: support continue_on_error for zonemode=zbd
Shin'ichiro Kawasaki <[email protected]>
| Newsgroups | org.kernel.vger.fio |
|---|---|
| Message-ID | <[email protected]> |
When the continue_on_error options is specified, it is expected that the workload continues to run when non-critical errors happen. However, write workloads with zonemode=zbd option can not continue after errors, if the failed writes cause partial data write on the target device. This partial write creates write pointer gap between the device and fio, then the next write requests by fio will fail due to unaligned write command errors. This restriction results in undesirable test stops during long runs for SMR drives which can recover defect sectors. To avoid this restriction, this patch series introduces the new option recover_zbd_write_error. The first four patches prepare for it. The fifth patch introduces the option. The last three patches add test cases to confirm the behavior of the option. Shin'ichiro Kawasaki (8): oslib: blkzoned: add blkzoned_move_zone_wp() helper function ioengine: add move_zone_wp() callback engines/libzbc: implement move_zone_wp callback zbd: introduce zbd_move_zone_wp() zbd: add the recover_zbd_write_error option t/zbd: set badblocks related parameters in run-tests-against-nullb t/zbd: add the test cases to confirm continue_on_error option t/zbd: add run-tests-against-scsi_debug HOWTO.rst | 11 ++ engines/libzbc.c | 28 +++++ fio.1 | 9 ++ io_u.c | 5 + io_u.h | 3 +- ioengines.c | 2 +- ioengines.h | 4 +- options.c | 10 ++ oslib/blkzoned.h | 3 + oslib/linux-blkzoned.c | 29 +++++ server.h | 2 +- t/zbd/run-tests-against-nullb | 3 + t/zbd/run-tests-against-scsi_debug | 33 +++++ t/zbd/test-zbd-support | 185 +++++++++++++++++++++++++++++ thread_options.h | 2 + zbd.c | 162 ++++++++++++++++++++++++- zbd.h | 12 +- 17 files changed, 492 insertions(+), 11 deletions(-) create mode 100755 t/zbd/run-tests-against-scsi_debug -- 2.49.0