On Fri, Jun 19, 2020 at 11:17:02AM -0700, Heiner Litz wrote: > > On Fri, Jun 19, 2020 at 11:08:26AM -0700, Heiner Litz wrote: > > > Hi Matias, > > > no, I am rather saying that the Linux kernel has a deficit or at least > > > is not a good fit for ZNS because it cannot enforce in-order delivery. > > > > FYI, the nvme protocol can't even enforce in-order delivery, so calling > > out linux for this is a moot point. > > How does it work in SPDK then? I had understood that SPDK supported > QD>1 for ZNS devices. > I am not saying that Linux is the only problem. The fact remains that > out of order delivery is not a good fit for an interface that requires > sequential writes. The nvme protocol is absoltely clear that multiple commands outstanding simultaneosly can be executed in any order. This is further made difficult if you're dispatching these commands across multiple queues. If SPDK is dispatching multiple commands and expecting them to execute in order, then they're doing it wrong. Further, you're not even guranteed the first write in a sequence will be successful. If you've already dispatched a subsequent write, and the first one fails, the second one may also fail when it's not at the wrong write pointer.