[PATCH v2 00/16] block atomic writes
John Garry
john.g.garry at oracle.com
Wed Jan 17 08:16:56 PST 2024
On 17/01/2024 15:02, Christoph Hellwig wrote:
> On Tue, Jan 16, 2024 at 11:35:47AM +0000, John Garry wrote:
>> As such, we then need to set atomic write unit max = min(queue max
>> segments, BIO_MAX_VECS) * LBS. That would mean atomic write unit max 256 *
>> 512 = 128K (for 512B LBS). For a DMA controller of max segments 64, for
>> example, then we would have 32K. These seem too low.
>
> I don't see how this would work if support multiple sectors.
>
>>
>> Alternative I'm thinking that we should just limit to 1x iovec always, and
>> then atomic write unit max = (min(queue max segments, BIO_MAX_VECS) - 1) *
>> PAGE_SIZE [ignoring first/last iovec contents]. It also makes support for
>> non-enterprise NVMe drives more straightforward. If someone wants, they can
>> introduce support for multi-iovec later, but it would prob require some
>> more iovec length/alignment rules.
>
> Supporting just a single iovec initially is fine with me, as extending
> that is pretty easy. Just talk to your potential users that they can
> live with it.
Yeah, any porting I know about has just been using aio with
IO_CMD_PWRITE, so would be ok
>
> I'd probably still advertise the limits even if it currently always is 1.
>
I suppose that we don't need any special rule until we support > 1, as
we cannot break anyone already using > 1 :)
Thanks,
John
More information about the Linux-nvme
mailing list