[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 0/9] hw/block/nvme: zoned namespace command set
From: |
Klaus Jensen |
Subject: |
[PATCH v3 0/9] hw/block/nvme: zoned namespace command set |
Date: |
Wed, 14 Oct 2020 13:31:13 +0200 |
From: Klaus Jensen <k.jensen@samsung.com>
Updated version of my proposal.
Based-on: <20201014084324.333774-1-its@irrelevant.dk>
Changes for v3
~~~~~~~~~~~~~~
* Rebased on nvme-next with "[PATCH v2] hw/block/nvme: add dulbe
support" applied.
* "hw/block/nvme: add support for dulbe and block utilization tracking"
- Dropped from this series. This series instead builds on the
support for DULBE that I added in "[PATCH v2] hw/block/nvme: add
dulbe support", previously posted.
* "hw/block/nvme: add the zone management send command"
- Use asynchronous discards.
* "hw/block/nvme: add basic read/write for zoned namespaces"
* "hw/block/nvme: add the zone management receive command"
* "hw/block/nvme: add the zone management send command"
* "hw/block/nvme: add the zone append command"
* "hw/block/nvme: track and enforce zone resources"
* "hw/block/nvme: allow open to close zone transitions by controller"
- In compliance with the concensus I dropped zone persistence
support from all patches.
Changes for v2
~~~~~~~~~~~~~~
* "hw/block/nvme: add support for dulbe and block utilization tracking"
- Factor out pstate init/load into separate functions.
- Fixed a stupid off-by-1 bug that would trigger when resetting the
last zone.
- I added a more formalized pstate file format that includes a
header. This is pretty similar to what is done in Dmitry's series,
but with fewer fields. The device parameters for nvme-ns are still
the "authoritative" ones, so if any parameters that influence LBA
size, number of zones, etc. do not match, an error indicating the
discrepancy will be produced. IIRC, Dmitry's version does the
same.
It is set up such that newer versions can load pstate files from
older versions. The file format header is not unlike a standard
nvme datastructure with reserved areas. This means that when
adding new command sets that require persistent state, it is not
needed to bump the version number, unless the header has to change
dramatically. This is demonstrated when the zoned namespace
command set support is added in "hw/block/nvme: add basic
read/write for zoned namespaces".
* "hw/block/nvme: add basic read/write for zoned namespaces"
- The device will now transition all opened zones to Closed on
"normal shutdown". You can force the "transition to Full" behavior
by killing QEMU from the monitor.
* "hw/block/nvme: add the zone append command"
- Slightly reordered the logic so a LBA Out of Range error is
returned before Invalid Field in Command for normal read/write
commands.
* "hw/block/nvme: support zone active excursions"
- Dropped. Optional and non-critical.
* "hw/block/nvme: support reset/finish recommended limits"
- Dropped. Optional and non-critical.
Gollu Appalanaidu (1):
hw/block/nvme: add commands supported and effects log page
Klaus Jensen (8):
hw/block/nvme: add uuid namespace parameter
hw/block/nvme: support namespace types
hw/block/nvme: add basic read/write for zoned namespaces
hw/block/nvme: add the zone management receive command
hw/block/nvme: add the zone management send command
hw/block/nvme: add the zone append command
hw/block/nvme: track and enforce zone resources
hw/block/nvme: allow open to close zone transitions by controller
docs/specs/nvme.txt | 17 +
hw/block/nvme-ns.h | 112 +++-
hw/block/nvme.h | 23 +
include/block/nvme.h | 216 ++++++-
block/nvme.c | 4 +-
hw/block/nvme-ns.c | 172 +++++-
hw/block/nvme.c | 1284 +++++++++++++++++++++++++++++++++++++++--
hw/block/trace-events | 27 +-
8 files changed, 1791 insertions(+), 64 deletions(-)
--
2.28.0
- [PATCH v3 0/9] hw/block/nvme: zoned namespace command set,
Klaus Jensen <=
- [PATCH v3 1/9] hw/block/nvme: add commands supported and effects log page, Klaus Jensen, 2020/10/14
- [PATCH v3 2/9] hw/block/nvme: add uuid namespace parameter, Klaus Jensen, 2020/10/14
- [PATCH v3 4/9] hw/block/nvme: add basic read/write for zoned namespaces, Klaus Jensen, 2020/10/14
- [PATCH v3 3/9] hw/block/nvme: support namespace types, Klaus Jensen, 2020/10/14
- [PATCH v3 6/9] hw/block/nvme: add the zone management send command, Klaus Jensen, 2020/10/14
- [PATCH v3 7/9] hw/block/nvme: add the zone append command, Klaus Jensen, 2020/10/14
- [PATCH v3 8/9] hw/block/nvme: track and enforce zone resources, Klaus Jensen, 2020/10/14
- [PATCH v3 9/9] hw/block/nvme: allow open to close zone transitions by controller, Klaus Jensen, 2020/10/14
- [PATCH v3 5/9] hw/block/nvme: add the zone management receive command, Klaus Jensen, 2020/10/14