Re: [PATCH 0/3] zone-append support in aio and io-uring
From: Damien Le Moal
Date: Thu Jun 18 2020 - 21:03:42 EST
On 2020/06/19 5:04, Matias Bjørling wrote:
> On 18/06/2020 21.21, Kanchan Joshi wrote:
>> 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.
> Yep, please see Christoph's comment regarding adding the support to zonefs.
For the asynchronous processing of zone append in zonefs, we need to add
plumbing in the iomap code first. Since this is missing currently, zonefs can
only do synchronous/blocking zone append for now. Will be working on that, if we
can come up with a semantic that makes sense for posix system calls. zonefs is
not a posix compliant file system, so we are not strongly tied by posix
specifications. But we still want to make it as easy as possible to understand
and use by the user.
--
Damien Le Moal
Western Digital Research