From: Klaus Jensen <its@irrelevant.dk>
To: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Fam Zheng <fam@euphon.net>,
qemu-block@nongnu.org, Klaus Jensen <k.jensen@samsung.com>,
Max Reitz <mreitz@redhat.com>, Keith Busch <kbusch@kernel.org>,
Klaus Jensen <its@irrelevant.dk>
Subject: [PATCH v2 00/14] hw/block/nvme: zoned namespace command set
Date: Wed, 30 Sep 2020 01:19:03 +0200 [thread overview]
Message-ID: <20200929231917.433586-1-its@irrelevant.dk> (raw)
From: Klaus Jensen <k.jensen@samsung.com>
So, things escalated a bit.
I'm removing the old cover letter. I don't think we need it anymore - you all
know the reason I keep posting versions of this implementation ;)
Based-on: <20200922084533.1273962-1-its@irrelevant.dk>
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 (13):
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
docs/specs/nvme.txt | 47 +-
hw/block/nvme-ns.h | 180 ++++-
hw/block/nvme.h | 22 +
include/block/nvme.h | 230 +++++-
block/nvme.c | 4 +-
hw/block/nvme-ns.c | 456 +++++++++++-
hw/block/nvme.c | 1560 +++++++++++++++++++++++++++++++++++++++--
hw/block/trace-events | 42 +-
8 files changed, 2443 insertions(+), 98 deletions(-)
--
2.28.0
next reply other threads:[~2020-09-29 23:23 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-29 23:19 Klaus Jensen [this message]
2020-09-29 23:19 ` [PATCH v2 01/14] hw/block/nvme: add nsid to get/setfeat trace events Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 02/14] hw/block/nvme: add trace event for requests with non-zero status code Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 03/14] hw/block/nvme: make lba data size configurable Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 04/14] hw/block/nvme: reject io commands if only admin command set selected Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 05/14] hw/block/nvme: consolidate read, write and write zeroes Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 06/14] hw/block/nvme: add support for dulbe and block utilization tracking Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 07/14] hw/block/nvme: add commands supported and effects log page Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 08/14] hw/block/nvme: support namespace types Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 09/14] hw/block/nvme: add basic read/write for zoned namespaces Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 10/14] hw/block/nvme: add the zone management receive command Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 11/14] hw/block/nvme: add the zone management send command Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 12/14] hw/block/nvme: add the zone append command Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 13/14] hw/block/nvme: track and enforce zone resources Klaus Jensen
2020-09-29 23:19 ` [PATCH v2 14/14] hw/block/nvme: allow open to close transitions by controller Klaus Jensen
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=20200929231917.433586-1-its@irrelevant.dk \
--to=its@irrelevant.dk \
--cc=fam@euphon.net \
--cc=k.jensen@samsung.com \
--cc=kbusch@kernel.org \
--cc=kwolf@redhat.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.