Bart,
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.
We should. The common case is that the device reports an ATOMIC
TRANSFER LENGTH GRANULARITY matching the reported physical block
size. I.e. a logical block size of 512 bytes and a physical block
size of 4KB. In that scenario a write of a single logical block would
require read-modify-write of a physical block.
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?
That's correct. There are obviously things you can express in SCSI
that you can't in NVMe. And the other way around. Our intent is to
support both protocols.