On Thu, Jun 18, 2020 at 10:04:32AM +0200, Matias Bjørling wrote:
On 17/06/2020 19.23, Kanchan Joshi wrote:
This patchset enables issuing zone-append using aio and io-uring direct-io interface.
For aio, this introduces opcode IOCB_CMD_ZONE_APPEND. Application uses start LBA
of the zone to issue append. On completion 'res2' field is used to return
zone-relative offset.
For io-uring, this introduces three opcodes: IORING_OP_ZONE_APPEND/APPENDV/APPENDV_FIXED.
Since io_uring does not have aio-like res2, cqe->flags are repurposed to return zone-relative offset
Please provide a pointers to applications that are updated and ready
to take advantage of zone append.
I do not believe it's beneficial at this point to change the libaio
API, applications that would want to use this API, should anyway
switch to use io_uring.
Please also note that applications and libraries that want to take
advantage of zone append, can already use the zonefs file-system, as
it will use the zone append command when applicable.
AFAIK, zonefs uses append while serving synchronous I/O. And append bio
is waited upon synchronously. That maybe serving some purpose I do
not know currently. But it seems applications using zonefs file
abstraction will get benefitted if they could use the append themselves to
carry the I/O, asynchronously.