qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 00/13] hw/block/nvme: metadata and end-to-end data protection support
@ 2021-03-10  9:53 Klaus Jensen
  2021-03-10  9:53 ` [PATCH v5 01/13] hw/block/nvme: fix zone management receive reporting too many zones Klaus Jensen
                   ` (13 more replies)
  0 siblings, 14 replies; 22+ messages in thread
From: Klaus Jensen @ 2021-03-10  9:53 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Kevin Wolf, qemu-block, Klaus Jensen,
	Gollu Appalanaidu, Max Reitz, Keith Busch, Stefan Hajnoczi,
	Klaus Jensen

From: Klaus Jensen <k.jensen@samsung.com>

This is v5 of a series that adds support for metadata and end-to-end
data protection.

First, on the subject of metadata, in v1, support was restricted to
extended logical blocks, which was pretty trivial to implement, but
required special initialization and broke DULBE. In v2, metadata is
always stored continuously at the end of the underlying block device.
This has the advantage of not breaking DULBE since the data blocks
remains aligned and allows bdrv_block_status to be used to determinate
allocation status. It comes at the expense of complicating the extended
LBA emulation, but on the other hand it also gains support for metadata
transfered as a separate buffer.

The end-to-end data protection support blew up in terms of required
changes. This is due to the fact that a bunch of new commands has been
added to the device since v1 (zone append, compare, copy), and they all
require various special handling for protection information. If
potential reviewers would like it split up into multiple patches, each
adding pi support to one command, shout out.

Support for metadata and end-to-end data protection is all joint work
with Gollu Appalanaidu.

v5:
  * add a required fix for zone management receive when metadata is
    involved
  * add a couple of refactor patches for the zoned init code to make the
    format nvm patch more straight forward wrt. formatting of zoned
    namespaces.

v4:
  * promoted from RFC
  * moved most eedp additions to nvme-dif.{c,h}. (Keith)

v3:

  * added patch with Verify command
  * added patches for multiple LBA formats and Format NVM
  * changed NvmeSG to be a union (Keith)

Gollu Appalanaidu (1):
  hw/block/nvme: add verify command

Klaus Jensen (10):
  hw/block/nvme: fix zone management receive reporting too many zones
  hw/block/nvme: add metadata support
  hw/block/nvme: end-to-end data protection
  hw/block/nvme: add non-mdts command size limit for verify
  hw/block/nvme: prefer runtime helpers instead of device parameters
  hw/block/nvme: pull lba format initialization
  hw/block/nvme: parameterize nvme_ns_nlbas
  hw/block/nvme: remove invalid zone resource checks
  hw/block/nvme: move zoned constraints checks
  hw/block/nvme: split zone check/set geometry

Minwoo Im (2):
  hw/block/nvme: support multiple lba formats
  hw/block/nvme: add support for the format nvm command

 hw/block/nvme-dif.h   |   53 ++
 hw/block/nvme-ns.h    |   61 +-
 hw/block/nvme.h       |   34 ++
 include/block/nvme.h  |   29 +-
 hw/block/nvme-dif.c   |  508 +++++++++++++++++
 hw/block/nvme-ns.c    |  259 ++++++---
 hw/block/nvme.c       | 1267 +++++++++++++++++++++++++++++++++++++----
 hw/block/meson.build  |    2 +-
 hw/block/trace-events |   22 +-
 9 files changed, 2018 insertions(+), 217 deletions(-)
 create mode 100644 hw/block/nvme-dif.h
 create mode 100644 hw/block/nvme-dif.c

-- 
2.30.1



^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2021-03-16  7:35 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-10  9:53 [PATCH v5 00/13] hw/block/nvme: metadata and end-to-end data protection support Klaus Jensen
2021-03-10  9:53 ` [PATCH v5 01/13] hw/block/nvme: fix zone management receive reporting too many zones Klaus Jensen
2021-03-14 19:31   ` Dmitry Fomichev
2021-03-15 18:59     ` Klaus Jensen
2021-03-10  9:53 ` [PATCH v5 02/13] hw/block/nvme: add metadata support Klaus Jensen
2021-03-10  9:53 ` [PATCH v5 03/13] hw/block/nvme: end-to-end data protection Klaus Jensen
2021-03-10  9:53 ` [PATCH v5 04/13] hw/block/nvme: add verify command Klaus Jensen
2021-03-10  9:53 ` [PATCH v5 05/13] hw/block/nvme: add non-mdts command size limit for verify Klaus Jensen
2021-03-10  9:53 ` [PATCH v5 06/13] hw/block/nvme: support multiple lba formats Klaus Jensen
2021-03-10  9:53 ` [PATCH v5 07/13] hw/block/nvme: prefer runtime helpers instead of device parameters Klaus Jensen
2021-03-16  6:47   ` Minwoo Im
2021-03-10  9:53 ` [PATCH v5 08/13] hw/block/nvme: pull lba format initialization Klaus Jensen
2021-03-16  6:49   ` Minwoo Im
2021-03-10  9:53 ` [PATCH v5 09/13] hw/block/nvme: parameterize nvme_ns_nlbas Klaus Jensen
2021-03-16  6:53   ` Minwoo Im
2021-03-16  7:19     ` Klaus Jensen
2021-03-16  7:34       ` Minwoo Im
2021-03-10  9:53 ` [PATCH v5 10/13] hw/block/nvme: remove invalid zone resource checks Klaus Jensen
2021-03-10  9:53 ` [PATCH v5 11/13] hw/block/nvme: move zoned constraints checks Klaus Jensen
2021-03-10  9:53 ` [PATCH v5 12/13] hw/block/nvme: split zone check/set geometry Klaus Jensen
2021-03-10  9:53 ` [PATCH v5 13/13] hw/block/nvme: add support for the format nvm command Klaus Jensen
2021-03-15 22:23 ` [PATCH v5 00/13] hw/block/nvme: metadata and end-to-end data protection support Klaus Jensen

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).