From: Klaus Birkelund Jensen <klaus@birkelund.eu>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, matt.fitzpatrick@oakgatetech.com,
qemu-devel@nongnu.org, armbru@redhat.com, keith.busch@intel.com,
mreitz@redhat.com, lersek@redhat.com
Subject: [Qemu-devel] [PATCH 00/16] nvme: support NVMe v1.3d, SGLs and multiple namespaces
Date: Fri, 5 Jul 2019 09:23:17 +0200 [thread overview]
Message-ID: <20190705072333.17171-1-klaus@birkelund.eu> (raw)
Matt Fitzpatrick's post ("[RFC,v1] Namespace Management Support") pushed
me to finally get my head out of my a** and post this series.
This is basically a follow-up to my previous series ("nvme: v1.3, sgls,
metadata and new 'ocssd' device"), but I'm not tagging it as a v2
because the patches for metadata and the ocssd device have been dropped.
Instead, this series also includes a patch that enables support for
multiple namespaces in a "proper" way by adding a new 'nvme-ns' device
model such that the "real" nvme device is composed of the 'nvme' device
model (the core controller) and multiple 'nvme-ns' devices that model
the namespaces.
All in all, the patches in this series should be less controversial, but
I know there is a lot to go through. I've kept commit 011de3d531b6
("nvme: refactor device realization") as a single commit, but I can chop
it up if any reviwers would prefer that, but the series is already at 16
patches. The refactor patch is basically just code movement.
At a glance, this series:
- generally fixes up the device to be as close to NVMe 1.3d compliant as
possible (in terms of 'mandatory' features) by:
- adding proper setting of the SUBNQN and VER fields
- supporting the Abort command
- supporting the Asynchronous Event Request command
- supporting the Get Log Page command
- providing reasonable stub responses to Get/Set Feature command of
mandatory features
- adds support for scatter gather lists (SGLs)
- simplifies DMA/CMB mappings and support PRPs/SGLs in the CMB
- adds support for multiple block requests per nvme request (this is
useful for future support for metadata, OCSSD 2.0 vector requests
and upcoming zoned namespaces)
- adds support for multiple namespaces
Thanks to everyone who chipped in on the discussion on multiple
namespaces! You're CC'ed ;)
Klaus Birkelund Jensen (16):
nvme: simplify namespace code
nvme: move device parameters to separate struct
nvme: fix lpa field
nvme: add missing fields in identify controller
nvme: populate the mandatory subnqn and ver fields
nvme: support completion queue in cmb
nvme: support Abort command
nvme: refactor device realization
nvme: support Asynchronous Event Request command
nvme: support Get Log Page command
nvme: add missing mandatory Features
nvme: bump supported NVMe revision to 1.3d
nvme: simplify dma/cmb mappings
nvme: support multiple block requests per request
nvme: support scatter gather lists
nvme: support multiple namespaces
block/nvme.c | 18 +-
hw/block/Makefile.objs | 2 +-
hw/block/nvme-ns.c | 139 ++++
hw/block/nvme-ns.h | 35 +
hw/block/nvme.c | 1629 ++++++++++++++++++++++++++++++++--------
hw/block/nvme.h | 99 ++-
hw/block/trace-events | 24 +-
include/block/nvme.h | 130 +++-
8 files changed, 1739 insertions(+), 337 deletions(-)
create mode 100644 hw/block/nvme-ns.c
create mode 100644 hw/block/nvme-ns.h
--
2.20.1
next reply other threads:[~2019-07-05 7:26 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-05 7:23 Klaus Birkelund Jensen [this message]
2019-07-05 7:23 ` [Qemu-devel] [PATCH 01/16] nvme: simplify namespace code Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 02/16] nvme: move device parameters to separate struct Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 03/16] nvme: fix lpa field Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 04/16] nvme: add missing fields in identify controller Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 05/16] nvme: populate the mandatory subnqn and ver fields Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 06/16] nvme: support completion queue in cmb Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 07/16] nvme: support Abort command Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 08/16] nvme: refactor device realization Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 09/16] nvme: support Asynchronous Event Request command Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 10/16] nvme: support Get Log Page command Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 11/16] nvme: add missing mandatory Features Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 12/16] nvme: bump supported NVMe revision to 1.3d Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 13/16] nvme: simplify dma/cmb mappings Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 14/16] nvme: support multiple block requests per request Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 15/16] nvme: support scatter gather lists Klaus Birkelund Jensen
2019-07-05 7:23 ` [Qemu-devel] [PATCH 16/16] nvme: support multiple namespaces Klaus Birkelund Jensen
2019-07-05 13:36 ` [Qemu-devel] [Qemu-block] " Klaus Birkelund
2019-07-05 13:49 ` Daniel P. Berrangé
2019-07-05 16:20 ` Klaus Birkelund
2019-07-05 16:25 ` Daniel P. Berrangé
2019-08-22 13:18 ` [Qemu-devel] " Ross Lagerwall
2019-08-23 8:10 ` Klaus Birkelund
2019-11-04 8:46 ` Ross Lagerwall
2019-11-04 9:04 ` Klaus Birkelund
2019-11-04 9:11 ` Ross Lagerwall
2019-07-05 8:56 ` [Qemu-devel] [PATCH 00/16] nvme: support NVMe v1.3d, SGLs and " no-reply
2019-07-05 9:01 ` no-reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190705072333.17171-1-klaus@birkelund.eu \
--to=klaus@birkelund.eu \
--cc=armbru@redhat.com \
--cc=keith.busch@intel.com \
--cc=kwolf@redhat.com \
--cc=lersek@redhat.com \
--cc=matt.fitzpatrick@oakgatetech.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.