Re: [PATCH 10/21] block: Add fops atomic write support

Bart Van Assche
2023-10-03T16:56:11Z

On 10/2/23 17:48, Martin K. Petersen wrote:
>
> Bart,
>
>> Are there any SCSI devices that we care about that report an ATOMIC
>> TRANSFER LENGTH GRANULARITY that is larger than a single logical
>> block?
>
> Yes.
>
> Note that code path used inside a storage device to guarantee atomicity
> of an entire I/O may be substantially different from the code path which
> only offers an incremental guarantee at a single logical or physical
> block level (to the extent that those guarantees are offered at all but
> that's a different kettle of fish).
>
>> I'm wondering whether we really have to support such devices.
>
> Yes.

Hi Martin,

I'm still wondering whether we really should support storage devices
that report an ATOMIC TRANSFER LENGTH GRANULARITY that is larger than
the logical block size. Is my understanding correct that the NVMe
specification makes it mandatory to support single logical block atomic
writes since the smallest value that can be reported as the AWUN
parameter is one logical block because this parameter is a 0's based
value? Is my understanding correct that SCSI devices that report an
ATOMIC TRANSFER LENGTH GRANULARITY that is larger than the logical block
size are not able to support the NVMe protocol?

From the NVMe specification section about the identify controller
response: "Atomic Write Unit Normal (AWUN): This field indicates the
size of the write operation guaranteed to be written atomically to the
NVM across all namespaces with any supported namespace format during
normal operation. This field is specified in logical blocks and is a 0’s
based value."

Thanks,

Bart.