From: Clay Mayers <Clay.Mayers@kioxia.com>
To: Klaus Jensen <its@irrelevant.dk>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
"Keith Busch" <kbusch@kernel.org>, "Fam Zheng" <fam@euphon.net>,
"Phlippe Mathieu-Daudé" <f4bug@amsat.org>,
"Dmitry Fomichev" <dmitry.fomichev@wdc.com>
Subject: RE: [PATCH V2 0/4] hw/block/nvme: Implement ZNS finish-zone ZDC AEN
Date: Wed, 23 Nov 2022 01:03:13 +0000 [thread overview]
Message-ID: <7895469dff664072a802e5db953b3c45@kioxia.com> (raw)
In-Reply-To: <Y2tnb2AIOX4nyykC@cormorant.local>
> From: Klaus Jensen <its@irrelevant.dk>
> Sent: Wednesday, November 9, 2022 12:40 AM
>
> On Oct 21 16:10, clay.mayers@kioxia.com wrote:
> > From: Clay Mayers <clay.mayers@kioxia.com>
> >
> > ZNS controllers have the option to limit the time a zone can remain in
> > the active state. It begins with a background process in the controller
> > setting the finish-zone-recommended FZR attribute for a zone. As part of
> > setting this attribute, the zone's id is added to the namespace's
> > zone-descriptor-changed (ZDC) log page. If enabled, items added to the
> > ZDC log page generate a ZDC "asynchronous event notification" AEN.
> Optionally,
> > the control can induce a "zone excursion" forcing the zone into the finished
> > state that also generates a ZDC event.
> >
> > Zone enabled applications need to properly handle ZDC events. In a real
> device,
> > the timeout is many hours making testing an application difficult.
> > Implemented is the generation of FZR ZDC events to speed up O/S and
> application
> > testing.
> >
> > Added to the zoned NVMe command set is an optional, per-namespace timer
> > (zoned.finish_time) to set the FZR attr for long-lived active zones; A per
> > namespace ZDC log page; AEN results to including CQE.DW1 (the NSID of the
> ZDC
> > AEN) and generating a ZDC AEN if it's been enabled. Zone excursions are not
> > modeled.
> >
> > See section 5.5 of the NVMe Zoned Namespace Command Set Specification
> v1.1
> > for more details.
> >
> > Changes since v1
> > - Fixed offset length checking in zdc log page
> > - Moved zdc_event_queued to the patch 4
> > - Unwatched zdc events in nvme_exit()
> >
> > Clay Mayers (4):
> > hw/block/nvme: add ZONE_FINISH_RECOMMENDED functionality
> > hw/block/nvme: add zone descriptor changed log page
> > hw/block/nvme: supply dw1 for aen result
> > hw/block/nvme: add zone descriptor changed AEN
> >
> > docs/system/devices/nvme.rst | 5 +
> > hw/nvme/ctrl.c | 174 +++++++++++++++++++++++++++++++++--
> > hw/nvme/ns.c | 15 +++
> > hw/nvme/nvme.h | 37 +++++++-
> > hw/nvme/trace-events | 3 +-
> > include/block/nvme.h | 14 ++-
> > 6 files changed, 233 insertions(+), 15 deletions(-)
> >
> > --
> > 2.27.0
> >
>
> Nice work Clay!
Thanks! I think you had implemented excursions at one point and I'm
not sure why it didn't make it in. I originally left out excursions because
all I needed was the AEN to test my Linux patch. I have a V3 in the works
with excursions so I can test what happens to libzbd applications. I can't
tell if there is real interest in this but I've tested rocksDB using zenfs and
it has difficulties with zone excursions. What I don't know is if excursions
are a corner case or not - in my world, they are not.
>
> Series looks good to me,
>
> Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
prev parent reply other threads:[~2022-11-23 1:10 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-21 23:10 [PATCH V2 0/4] hw/block/nvme: Implement ZNS finish-zone ZDC AEN clay.mayers
2022-10-21 23:10 ` [PATCH V2 1/4] hw/block/nvme: add ZONE_FINISH_RECOMMENDED functionality clay.mayers
2022-10-21 23:10 ` [PATCH V2 2/4] hw/block/nvme: add zone descriptor changed log page clay.mayers
2022-10-21 23:10 ` [PATCH V2 3/4] hw/block/nvme: supply dw1 for aen result clay.mayers
2022-10-21 23:10 ` [PATCH V2 4/4] hw/block/nvme: add zone descriptor changed AEN clay.mayers
2022-10-24 15:22 ` [PATCH V2 0/4] hw/block/nvme: Implement ZNS finish-zone ZDC AEN Clay Mayers
2022-11-09 8:40 ` Klaus Jensen
2022-11-23 1:03 ` Clay Mayers [this message]
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=7895469dff664072a802e5db953b3c45@kioxia.com \
--to=clay.mayers@kioxia.com \
--cc=dmitry.fomichev@wdc.com \
--cc=f4bug@amsat.org \
--cc=fam@euphon.net \
--cc=its@irrelevant.dk \
--cc=kbusch@kernel.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.