[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 00/16] hw/block/nvme: zoned namespace command set
From: |
Klaus Jensen |
Subject: |
[PATCH 00/16] hw/block/nvme: zoned namespace command set |
Date: |
Thu, 24 Sep 2020 22:45:00 +0200 |
From: Klaus Jensen <k.jensen@samsung.com>
While going through a few rounds of reviews on Dmitry's series I have
also continued nursing my own implementation since originally posted. I
did not receive any reviews originally, since it depended on a lot of
preceding series, but now, with the staging of multiple namespaces on
nvme-next yesterday, I think it deserves another shot since it now
applies directly. The series consists of a couple of trivial patches
followed by the "hw/block/nvme: add support for dulbe and block
utilization tracking", "hw/block/nvme: support namespace types" and the
set of zoned namespace support patches.
A couple of points on how this defers from Dmitry et. al.'s series and
why I think this implementation deserves a review.
* Standard blockdev-based approach to persistent state. The
implementation uses a plain blockdev associated with the nvme-ns
device for storing state persistently. This same 'pstate' blockdev
is also used for logical block allocation tracking.
* Relies on automatic configuration of DLFEAT according to what the
underlying blockdev provides (i.e. BDRV_O_UNMAP for guaranteeing
zeroes on discarded blocks) for handling reads in the gaps between
write pointer, ZCAP and ZSZE. Issues discards for zone resets. This
removes the zero filling.
Finally, I wrote this. I am *NOT* saying that this somehow makes it
better, but as a maintainer, is a big deal to me since both series are
arguably a lot of code to maintain and support (both series are about
the same size). But - I am not the only maintainer, so if Keith (now
suddenly placed in the grim role as some sort of arbiter) signs off on
Dmitry's series, then so be it, I will rest my case.
I think we all want to see an implementation of zoned namespaces in QEMU
sooner rather than later, but I would lie if I said I wouldn't prefer
that it was this one.
Based-on: <20200922084533.1273962-1-its@irrelevant.dk>
Gollu Appalanaidu (1):
hw/block/nvme: add commands supported and effects log page
Klaus Jensen (15):
hw/block/nvme: add nsid to get/setfeat trace events
hw/block/nvme: add trace event for requests with non-zero status code
hw/block/nvme: make lba data size configurable
hw/block/nvme: reject io commands if only admin command set selected
hw/block/nvme: consolidate read, write and write zeroes
hw/block/nvme: add support for dulbe and block utilization tracking
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 transitions by controller
hw/block/nvme: support zone active excursions
hw/block/nvme: support reset/finish recommended limits
docs/specs/nvme.txt | 49 +-
hw/block/nvme-ns.h | 166 +++-
hw/block/nvme.h | 24 +
include/block/nvme.h | 262 ++++++-
block/nvme.c | 4 +-
hw/block/nvme-ns.c | 411 +++++++++-
hw/block/nvme.c | 1727 +++++++++++++++++++++++++++++++++++++++--
hw/block/trace-events | 50 +-
8 files changed, 2580 insertions(+), 113 deletions(-)
--
2.28.0
- [PATCH 00/16] hw/block/nvme: zoned namespace command set,
Klaus Jensen <=
- [PATCH 02/16] hw/block/nvme: add trace event for requests with non-zero status code, Klaus Jensen, 2020/09/24
- [PATCH 01/16] hw/block/nvme: add nsid to get/setfeat trace events, Klaus Jensen, 2020/09/24
- [PATCH 06/16] hw/block/nvme: add support for dulbe and block utilization tracking, Klaus Jensen, 2020/09/24
- [PATCH 04/16] hw/block/nvme: reject io commands if only admin command set selected, Klaus Jensen, 2020/09/24
- [PATCH 03/16] hw/block/nvme: make lba data size configurable, Klaus Jensen, 2020/09/24
- [PATCH 05/16] hw/block/nvme: consolidate read, write and write zeroes, Klaus Jensen, 2020/09/24
- [PATCH 07/16] hw/block/nvme: add commands supported and effects log page, Klaus Jensen, 2020/09/24
- [PATCH 08/16] hw/block/nvme: support namespace types, Klaus Jensen, 2020/09/24
- [PATCH 10/16] hw/block/nvme: add the zone management receive command, Klaus Jensen, 2020/09/24