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

From: Javier Gonzalez
Date: Thu Aug 20 2020 - 02:37:25 EST


On 19.08.2020 13:25, Jens Axboe wrote:
On 8/19/20 12:11 PM, David Fugate wrote:
On Tue, 2020-08-18 at 07:12 +0000, Christoph Hellwig wrote:
On Tue, Aug 18, 2020 at 10:59:36AM +0530, Kanchan Joshi wrote:
If drive does not support zone-append natively, enable emulation
using
regular write.
Make emulated zone-append cmd write-lock the zone, preventing
concurrent append/write on the same zone.

I really don't think we should add this. ZNS and the Linux support
were all designed with Zone Append in mind, and then your company did
the nastiest possible move violating the normal NVMe procedures to
make
it optional. But that doesn't change the fact the Linux should keep
requiring it, especially with the amount of code added here and how
it
hooks in the fast path.

Intel does not support making *optional* NVMe spec features *required*
by the NVMe driver.

It's not required, the driver will function quite fine without it. If you
want to use ZNS it's required. The Linux driver thankfully doesn't need
any vendor to sign off on what it can or cannot do, or what features
are acceptable.

It's forgivable WDC's accepted contribution didn't work with other
vendors' devices choosing not to implement the optional Zone Append,
but it's not OK to reject contributions remedying this. Provided
there's no glaring technical issues, Samsung's contribution should be
accepted to maintain both spec compliance as well as vendor neutrality.

It's *always* ok to reject contributions, if those contributions cause
maintainability issues, unacceptable slowdowns, or whatever other issue
that the maintainers of said driver don't want to deal with. Any
contribution should be judged on merit, not based on political decisions
or opinions. Obviously this thread reeks of it.


I'll reply here, where the discussion diverges from this particular
patch.

We will stop pushing for this emulation. We have a couple of SSDs where
we disabled Append, we implemented support for them, and we wanted to
push the changes upstream. That's it. This is no politics not a
conspiracy against the current ZNS spec. We spent a lot of time working
on this spec and are actually doing a fair amount of work to support
Append other places in the stack. In any case, the fuzz stops here.

Javier