linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Damien Le Moal <Damien.LeMoal@wdc.com>
Cc: Javier Gonzalez <javier@javigon.com>,
	Christoph Hellwig <hch@lst.de>,
	Kanchan Joshi <joshi.k@samsung.com>,
	"kbusch@kernel.org" <kbusch@kernel.org>,
	"axboe@kernel.dk" <axboe@kernel.dk>,
	"sagi@grimberg.me" <sagi@grimberg.me>,
	"linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Johannes Thumshirn <Johannes.Thumshirn@wdc.com>,
	Nitesh Shetty <nj.shetty@samsung.com>,
	SelvaKumar S <selvakuma.s1@samsung.com>
Subject: Re: [PATCH 2/2] nvme: add emulation for zone-append
Date: Wed, 19 Aug 2020 12:43:49 +0200	[thread overview]
Message-ID: <20200819104349.GA2697@lst.de> (raw)
In-Reply-To: <CY4PR04MB3751DE6CEB9C233BF7C9D86AE75D0@CY4PR04MB3751.namprd04.prod.outlook.com>

On Wed, Aug 19, 2020 at 09:14:13AM +0000, Damien Le Moal wrote:
> While defining a zone append command for SCSI/ZBC is possible (using sense data
> for returning the written offset), there is no way to define zone append for
> SATA/ZAC without entirely breaking the ATA command model. This is why we went
> after an emulation implementation instead of trying to standardized native
> commands. That implementation does not have any performance impact over regular
> writes *and* zone write locking does not in general degrade HDD write
> performance (only a few corner cases suffer from it). Comparing things equally,
> the same could be said of NVMe drives that do not have zone append native
> support: performance will be essentially the same using regular writes and
> emulated zone append. But mq-deadline and zone write locking will significantly
> lower performance for emulated zone append compared to a native zone append
> support by the drive.

And to summarize the most important point - Zone Append doesn't exist
in ZAC/ABC.  For people that spent the last years trying to make zoned
storage work, the lack of such a primite has been the major pain point.
That's why I came up with the Zone Append design in response to a
request for such an operation from another company that is now heavily
involved in both Linux development and hosting Linux VMs.  For ZAC and
ZBC the best we can do is to emulate the approach in the driver, but
for NVMe we can do it.  ZNS until just before the release had Zone
Append mandatory, and it did so for a very good reason.  While making
it optional allows OEMs to request drives without it, I fundamentally
think we should not support that in Linux and request vendors do
implement writes to zones the right way.

And just as some OEMs can request certain TPs or optional features to
be implemented, so can Linux.  Just to give an example from the zone
world - Linux requires uniform and power of two zone sizes, which in
ZAC and ZBC are not required.

  reply	other threads:[~2020-08-19 10:43 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20200818053247epcas5p262c5fd7e207dfa5145011c4329cf239d@epcas5p2.samsung.com>
2020-08-18  5:29 ` [PATCH 0/2] enable append-emulation for ZNS Kanchan Joshi
     [not found]   ` <CGME20200818053252epcas5p4ee61d64bba5f6a131105e40330984f5e@epcas5p4.samsung.com>
2020-08-18  5:29     ` [PATCH 1/2] nvme: set io-scheduler requirement " Kanchan Joshi
2020-08-18  7:11       ` Christoph Hellwig
2020-08-19  9:26         ` Kanchan Joshi
2020-08-19  9:38           ` Damien Le Moal
2020-08-19 10:31             ` Kanchan Joshi
2020-08-19 11:17               ` Damien Le Moal
2020-09-07  7:00                 ` Kanchan Joshi
2020-09-07  8:22                   ` Damien Le Moal
2020-09-07 11:23                     ` Kanchan Joshi
2020-09-07 11:37                       ` Damien Le Moal
2020-09-07 11:54                         ` Kanchan Joshi
2020-09-07 12:53                           ` Damien Le Moal
     [not found]   ` <CGME20200818053256epcas5p46d0b66b3702192eb6617c8bba334c15f@epcas5p4.samsung.com>
2020-08-18  5:29     ` [PATCH 2/2] nvme: add emulation for zone-append Kanchan Joshi
2020-08-18  7:12       ` Christoph Hellwig
2020-08-18  9:50         ` Javier Gonzalez
2020-08-18 10:51           ` Matias Bjørling
2020-08-18 18:11             ` Javier Gonzalez
2020-08-18 15:50           ` Christoph Hellwig
2020-08-18 18:04             ` Javier Gonzalez
2020-08-19  7:40               ` Christoph Hellwig
2020-08-19  8:33                 ` Javier Gonzalez
2020-08-19  9:14                   ` Damien Le Moal
2020-08-19 10:43                     ` Christoph Hellwig [this message]
2020-08-20  6:45                       ` Javier Gonzalez
2020-08-19 10:49                   ` Christoph Hellwig
2020-08-18 16:58           ` Keith Busch
2020-08-18 17:29             ` Javier Gonzalez
2020-08-18 17:39               ` Keith Busch
2020-08-18 18:13                 ` Javier Gonzalez
2020-08-19 19:11         ` David Fugate
2020-08-19 19:25           ` Jens Axboe
2020-08-19 21:54             ` David Fugate
2020-08-19 22:10               ` Keith Busch
2020-08-19 23:43                 ` David Fugate
2020-08-20  3:45                   ` Keith Busch
2020-08-20 23:26                     ` David Fugate
2020-08-20  5:51                   ` Christoph Hellwig
2020-08-20  6:37             ` Javier Gonzalez
2020-08-20  6:52               ` Christoph Hellwig
2020-08-20  8:03                 ` Javier Gonzalez
2020-08-19 21:42           ` Keith Busch
2020-08-20  7:37             ` Kanchan Joshi
2020-08-20  8:14               ` Javier Gonzalez
2020-08-20  5:29           ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200819104349.GA2697@lst.de \
    --to=hch@lst.de \
    --cc=Damien.LeMoal@wdc.com \
    --cc=Johannes.Thumshirn@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=javier@javigon.com \
    --cc=joshi.k@samsung.com \
    --cc=kbusch@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=nj.shetty@samsung.com \
    --cc=sagi@grimberg.me \
    --cc=selvakuma.s1@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).