ioengines: Add zoned block device operations
authorDamien Le Moal <damien.lemoal@wdc.com>
Tue, 7 Apr 2020 01:58:58 +0000 (10:58 +0900)
committerJens Axboe <axboe@kernel.dk>
Tue, 7 Apr 2020 20:47:03 +0000 (14:47 -0600)
commit6c5b11d3d31fc6a9ae6ba8602ffc03e729476f57
treeea4f95976b3dc43ac10f1de6bbbe0b90a5752c22
parentb76949618d557bd63181245aa522ead9b92d274b
ioengines: Add zoned block device operations

Define three new IO engines operations: zoned model discovery, zone
information report and zone write pointer reset. These allow an
ioengine to provide special implementation of these operations if the
system does not support them natively through system calls or on Linux
to replace the default Linux blkzoned.h ioctl based generic
implementation in oslib/linux-blkzoned.c.

FIO internal and external ioengines using direct device access
(e.g. Linux SG) or OS specific IO engines can provide an implementation
of these method to enabled zoned block device zonemode=zbd workloads.

On Linux, the IO engine zone operations have precedence over the
default zone operation implementation in oslib/linux-blkzoned.c.

This patch also increments FIO_IOOPS_VERSION to 26 and adds a
skeleton implementation of the new ioengine operations in
engines/skeleton_external.c.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
engines/skeleton_external.c
ioengines.h
zbd.c