Message ID | 20200617213415.22417-1-dmitry.fomichev@wdc.com (mailing list archive) |
---|---|
Headers | show |
Series | hw/block/nvme: Support Namespace Types and Zoned Namespace Command Set | expand |
Bump... Any feedback on this series? > -----Original Message----- > From: Dmitry Fomichev <dmitry.fomichev@wdc.com> > Sent: Wednesday, June 17, 2020 5:34 PM > To: Kevin Wolf <kwolf@redhat.com>; Keith Busch <kbusch@kernel.org>; > Philippe Mathieu-Daudé <philmd@redhat.com>; Maxim Levitsky > <mlevitsky@redhat.com> > Cc: qemu-block@nongnu.org; qemu-devel@nongnu.org; Matias Bjorling > <Matias.Bjorling@wdc.com>; Damien Le Moal <Damien.LeMoal@wdc.com>; > Niklas Cassel <Niklas.Cassel@wdc.com>; Dmitry Fomichev > <Dmitry.Fomichev@wdc.com> > Subject: [PATCH v2 00/18] hw/block/nvme: Support Namespace Types and > Zoned Namespace Command Set > > v2: rebased on top of block-next/block branch > > Zoned Namespace (ZNS) Command Set is a newly introduced command set > published by the NVM Express, Inc. organization as TP 4053. The main > design goals of ZNS are to provide hardware designers the means to > reduce NVMe controller complexity and to allow achieving a better I/O > latency and throughput. SSDs that implement this interface are > commonly known as ZNS SSDs. > > This command set is implementing a zoned storage model, similarly to > ZAC/ZBC. As such, there is already support in Linux, allowing one to > perform the majority of tasks needed for managing ZNS SSDs. > > The Zoned Namespace Command Set relies on another TP, known as > Namespace Types (NVMe TP 4056), which introduces support for having > multiple command sets per namespace. > > Both ZNS and Namespace Types specifications can be downloaded by > visiting the following link - > > https://nvmexpress.org/wp-content/uploads/NVM-Express-1.4-Ratified- > TPs.zip > > This patch series adds Namespace Types support and zoned namespace > emulation capability to the existing NVMe PCI driver. > > The patchset is organized as follows - > > The first several patches are preparatory and are added to allow for > an easier review of the subsequent commits. The group of patches that > follows adds NS Types support with only NVM Command Set being > available. Finally, the last group of commits makes definitions and > adds new code to support Zoned Namespace Command Set. > > Based-on: <20200609205944.3549240-1-eblake@redhat.com> > > Ajay Joshi (1): > hw/block/nvme: Define 64 bit cqe.result > > Dmitry Fomichev (15): > hw/block/nvme: Move NvmeRequest has_sg field to a bit flag > hw/block/nvme: Clean up unused AER definitions > hw/block/nvme: Add Commands Supported and Effects log > hw/block/nvme: Define trace events related to NS Types > hw/block/nvme: Make Zoned NS Command Set definitions > hw/block/nvme: Define Zoned NS Command Set trace events > hw/block/nvme: Support Zoned Namespace Command Set > hw/block/nvme: Introduce max active and open zone limits > hw/block/nvme: Simulate Zone Active excursions > hw/block/nvme: Set Finish/Reset Zone Recommended attributes > hw/block/nvme: Generate zone AENs > hw/block/nvme: Support Zone Descriptor Extensions > hw/block/nvme: Add injection of Offline/Read-Only zones > hw/block/nvme: Use zone metadata file for persistence > hw/block/nvme: Document zoned parameters in usage text > > Niklas Cassel (2): > hw/block/nvme: Introduce the Namespace Types definitions > hw/block/nvme: Add support for Namespace Types > > block/nvme.c | 2 +- > block/trace-events | 2 +- > hw/block/nvme.c | 2316 > ++++++++++++++++++++++++++++++++++++++++- > hw/block/nvme.h | 228 +++- > hw/block/trace-events | 56 + > include/block/nvme.h | 282 ++++- > 6 files changed, 2820 insertions(+), 66 deletions(-) > > -- > 2.21.0