Re: [PATCH 2/2] nvme: add emulation for zone-append

From: Javier Gonzalez
Date: Tue Aug 18 2020 - 14:04:35 EST


On 18.08.2020 17:50, Christoph Hellwig wrote:
On Tue, Aug 18, 2020 at 11:50:33AM +0200, Javier Gonzalez wrote:
I understand that the NVMe process was agitated and that the current ZNS
implementation in Linux relies in append support from the device
perspective. However, the current TP does allow for not implementing
append, and a number of customers are requiring the use of normal
writes, which we want to support.

The NVMe TPs allow for lots of things, but that doesn't mean we have
to support it.

Agree. As I replied to Keith, I am just interested in enabling the ZNS
models that come with append disabled.


Do you have any early suggestion on how you this patch should look like
to be upstreamable?

My position is that at this point in time we should not consider it.
Zone Append is the major feature in ZNS that solves the issue in ZAC/ZBC.
I want to see broad industry support for it instead of having to add more
code just for zone append emulation than actual current ZNS support. If
in a few years the market place has decided and has lots of drives
available in the consuer market or OEM channels we'll have to reconsider
and potentially merge Zone Append emulation. But my deep hope is that
this does not happen, as it sets us back 10 years in the standards of
zoned storage support again.

I understand that you want vendor alignment in the NVMe driver and I
agree. We are not pushing for a non-append model - you can see that we
are investing effort in implementing the append path in thee block layer
and io_uring and we will continue doing so as patches get merged.

This said, we do have some OEM models that do not implement append and I
would like them to be supported in Linux. As you know, new TPs are being
standardized now and the append emulation is the based for adding
support for this. I do not believe it is unreasonable to find a way to
add support for this SSDs.

If you completely close the door this approach, the alternative is
carrying off-tree patches to the several OEMs that use these devices.
This is not good for the zoned ecosystem nor for the future of Zone
Append.

Are you open to us doing some characterization and if the impact
to the fast path is not significant, moving ahead to a Zone Append
emulation like in SCSI? I will promise that we will remove this path if
requests for these devices terminate.