Re: [PATCH v4 6/6] io_uring: add support for zone-append
From: Kanchan Joshi <hidden>
Date: 2020-09-07 07:02:48
Also in:
io-uring, linux-block, linux-fsdevel, lkml
From: Kanchan Joshi <hidden>
Date: 2020-09-07 07:02:48
Also in:
io-uring, linux-block, linux-fsdevel, lkml
On Fri, Aug 14, 2020 at 1:44 PM hch@infradead.org [off-list ref] wrote:
On Wed, Aug 05, 2020 at 07:35:28AM +0000, Damien Le Moal wrote:quoted
quoted
the write pointer. The only interesting addition is that we also want to report where we wrote. So I'd rather have RWF_REPORT_OFFSET or so.That works for me. But that rules out having the same interface for raw block devices since O_APPEND has no meaning in that case. So for raw block devices, it will have to be through zonefs. That works for me, and I think it was your idea all along. Can you confirm please ?Yes. I don't think think raw syscall level access to the zone append primitive makes sense. Either use zonefs for a file-like API, or use the NVMe pass through interface for 100% raw access.
But there are use-cases which benefit from supporting zone-append on raw block-dev path. Certain user-space log-structured/cow FS/DB will use the device that way. Aerospike is one example. Pass-through is synchronous, and we lose the ability to use io-uring. For async uring/aio to block-dev, file-pointer will not be moved to EoF, but that position was not very important anyway- as with this interface we expect many async appends outstanding, all with zone-start. Do you think RWF_APPEND | RWF_REPORT_OFFSET_DIRECT/INDIRECT is too bad for direct block-dev. Could you please suggest another way to go about it? -- Kanchan