[PATCH v3 15/15] nvme: Ensure atomic writes will be executed atomically
John Garry
john.g.garry at oracle.com
Mon Jan 29 01:36:38 PST 2024
On 29/01/2024 06:20, Christoph Hellwig wrote:
> On Thu, Jan 25, 2024 at 11:28:22AM +0000, John Garry wrote:
>> We have limits checks in XFS iomap and fops.c, but we would also want to
>> ensure that the the block layer is not doing anything it shouldn't be doing
>> after submit_bio_noacct(), like merging atomic write BIOs which straddle a
>> boundary or exceed atomic_max (if there were any merging).
>>
>> The SCSI standard already has provision for error'ing an atomic write
>> command which exceeds the target atomic write capabilities, while NVMe
>> doesn't.
>
> Can you get Oracle to propose this for NVMe? It always helps if these
> suggestions come from a large buyer of NVMe equipment.
I'll let Martin comment on that.
>
>> BTW, Christoph did mention that he would like to see this:
>> https://lore.kernel.org/linux-nvme/20231109153603.GA2188@lst.de/
>
> I can probably live with a sufficiently low-level block layer check.
That would probably be in blk_mq_dispatch_rq_list() for block drivers
with .queue_rq set, but I would need to check for a good place for
->queue_rqs . I can't imagine that we just want to inefficiently iter
all rqs at the ->queue_rqs call point.
However considering the nature of this change, it is not a good sign
that we/I need to check... I'd be more inclined to leave as is.
Thanks,
John
More information about the Linux-nvme
mailing list