Re: [Qemu-devel] [Qemu-block] [PATCH v3 0/4] virtio/block: handle zoned backing devices

2019-07-26 Thread Dmitry Fomichev
John, please see inline... Regards, Dmitry On Thu, 2019-07-25 at 13:58 -0400, John Snow wrote: > > On 7/23/19 6:19 PM, Dmitry Fomichev wrote: > > Currently, attaching zoned block devices (i.e., storage devices > > compliant to ZAC/ZBC standards) using several virtio method

Re: [PATCH v16 1/8] include: add zoned device structs

2023-03-13 Thread Dmitry Fomichev
On Fri, 2023-03-10 at 18:23 +0800, Sam Li wrote: > Signed-off-by: Sam Li > Reviewed-by: Stefan Hajnoczi > Reviewed-by: Damien Le Moal > Reviewed-by: Hannes Reinecke Looks good to me. Reviewed-by: Dmitry Fomichev > --- >  include/block/b

Re: [PATCH v16 3/8] block: add block layer APIs resembling Linux ZonedBlockDevice ioctls

2023-03-13 Thread Dmitry Fomichev
example, to test zone_report, use following command: > $ ./build/qemu-io --image-opts -n driver=host_device, filename=/dev/nullb0 > -c "zrp offset nr_zones" > > Signed-off-by: Sam Li > Reviewed-by: Hannes Reinecke > Reviewed-by: Stefan Hajnoczi LGTM, Reviewed-by: Dmitry Fomi

Re: [PATCH v16 7/8] block: add some trace events for new block layer APIs

2023-03-13 Thread Dmitry Fomichev
On Fri, 2023-03-10 at 18:24 +0800, Sam Li wrote: > Signed-off-by: Sam Li > Reviewed-by: Stefan Hajnoczi With one small nit below, Reviewed-by: Dmitry Fomichev > --- >  block/file-posix.c | 3 +++ >  block/trace-events | 2 ++ >  2 files changed, 5 insertions(+) > >

Re: [PATCH v6 1/4] file-posix: add tracking of the zone write pointers

2023-03-13 Thread Dmitry Fomichev
On Fri, 2023-03-10 at 18:31 +0800, Sam Li wrote: > Since Linux doesn't have a user API to issue zone append operations to > zoned devices from user space, the file-posix driver is modified to add > zone append emulation using regular writes. To do this, the file-posix > driver tracks the wp locatio

Re: [PATCH v6 4/4] block: add some trace events for zone append

2023-03-13 Thread Dmitry Fomichev
On Fri, 2023-03-10 at 18:31 +0800, Sam Li wrote: > Signed-off-by: Sam Li Looks good, Reviewed-by: Dmitry Fomichev >  block/file-posix.c | 3 +++ >  block/trace-events | 2 ++ >  2 files changed, 5 insertions(+) > > diff --git a/block/file-posix.c b/block/file-posix.c

Re: [PATCH v6 2/4] block: introduce zone append write for zoned devices

2023-03-13 Thread Dmitry Fomichev
n written in the zone. > > Signed-off-by: Sam Li With nits above, Reviewed-by: Dmitry Fomichev > --- >  block/block-backend.c | 60 +++ >  block/file-posix.c    | 54 +--- >  block/io.c  

Re: [RFC v3 2/2] virtio-blk: add zoned storage emulation for zoned devices

2022-10-23 Thread Dmitry Fomichev
On Tue, 2022-10-18 at 16:56 +0800, Sam Li wrote: > Dmitry Fomichev 于2022年10月17日周一 09:01写道: > > > > On Sun, 2022-10-16 at 23:05 +0800, Sam Li wrote: > > > This patch extends virtio-blk emulation to handle zoned device commands > > > by calling the new block layer

Re: [PATCH v12 6/7] qemu-iotests: test new zone operations

2022-10-23 Thread Dmitry Fomichev
On Tue, 2022-10-18 at 16:41 +0800, Sam Li wrote: > Dmitry Fomichev 于2022年10月17日周一 08:57写道: > > > > On Sun, 2022-10-16 at 22:51 +0800, Sam Li wrote: > > > We have added new block layer APIs of zoned block devices. > > > Test it with: > > > Create a null

Re: [PATCH v12 2/7] file-posix: introduce helper functions for sysfs attributes

2022-10-16 Thread Dmitry Fomichev
ation. > > Signed-off-by: Sam Li > Reviewed-by: Hannes Reinecke > Reviewed-by: Stefan Hajnoczi > Reviewed-by: Damien Le Moal Reviewed-by: Dmitry Fomichev > --- >  block/file-posix.c   | 124 ++- >  include/block/block_int-common.h

Re: [RFC v3 1/2] include: update virtio_blk headers from Linux 5.19-rc2+

2022-10-16 Thread Dmitry Fomichev
On Sun, 2022-10-16 at 23:05 +0800, Sam Li wrote: > Use scripts/update-linux-headers.sh to update virtio-blk headers > from Dmitry's "virtio-blk:add support for zoned block devices" > linux patch. There is a link for more information: > https://github.com/dmitry-fomichev/

Re: [PATCH v12 7/7] docs/zoned-storage: add zoned device documentation

2022-10-16 Thread Dmitry Fomichev
ck layer APIs for zoned storage > +- > +QEMU block layer has three zoned storage model: replace it with +QEMU block layer supports three zoned storage models: ? with this nit, Reviewed-by: Dmitry Fomichev > +- BLK_Z_HM: The host-managed zoned model on

Re: [PATCH v12 1/7] include: add zoned device structs

2022-10-16 Thread Dmitry Fomichev
On Sun, 2022-10-16 at 22:51 +0800, Sam Li wrote: > Signed-off-by: Sam Li > Reviewed-by: Stefan Hajnoczi > Reviewed-by: Damien Le Moal > Reviewed-by: Hannes Reinecke > --- >  include/block/block-common.h | 43 >  1 file changed, 43 insertions(+) > > diff --gi

Re: [PATCH v12 3/7] block: add block layer APIs resembling Linux ZonedBlockDevice ioctls

2022-10-16 Thread Dmitry Fomichev
On Sun, 2022-10-16 at 22:51 +0800, Sam Li wrote: > Add a new zoned_host_device BlockDriver. The zoned_host_device option > accepts only zoned host block devices. By adding zone management > operations in this new BlockDriver, users can use the new block > layer APIs including Report Zone and four z

Re: [PATCH v12 4/7] raw-format: add zone operations to pass through requests

2022-10-16 Thread Dmitry Fomichev
s Reinecke Reviewed-by: Dmitry Fomichev > --- >  block/raw-format.c | 13 + >  1 file changed, 13 insertions(+) > > diff --git a/block/raw-format.c b/block/raw-format.c > index f337ac7569..bac43f1d25 100644 > --- a/block/raw-format.c > +++ b/block/r

Re: [PATCH v12 5/7] config: add check to block layer

2022-10-16 Thread Dmitry Fomichev
On Sun, 2022-10-16 at 22:51 +0800, Sam Li wrote: > Putting zoned/non-zoned BlockDrivers on top of each other is not > allowed. > > Signed-off-by: Sam Li > Reviewed-by: Stefan Hajnoczi > Reviewed-by: Hannes Reinecke Reviewed-by: Dmitry Fomichev > --- >  block.c  

Re: [PATCH v12 6/7] qemu-iotests: test new zone operations

2022-10-16 Thread Dmitry Fomichev
On Sun, 2022-10-16 at 22:51 +0800, Sam Li wrote: > We have added new block layer APIs of zoned block devices. > Test it with: > Create a null_blk device, run each zone operation on it and see > whether reporting right zone information. change this to "whether the logs show the correct zone informa

Re: [PATCH v4 1/3] file-posix: add the tracking of the zones write pointers

2022-10-16 Thread Dmitry Fomichev
On Sun, 2022-10-16 at 22:56 +0800, Sam Li wrote: > Since Linux doesn't have a user API to issue zone append operations to > zoned devices from user space, the file-posix driver is modified to add > zone append emulation using regular writes. To do this, the file-posix > driver tracks the wp locatio

Re: [RFC v3 2/2] virtio-blk: add zoned storage emulation for zoned devices

2022-10-16 Thread Dmitry Fomichev
On Sun, 2022-10-16 at 23:05 +0800, Sam Li wrote: > This patch extends virtio-blk emulation to handle zoned device commands > by calling the new block layer APIs to perform zoned device I/O on > behalf of the guest. It supports Report Zone, four zone oparations (open, > close, finish, reset), and Ap

Re: [PATCH v4 2/3] block: introduce zone append write for zoned devices

2022-10-16 Thread Dmitry Fomichev
On Sun, 2022-10-16 at 22:56 +0800, Sam Li wrote: > A zone append command is a write operation that specifies the first > logical block of a zone as the write position. When writing to a zoned > block device using zone append, the byte offset of writes is pointing > to the write pointer of that zone

Re: [PATCH v3 01/18] hw/block/nvme: bump spec data structures to v1.3

2020-07-08 Thread Dmitry Fomichev
Looks good with a small nit (see below), Reviewed-by: Dmitry Fomichev > On Mon, 2020-07-06 at 08:12 +0200, Klaus Jensen wrote: > From: Klaus Jensen > > Add missing fields in the Identify Controller and Identify Namespace > data structures to bring them in line with NVMe v1.3.

Re: [PATCH v3 02/18] hw/block/nvme: fix missing endian conversion

2020-07-08 Thread Dmitry Fomichev
Looks good, Reviewed-by: Dmitry Fomichev > On Mon, 2020-07-06 at 08:12 +0200, Klaus Jensen wrote: > From: Klaus Jensen > > Fix a missing cpu_to conversion by moving conversion to just before > returning instead. > > Signed-off-by: Klaus Jensen > Suggested-by

Re: [PATCH v3 03/18] hw/block/nvme: additional tracing

2020-07-08 Thread Dmitry Fomichev
Looks good, Reviewed-by: Dmitry Fomichev > On Mon, 2020-07-06 at 08:12 +0200, Klaus Jensen wrote: > From: Klaus Jensen > > Add various additional tracing and streamline nvme_identify_ns and > nvme_identify_nslist (they do not need to repeat the command, it is > already

Re: [PATCH v3 07/18] hw/block/nvme: add support for the get log page command

2020-07-08 Thread Dmitry Fomichev
Looks good, Reviewed-by: Dmitry Fomichev On Mon, 2020-07-06 at 08:12 +0200, Klaus Jensen wrote: > From: Klaus Jensen > > Add support for the Get Log Page command and basic implementations of > the mandatory Error Information, SMART / Health Information and Firmware > Slot

Re: [PATCH v3 05/18] hw/block/nvme: add temperature threshold feature

2020-07-08 Thread Dmitry Fomichev
Looks good, Reviewed-by: Dmitry Fomichev On Mon, 2020-07-06 at 08:12 +0200, Klaus Jensen wrote: > From: Klaus Jensen > > It might seem weird to implement this feature for an emulated device, > but it is mandatory to support and the feature is useful for testing > asynchronou

Re: [PATCH v3 12/18] hw/block/nvme: support the get/set features select and save fields

2020-07-08 Thread Dmitry Fomichev
Looks good, Reviewed-by: Dmitry Fomichev On Mon, 2020-07-06 at 08:12 +0200, Klaus Jensen wrote: > From: Klaus Jensen > > Since the device does not have any persistent state storage, no > features are "saveable" and setting the Save (SV) field in any Set > Features

Re: [PATCH v3 17/18] hw/block/nvme: provide the mandatory subnqn field

2020-07-08 Thread Dmitry Fomichev
Looks good, Reviewed-by: Dmitry Fomichev On Mon, 2020-07-06 at 08:13 +0200, Klaus Jensen wrote: > From: Klaus Jensen > > The SUBNQN field is mandatory in NVM Express 1.3. > > Signed-off-by: Klaus Jensen > --- > hw/block/nvme.c | 5 + > 1 file changed, 5 inserti

Re: [PATCH v3 15/18] hw/block/nvme: reject invalid nsid values in active namespace id list

2020-07-08 Thread Dmitry Fomichev
Looks good, Reviewed-by: Dmitry Fomichev On Mon, 2020-07-06 at 08:13 +0200, Klaus Jensen wrote: > From: Klaus Jensen > > Reject the nsid broadcast value (0x) and 0xfffe in the > Active Namespace ID list. > > Signed-off-by: Klaus Jensen > --- &g

RE: [PATCH v3 01/18] hw/block/nvme: bump spec data structures to v1.3

2020-07-08 Thread Dmitry Fomichev
> -Original Message- > From: Klaus Jensen > Sent: Wednesday, July 8, 2020 5:24 PM > To: Dmitry Fomichev > Cc: qemu-bl...@nongnu.org; qemu-devel@nongnu.org; f...@euphon.net; > javier.g...@samsung.com; kw...@redhat.com; mre...@redhat.com; > mlevi...@redhat.com; p

Re: [PATCH v3 1/4] hw/block/nvme: Update specification URL

2020-07-08 Thread Dmitry Fomichev
> * > - * http://www.nvmexpress.org/resources/ > + * https://nvmexpress.org/developers/nvme-specification/ > */ > > /** > -- > 2.21.3 > > Reviewed-by: Dmitry Fomichev

Re: [PATCH v3 2/4] hw/block/nvme: Use QEMU_PACKED on hardware/packet structures

2020-07-12 Thread Dmitry Fomichev
> +typedef struct QEMU_PACKED NvmeRangeType { > uint8_t type; > uint8_t attributes; > uint8_t rsvd2[14]; > @@ -817,13 +817,13 @@ typedef struct NvmeRangeType { > uint8_t rsvd48[16]; > } NvmeRangeType; > > -typedef struct NvmeLBAF { > +typedef struct QEMU_PACKED NvmeLBAF { > uint16_tms; > uint8_t ds; > uint8_t rp; > } NvmeLBAF; > > -typedef struct NvmeIdNs { > +typedef struct QEMU_PACKED NvmeIdNs { > uint64_tnsze; > uint64_tncap; > uint64_tnuse; > -- > 2.21.3 > > Reviewed-by: Dmitry Fomichev

Re: [PATCH v3 3/4] hw/block/nvme: Fix pmrmsc register size

2020-07-12 Thread Dmitry Fomichev
gt; uint32_tpmrswtp; > -uint32_tpmrmsc; > +uint64_t pmrmsc; > } NvmeBar; > > enum NvmeCapShift { > -- > 2.21.3 > > Reviewed-by: Dmitry Fomichev

Re: [PATCH v3 4/4] hw/block/nvme: Align I/O BAR to 4 KiB

2020-07-12 Thread Dmitry Fomichev
ize = pow2ceil(sizeof(NvmeBar) + > 2 * (n->params.max_ioqpairs + 1) * NVME_DB_SIZE); > n->namespaces = g_new0(NvmeNamespace, n->num_namespaces); > n->sq = g_new0(NvmeSQueue *, n->params.max_ioqpairs + 1); > -- > 2.21.3 > > Reviewed-by: Dmitry Fomichev

[PATCH 2/2] scsi-generic: Fix HM-zoned device scan

2020-08-11 Thread Dmitry Fomichev
. Several scan steps that were previously done only for TYPE_DISK devices, are now performed for the SCSI devices having TYPE_ZBC too. Reported-by: Johannes Thumshirn Signed-off-by: Dmitry Fomichev --- hw/scsi/scsi-generic.c | 10 ++ include/scsi/constants.h | 1 + 2 files changed, 7

[PATCH 0/2] block;scsi-generic: Fix max transfer size calculation

2020-08-11 Thread Dmitry Fomichev
correctly handle SG nodes. The following two patches fix these problems. Based-on: <20200424084338.26803-16-arm...@redhat.com> Dmitry Fomichev (2): file-posix: Correctly read max_segments of SG nodes scsi-generic: Fix HM-zoned device scan block/file-po

[PATCH 1/2] file-posix: Correctly read max_segments of SG nodes

2020-08-11 Thread Dmitry Fomichev
: 9103f1ceb46614b150bcbc3c9a4fbc72b47fedcc Signed-off-by: Dmitry Fomichev --- block/file-posix.c | 55 +++--- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/block/file-posix.c b/block/file-posix.c index 094e3b0212..f9e2424e8f 100644 --- a/block/file

RE: [PATCH v2 00/18] hw/block/nvme: Support Namespace Types and Zoned Namespace Command Set

2020-06-29 Thread Dmitry Fomichev
Bump... Any feedback on this series? > -Original Message- > From: Dmitry Fomichev > Sent: Wednesday, June 17, 2020 5:34 PM > To: Kevin Wolf ; Keith Busch ; > Philippe Mathieu-Daudé ; Maxim Levitsky > > Cc: qemu-bl...@nongnu.org; qemu-devel@nongnu.org; Matias Bjorli

RE: [PATCH 00/10] hw/block/nvme: namespace types and zoned namespaces

2020-06-30 Thread Dmitry Fomichev
> -Original Message- > From: Klaus Jensen > Sent: Tuesday, June 30, 2020 4:30 PM > To: Niklas Cassel > Cc: qemu-bl...@nongnu.org; Klaus Jensen ; > qemu-devel@nongnu.org; Keith Busch ; Max Reitz > ; Kevin Wolf ; Javier Gonzalez > ; Maxim Levitsky ; > Phil

RE: [PATCH v5 01/13] hw/block/nvme: fix zone management receive reporting too many zones

2021-03-14 Thread Dmitry Fomichev
LGTM, Reviewed-by: Dmitry Fomichev > -Original Message- > From: Klaus Jensen > Sent: Wednesday, March 10, 2021 4:54 AM > To: qemu-devel@nongnu.org > Cc: Stefan Hajnoczi ; Klaus Jensen > ; Fam Zheng ; Max Reitz > ; Kevin Wolf ; qemu- > bl...@nongnu.org; Gollu App

[PATCH v6 00/11] hw/block/nvme: Support Namespace Types and Zoned Namespace Command Set

2020-10-13 Thread Dmitry Fomichev
on capability to the existing NVMe PCI device. Based-on: <20201013174826.ga1049...@dhcp-10-100-145-180.wdl.wdc.com> Dmitry Fomichev (9): hw/block/nvme: Add Commands Supported and Effects log hw/block/nvme: Generate namespace UUIDs hw/block/nvme: Support Zoned Namespace Comman

[PATCH v6 03/11] hw/block/nvme: Add support for Namespace Types

2020-10-13 Thread Dmitry Fomichev
avoid code duplication when reporting zero-filled identify structures. Signed-off-by: Niklas Cassel Signed-off-by: Dmitry Fomichev --- hw/block/nvme-ns.c| 2 + hw/block/nvme-ns.h| 1 + hw/block/nvme.c | 198 +++--- hw/block/trace-events | 7 ++ inc

[PATCH v6 01/11] hw/block/nvme: Add Commands Supported and Effects log

2020-10-13 Thread Dmitry Fomichev
incoming admin and i/o commands are now only processed if their corresponding support bits are set in this log. This provides an easy way to control what commands to support and what not to depending on set CC.CSS. Signed-off-by: Dmitry Fomichev --- hw/block/nvme-ns.h| 1 + hw/block/nvme.c

[PATCH v6 09/11] hw/block/nvme: Document zoned parameters in usage text

2020-10-13 Thread Dmitry Fomichev
Added brief descriptions of the new device properties that are now available to users to configure features of Zoned Namespace Command Set in the emulator. This patch is for documentation only, no functionality change. Signed-off-by: Dmitry Fomichev --- hw/block/nvme.c | 41

[PATCH v6 10/11] hw/block/nvme: Separate read and write handlers

2020-10-13 Thread Dmitry Fomichev
patch, no change in functionality. Signed-off-by: Dmitry Fomichev --- hw/block/nvme.c | 191 +- hw/block/trace-events | 3 +- 2 files changed, 114 insertions(+), 80 deletions(-) diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 41caf35430

[PATCH v6 06/11] hw/block/nvme: Introduce max active and open zone limits

2020-10-13 Thread Dmitry Fomichev
if they are exceeded. Signed-off-by: Hans Holmberg Signed-off-by: Dmitry Fomichev --- hw/block/nvme-ns.c | 28 - hw/block/nvme-ns.h | 41 +++ hw/block/nvme.c| 99 ++ 3 files changed, 166 insertions(+), 2 deletions(-) diff -

[PATCH v6 02/11] hw/block/nvme: Generate namespace UUIDs

2020-10-13 Thread Dmitry Fomichev
is initialized. Suggested-by: Klaus Jansen Signed-off-by: Dmitry Fomichev --- hw/block/nvme-ns.c | 1 + hw/block/nvme-ns.h | 1 + hw/block/nvme.c| 9 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c index b69cdaf27e..de735eb9f3 100644

[PATCH v6 07/11] hw/block/nvme: Support Zone Descriptor Extensions

2020-10-13 Thread Dmitry Fomichev
n-zero, it becomes possible to assign extensions of that size to any Empty zones. The default value for this property is 0, therefore setting extensions is disabled by default. Signed-off-by: Hans Holmberg Signed-off-by: Dmitry Fomichev Reviewed-by: Klaus Jensen --- hw/block/nvme-ns.c| 14 ++

[PATCH v6 08/11] hw/block/nvme: Add injection of Offline/Read-Only zones

2020-10-13 Thread Dmitry Fomichev
re expected to be much smaller than the total number of zones on a drive. Signed-off-by: Dmitry Fomichev --- hw/block/nvme-ns.c | 64 ++ hw/block/nvme-ns.h | 2 ++ 2 files changed, 66 insertions(+) diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.

[PATCH v6 04/11] hw/block/nvme: Support allocated CNS command variants

2020-10-13 Thread Dmitry Fomichev
gement command to be supported if the namespace attachment command is supported. Signed-off-by: Niklas Cassel Signed-off-by: Dmitry Fomichev --- hw/block/nvme-ns.c | 1 + hw/block/nvme-ns.h | 1 + hw/block/nvme.c | 68 include/block/nvme

[PATCH v6 11/11] hw/block/nvme: Merge nvme_write_zeroes() with nvme_write()

2020-10-13 Thread Dmitry Fomichev
nvme_write() now handles WRITE, WRITE ZEROES and ZONE_APPEND. Signed-off-by: Dmitry Fomichev --- hw/block/nvme.c | 95 +-- hw/block/trace-events | 1 - 2 files changed, 28 insertions(+), 68 deletions(-) diff --git a/hw/block/nvme.c b/hw/block

[PATCH v6 05/11] hw/block/nvme: Support Zoned Namespace Command Set

2020-10-13 Thread Dmitry Fomichev
-by: Ajay Joshi Signed-off-by: Chaitanya Kulkarni Signed-off-by: Matias Bjorling Signed-off-by: Aravind Ramesh Signed-off-by: Shin'ichiro Kawasaki Signed-off-by: Adam Manzanares Signed-off-by: Dmitry Fomichev --- block/nvme.c | 2 +- hw/block/nvme-ns.c| 193 +

RE: [PATCH v6 01/11] hw/block/nvme: Add Commands Supported and Effects log

2020-10-18 Thread Dmitry Fomichev
> -Original Message- > From: Keith Busch > Sent: Tuesday, October 13, 2020 8:51 PM > To: Dmitry Fomichev > Cc: Klaus Jensen ; Kevin Wolf > ; Philippe Mathieu-Daudé ; > Maxim Levitsky ; Fam Zheng ; > Alistair Francis ; Matias Bjorling > ; Niklas Cassel ;

RE: [PATCH v6 05/11] hw/block/nvme: Support Zoned Namespace Command Set

2020-10-18 Thread Dmitry Fomichev
> -Original Message- > From: Niklas Cassel > Sent: Wednesday, October 14, 2020 7:59 AM > To: Dmitry Fomichev > Cc: Keith Busch ; Klaus Jensen > ; Kevin Wolf ; Philippe > Mathieu-Daudé ; Maxim Levitsky > ; Fam Zheng ; Alistair Francis > ; Matias Bjorling ;

RE: [PATCH v6 03/11] hw/block/nvme: Add support for Namespace Types

2020-10-18 Thread Dmitry Fomichev
> -Original Message- > From: Niklas Cassel > Sent: Wednesday, October 14, 2020 9:01 AM > To: Dmitry Fomichev > Cc: Keith Busch ; Klaus Jensen > ; Kevin Wolf ; Philippe > Mathieu-Daudé ; Maxim Levitsky > ; Fam Zheng ; Alistair Francis > ; Matias Bjorling ;

[PATCH v7 00/11] hw/block/nvme: Support Namespace Types and Zoned Namespace Command Set

2020-10-18 Thread Dmitry Fomichev
espace 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 device. Based-on: <2

[PATCH v7 02/11] hw/block/nvme: Generate namespace UUIDs

2020-10-18 Thread Dmitry Fomichev
is initialized. Suggested-by: Klaus Jansen Signed-off-by: Dmitry Fomichev Reviewed-by: Klaus Jansen --- hw/block/nvme-ns.c | 1 + hw/block/nvme-ns.h | 1 + hw/block/nvme.c| 9 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c i

[PATCH v7 01/11] hw/block/nvme: Add Commands Supported and Effects log

2020-10-18 Thread Dmitry Fomichev
incoming admin and i/o commands are now only processed if their corresponding support bits are set in this log. This provides an easy way to control what commands to support and what not to depending on set CC.CSS. Signed-off-by: Dmitry Fomichev --- hw/block/nvme-ns.h| 1 + hw/block/nvme.c

[PATCH v7 04/11] hw/block/nvme: Support allocated CNS command variants

2020-10-18 Thread Dmitry Fomichev
gement command to be supported if the namespace attachment command is supported. Signed-off-by: Niklas Cassel Signed-off-by: Dmitry Fomichev --- hw/block/nvme-ns.c | 1 + hw/block/nvme-ns.h | 1 + hw/block/nvme.c | 68 include/block/nvme

[PATCH v7 03/11] hw/block/nvme: Add support for Namespace Types

2020-10-18 Thread Dmitry Fomichev
avoid code duplication when reporting zero-filled identify structures. Signed-off-by: Niklas Cassel Signed-off-by: Dmitry Fomichev --- hw/block/nvme-ns.c| 2 + hw/block/nvme-ns.h| 1 + hw/block/nvme.c | 169 +++--- hw/block/trace-events | 7 ++ inc

[PATCH v7 09/11] hw/block/nvme: Document zoned parameters in usage text

2020-10-18 Thread Dmitry Fomichev
Added brief descriptions of the new device properties that are now available to users to configure features of Zoned Namespace Command Set in the emulator. This patch is for documentation only, no functionality change. Signed-off-by: Dmitry Fomichev --- hw/block/nvme.c | 41

[PATCH v7 07/11] hw/block/nvme: Support Zone Descriptor Extensions

2020-10-18 Thread Dmitry Fomichev
n-zero, it becomes possible to assign extensions of that size to any Empty zones. The default value for this property is 0, therefore setting extensions is disabled by default. Signed-off-by: Hans Holmberg Signed-off-by: Dmitry Fomichev Reviewed-by: Klaus Jensen --- hw/block/nvme-ns.c| 14 ++

[PATCH v7 08/11] hw/block/nvme: Add injection of Offline/Read-Only zones

2020-10-18 Thread Dmitry Fomichev
re expected to be much smaller than the total number of zones on a drive. Signed-off-by: Dmitry Fomichev --- hw/block/nvme-ns.c | 64 ++ hw/block/nvme-ns.h | 2 ++ 2 files changed, 66 insertions(+) diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.

[PATCH v7 06/11] hw/block/nvme: Introduce max active and open zone limits

2020-10-18 Thread Dmitry Fomichev
if they are exceeded. Signed-off-by: Hans Holmberg Signed-off-by: Dmitry Fomichev --- hw/block/nvme-ns.c | 28 - hw/block/nvme-ns.h | 41 +++ hw/block/nvme.c| 99 ++ 3 files changed, 166 insertions(+), 2 deletions(-) diff -

[PATCH v7 11/11] hw/block/nvme: Merge nvme_write_zeroes() with nvme_write()

2020-10-18 Thread Dmitry Fomichev
nvme_write() now handles WRITE, WRITE ZEROES and ZONE_APPEND. Signed-off-by: Dmitry Fomichev --- hw/block/nvme.c | 95 +-- hw/block/trace-events | 1 - 2 files changed, 28 insertions(+), 68 deletions(-) diff --git a/hw/block/nvme.c b/hw/block

[PATCH v7 05/11] hw/block/nvme: Support Zoned Namespace Command Set

2020-10-18 Thread Dmitry Fomichev
-by: Ajay Joshi Signed-off-by: Chaitanya Kulkarni Signed-off-by: Matias Bjorling Signed-off-by: Aravind Ramesh Signed-off-by: Shin'ichiro Kawasaki Signed-off-by: Adam Manzanares Signed-off-by: Dmitry Fomichev --- block/nvme.c | 2 +- hw/block/nvme-ns.c| 193 +

[PATCH v7 10/11] hw/block/nvme: Separate read and write handlers

2020-10-18 Thread Dmitry Fomichev
patch, no change in functionality. Signed-off-by: Dmitry Fomichev --- hw/block/nvme.c | 191 +- hw/block/trace-events | 3 +- 2 files changed, 114 insertions(+), 80 deletions(-) diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 3b9ea326d7

Re: [PATCH 0/2] hw/block/nvme: zoned fixes

2021-01-25 Thread Dmitry Fomichev
On Mon, 2021-01-25 at 08:25 +0100, Klaus Jensen wrote: > On Jan 19 14:54, Klaus Jensen wrote: > > From: Klaus Jensen > > > > Patch [1/2] fixes the zone append bug reported by Niklas. [2/2] > > refactors the zone write check function to return status codes in a > > different order if there are mul

Re: [PATCH 1/2] hw/block/nvme: fix zone boundary check for append

2021-01-25 Thread Dmitry Fomichev
e a look. In my testing, it works just as well :) > > In the process, also fix a missing endianness conversion for the zone > append ALBA. Great catch! This could be placed to a separate patch though... A few more comments below. Reported-by: Niklas Cassel Cc:

Re: [PATCH 2/2] hw/block/nvme: refactor the logic for zone write checks

2021-01-25 Thread Dmitry Fomichev
ut open coding ZA validation :) Best regards, Dmitry > > Cc: Dmitry Fomichev > Signed-off-by: Klaus Jensen > --- >  hw/block/nvme.c | 47 +++ >  hw/block/trace-events | 5 + >  2 files changed, 26 insertions(+), 26 deletions(-

Re: [PATCH 3/3] hw/block/nvme: align with existing style

2021-01-25 Thread Dmitry Fomichev
On Mon, 2021-01-25 at 09:22 +0100, Klaus Jensen wrote: > From: Gollu Appalanaidu > > Change status checks to align with the existing style and remove the > explicit check against NVME_SUCCESS. > > Cc: Dmitry Fomichev > Signed-off-by: Gollu Appalanaidu > Reviewed-by: K

[PATCH 1/3] hw/block/nvme: Check for zone boundary during append

2021-01-25 Thread Dmitry Fomichev
It is observed that with the existing code it is possible to keep appending to a zone indefinitely. To fix, add the missing check to verify that the zone append is not going to write beyond zone capacity. Reported-by: Niklas Cassel Signed-off-by: Dmitry Fomichev --- hw/block/nvme.c | 8

[PATCH 0/3] Fix zone write validation

2021-01-25 Thread Dmitry Fomichev
These patches solve a few problems that exist in zoned Write ans Zone Append validation code. Dmitry Fomichev (3): hw/block/nvme: Check for zone boundary during append hw/block/nvme: Check zone state before checking boundaries hw/block/nvme: Add trace events for zone boundary violations

[PATCH 2/3] hw/block/nvme: Check zone state before checking boundaries

2021-01-25 Thread Dmitry Fomichev
: Dmitry Fomichev --- hw/block/nvme.c | 21 ++--- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 67538010ef..b712634c27 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -1138,13 +1138,8 @@ static uint16_t nvme_check_zone_write

[PATCH 3/3] hw/block/nvme: Add trace events for zone boundary violations

2021-01-25 Thread Dmitry Fomichev
Add three new trace events to be raised in case of zone boundary violations during Read, Write(Zeroes) and Zone Append. Signed-off-by: Dmitry Fomichev --- hw/block/nvme.c | 8 ++-- hw/block/trace-events | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/hw/block

RE: [PATCH 0/2] hw/block/nvme: zoned fixes

2021-01-27 Thread Dmitry Fomichev
> -Original Message- > From: Keith Busch > Sent: Wednesday, January 27, 2021 12:42 PM > To: Klaus Jensen > Cc: qemu-devel@nongnu.org; Kevin Wolf ; Max Reitz > ; qemu-bl...@nongnu.org; Dmitry Fomichev > ; Klaus Jensen > Subject: Re: [PATCH 0/2] hw/block/nvme: zone

Re: [PATCH v2] hw/block/nvme: add missing mor/mar constraint checks

2021-02-07 Thread Dmitry Fomichev
pen or we end up with an invalid MAR/MOR configuration. This > is an artifact of the parameters not being zeroes-based like in the > spec. > > Cc: Dmitry Fomichev > Reported-by: Gollu Appalanaidu > Signed-off-by: Klaus Jensen Reviewed-by: Dmitry Fomichev > --- > > v

[PATCH] hw/block/nvme: fix Close Zone

2021-02-07 Thread Dmitry Fomichev
Implicitly and Explicitly Open zones can be closed by Close Zone management function. This got broken by a recent commit and now such commands fail with Invalid Zone State Transition status. Modify nvm_zrm_close() function to make Close Zone work correctly. Signed-off-by: Dmitry Fomichev Fixes

RE: [PATCH] hw/block/nvme: fix Close Zone

2021-02-09 Thread Dmitry Fomichev
> -Original Message- > From: Klaus Jensen > Sent: Monday, February 8, 2021 12:54 PM > To: Philippe Mathieu-Daudé > Cc: Keith Busch ; Dmitry Fomichev > ; Kevin Wolf ; Max Reitz > ; qemu-devel@nongnu.org; Niklas Cassel > > Subject: Re: [PATCH] hw/block/nvme: fi

Re: [PATCH] hw/block/nvme: improve invalid zasl value reporting

2021-02-09 Thread Dmitry Fomichev
small due to the host configuring the device for > an even larger page size, convert the trace point in nvme_start_ctrl to > an NVME_GUEST_ERR such that this is logged by QEMU instead of only > traced. > > Reported-by: "i...@dantalion.nl" > Cc: Dmitry Fomichev > Signed

RE: [PATCH v7 08/11] hw/block/nvme: Add injection of Offline/Read-Only zones

2020-10-20 Thread Dmitry Fomichev
> -Original Message- > From: Klaus Jensen > Sent: Monday, October 19, 2020 7:43 AM > To: Dmitry Fomichev > Cc: Keith Busch ; Klaus Jensen > ; Kevin Wolf ; Philippe > Mathieu-Daudé ; Maxim Levitsky > ; Fam Zheng ; Niklas Cassel > ; Damien Le Moal ; > qem

RE: [PATCH v7 01/11] hw/block/nvme: Add Commands Supported and Effects log

2020-10-20 Thread Dmitry Fomichev
> -Original Message- > From: Klaus Jensen > Sent: Monday, October 19, 2020 4:16 PM > To: Dmitry Fomichev > Cc: Keith Busch ; Klaus Jensen > ; Kevin Wolf ; Philippe > Mathieu-Daudé ; Maxim Levitsky > ; Fam Zheng ; Niklas Cassel > ; Damien Le Moal ; > qem

RE: [PATCH v7 10/11] hw/block/nvme: Separate read and write handlers

2020-10-20 Thread Dmitry Fomichev
> -Original Message- > From: Keith Busch > Sent: Tuesday, October 20, 2020 8:36 AM > To: Klaus Jensen > Cc: Dmitry Fomichev ; Klaus Jensen > ; Kevin Wolf ; Philippe > Mathieu-Daudé ; Maxim Levitsky > ; Fam Zheng ; Niklas Cassel > ; Damien Le Moal ; > qem

RE: [PATCH v7 04/11] hw/block/nvme: Support allocated CNS command variants

2020-10-20 Thread Dmitry Fomichev
> -Original Message- > From: Klaus Jensen > Sent: Tuesday, October 20, 2020 4:21 AM > To: Dmitry Fomichev > Cc: Keith Busch ; Klaus Jensen > ; Kevin Wolf ; Philippe > Mathieu-Daudé ; Maxim Levitsky > ; Fam Zheng ; Niklas Cassel > ; Damien Le Moal ; > qem

RE: [PATCH v7 03/11] hw/block/nvme: Add support for Namespace Types

2020-10-20 Thread Dmitry Fomichev
> -Original Message- > From: Klaus Jensen > Sent: Monday, October 19, 2020 4:54 PM > To: Dmitry Fomichev > Cc: Keith Busch ; Klaus Jensen > ; Kevin Wolf ; Philippe > Mathieu-Daudé ; Maxim Levitsky > ; Fam Zheng ; Niklas Cassel > ; Damien Le Moal ; > qem

RE: [PATCH v7 05/11] hw/block/nvme: Support Zoned Namespace Command Set

2020-10-21 Thread Dmitry Fomichev
> -Original Message- > From: Klaus Jensen > Sent: Wednesday, October 21, 2020 6:26 AM > To: Dmitry Fomichev > Cc: Keith Busch ; Klaus Jensen > ; Kevin Wolf ; Philippe > Mathieu-Daudé ; Maxim Levitsky > ; Fam Zheng ; Niklas Cassel > ; Damien Le Moal ; > qem

Re: [PATCH v9 08/12] hw/block/nvme: Support Zoned Namespace Command Set

2020-12-08 Thread Dmitry Fomichev
Hi Klaus, Thank you for your review! Please see replies below... On Thu, 2020-11-12 at 20:36 +0100, Klaus Jensen wrote: > Hi Dmitry, > > I know you posted v10, but my comments should be relevant to that as > well. > > On Nov 5 11:53, Dmitry Fomichev wrote: > > The

[PATCH v11 03/13] hw/block/nvme: Separate read and write handlers

2020-12-08 Thread Dmitry Fomichev
functionality. Signed-off-by: Dmitry Fomichev Reviewed-by: Niklas Cassel Acked-by: Klaus Jensen --- hw/block/nvme.c | 107 -- hw/block/trace-events | 3 +- 2 files changed, 74 insertions(+), 36 deletions(-) diff --git a/hw/block/nvme.c b/hw/block

[PATCH v11 07/13] hw/block/nvme: Support allocated CNS command variants

2020-12-08 Thread Dmitry Fomichev
NS command variants. The reason for not hooking up this command completely is because the NVMe specification requires the namespace management command to be supported if the namespace attachment command is supported. Signed-off-by: Niklas Cassel Signed-off-by: Dmitry Fomichev Reviewed-by: K

[PATCH v11 08/13] block/nvme: Make ZNS-related definitions

2020-12-08 Thread Dmitry Fomichev
Define values and structures that are needed to support Zoned Namespace Command Set (NVMe TP 4053). Signed-off-by: Dmitry Fomichev --- include/block/nvme.h | 114 ++- 1 file changed, 113 insertions(+), 1 deletion(-) diff --git a/include/block/nvme.h b

[PATCH v11 11/13] hw/block/nvme: Support Zone Descriptor Extensions

2020-12-08 Thread Dmitry Fomichev
n-zero, it becomes possible to assign extensions of that size to any Empty zones. The default value for this property is 0, therefore setting extensions is disabled by default. Signed-off-by: Hans Holmberg Signed-off-by: Dmitry Fomichev Reviewed-by: Klaus Jensen Reviewed-by: Niklas Cassel --- hw/

[PATCH v11 05/13] hw/block/nvme: Add Commands Supported and Effects log

2020-12-08 Thread Dmitry Fomichev
incoming admin and i/o commands are now only processed if their corresponding support bits are set in this log. This provides an easy way to control what commands to support and what not to depending on set CC.CSS. Signed-off-by: Dmitry Fomichev Reviewed-by: Niklas Cassel --- hw/block/nvme-ns.h| 1

[PATCH v11 02/13] hw/block/nvme: Generate namespace UUIDs

2020-12-08 Thread Dmitry Fomichev
is initialized. Suggested-by: Klaus Jensen Signed-off-by: Dmitry Fomichev Reviewed-by: Klaus Jensen Reviewed-by: Keith Busch Reviewed-by: Niklas Cassel --- hw/block/nvme-ns.h | 1 + hw/block/nvme-ns.c | 1 + hw/block/nvme.c| 9 + 3 files changed, 7 insertions(+), 4 deletions(-) diff -

[PATCH v11 06/13] hw/block/nvme: Add support for Namespace Types

2020-12-08 Thread Dmitry Fomichev
avoid code duplication when reporting zero-filled identify structures. Signed-off-by: Niklas Cassel Signed-off-by: Dmitry Fomichev Reviewed-by: Keith Busch --- hw/block/nvme-ns.h| 1 + include/block/nvme.h | 64 ++ hw/block/nvme-ns.c| 2 + hw/block/nvme.c

[PATCH v11 04/13] hw/block/nvme: Combine nvme_write_zeroes() and nvme_write()

2020-12-08 Thread Dmitry Fomichev
Move write processing to nvme_do_write() that now handles both WRITE and WRITE ZEROES. Both nvme_write() and nvme_write_zeroes() become inline helper functions. Signed-off-by: Dmitry Fomichev Reviewed-by: Niklas Cassel Acked-by: Klaus Jensen --- hw/block/nvme.c | 78

[PATCH v11 13/13] hw/block/nvme: Document zoned parameters in usage text

2020-12-08 Thread Dmitry Fomichev
Added brief descriptions of the new device properties that are now available to users to configure features of Zoned Namespace Command Set in the emulator. This patch is for documentation only, no functionality change. Signed-off-by: Dmitry Fomichev Reviewed-by: Niklas Cassel --- hw/block

[PATCH v11 09/13] hw/block/nvme: Support Zoned Namespace Command Set

2020-12-08 Thread Dmitry Fomichev
-by: Ajay Joshi Signed-off-by: Chaitanya Kulkarni Signed-off-by: Matias Bjorling Signed-off-by: Aravind Ramesh Signed-off-by: Shin'ichiro Kawasaki Signed-off-by: Adam Manzanares Signed-off-by: Dmitry Fomichev Reviewed-by: Niklas Cassel --- hw/block/nvme-ns.h| 52 +++ hw/block/nvme

[PATCH v11 10/13] hw/block/nvme: Introduce max active and open zone limits

2020-12-08 Thread Dmitry Fomichev
returned if they are exceeded. Signed-off-by: Hans Holmberg Signed-off-by: Dmitry Fomichev Reviewed-by: Niklas Cassel --- hw/block/nvme-ns.h| 41 +++ hw/block/nvme-ns.c| 31 ++- hw/block/nvme.c | 92 +++ hw/blo

[PATCH v11 00/13] hw/block/nvme: Support Namespace Types and Zoned Namespace Command Set

2020-12-08 Thread Dmitry Fomichev
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 capabili

[PATCH v11 12/13] hw/block/nvme: Add injection of Offline/Read-Only zones

2020-12-08 Thread Dmitry Fomichev
re expected to be much smaller than the total number of zones on a drive. Signed-off-by: Dmitry Fomichev Reviewed-by: Niklas Cassel --- hw/block/nvme-ns.h | 2 ++ hw/block/nvme-ns.c | 53 ++ 2 files changed, 55 insertions(+) diff --git a/hw/block/nvme-n

[PATCH v11 01/13] hw/block/nvme: Process controller reset and shutdown differently

2020-12-08 Thread Dmitry Fomichev
steps that are made different between reset and shutdown are that BAR.CC is not reset to zero upon the shutdown and namespace data is flushed to backing storage as a part of shutdown handling, but not upon reset. Suggested-by: Klaus Jensen Signed-off-by: Dmitry Fomichev --- hw/block/nvme-ns.h | 2

  1   2   3   4   >