Re: [PATCH 0/3] zone-append support in aio and io-uring

From: Kanchan Joshi
Date: Thu Jun 18 2020 - 15:24:20 EST


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.