[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH RFC v3 00/12] hw/block/nvme: metadata and end-to-end data protect
From: |
Klaus Jensen |
Subject: |
[PATCH RFC v3 00/12] hw/block/nvme: metadata and end-to-end data protection support |
Date: |
Mon, 15 Feb 2021 00:02:28 +0100 |
From: Klaus Jensen <k.jensen@samsung.com>
This is RFC v3 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.
The core of the series (metadata and eedp) is preceeded by a set of
patches that refactors mapping (yes, again) and tries to deal with the
qsg/iov duality mess (maybe also again?).
Support fro metadata and end-to-end data protection is all joint work
with Gollu Appalanaidu.
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 (9):
hw/block/nvme: remove redundant len member in compare context
hw/block/nvme: remove block accounting for write zeroes
hw/block/nvme: fix strerror printing
hw/block/nvme: try to deal with the iov/qsg duality
hw/block/nvme: remove the req dependency in map functions
hw/block/nvme: refactor nvme_dma
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
Minwoo Im (2):
hw/block/nvme: support multiple lba formats
hw/block/nvme: add support for the format nvm command
hw/block/nvme-ns.h | 47 +-
hw/block/nvme.h | 56 +-
include/block/nvme.h | 34 +-
hw/block/nvme-ns.c | 90 +-
hw/block/nvme.c | 2063 +++++++++++++++++++++++++++++++++++------
hw/block/trace-events | 25 +-
6 files changed, 2027 insertions(+), 288 deletions(-)
--
2.30.0
- [PATCH RFC v3 00/12] hw/block/nvme: metadata and end-to-end data protection support,
Klaus Jensen <=
- [PATCH RFC v3 02/12] hw/block/nvme: remove block accounting for write zeroes, Klaus Jensen, 2021/02/14
- [PATCH RFC v3 03/12] hw/block/nvme: fix strerror printing, Klaus Jensen, 2021/02/14
- [PATCH RFC v3 01/12] hw/block/nvme: remove redundant len member in compare context, Klaus Jensen, 2021/02/14
- [PATCH RFC v3 05/12] hw/block/nvme: remove the req dependency in map functions, Klaus Jensen, 2021/02/14
- [PATCH RFC v3 08/12] hw/block/nvme: end-to-end data protection, Klaus Jensen, 2021/02/14
- [PATCH RFC v3 06/12] hw/block/nvme: refactor nvme_dma, Klaus Jensen, 2021/02/14
- [PATCH RFC v3 10/12] hw/block/nvme: add non-mdts command size limit for verify, Klaus Jensen, 2021/02/14
- [PATCH RFC v3 07/12] hw/block/nvme: add metadata support, Klaus Jensen, 2021/02/14