All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] hw/block/nvme: misc fixes
@ 2021-02-22 18:47 Klaus Jensen
  2021-02-22 18:47 ` [PATCH v2 1/5] hw/block/nvme: remove unnecessary endian conversion Klaus Jensen
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Klaus Jensen @ 2021-02-22 18:47 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Kevin Wolf, qemu-block, Klaus Jensen, Max Reitz,
	Klaus Jensen, Stefan Hajnoczi, Keith Busch

From: Klaus Jensen <k.jensen@samsung.com>

Small set of misc fixes from Gollu.

v2 changes

  * Split off the trace event additions from "[PATCH 1/3] hw/block/nvme:
    nvme_identify fixes" and "[PATCH 2/3] hw/block/nvme: fix potential
    compilation error" into their own commits (Minwoo, Philippe)
  * Fix a missing check on the zasl_bs param in the
    nvme_identify_ctrl_csi refactor (Minwoo)

Gollu Appalanaidu (5):
  hw/block/nvme: remove unnecessary endian conversion
  hw/block/nvme: add identify trace event
  hw/block/nvme: fix potential compilation error
  hw/block/nvme: add trace event for zone read check
  hw/block/nvme: report non-mdts command size limit for dsm

 hw/block/nvme.h       |  1 +
 include/block/nvme.h  | 11 +++++++++++
 hw/block/nvme.c       | 45 ++++++++++++++++++++++++++++---------------
 hw/block/trace-events |  2 ++
 4 files changed, 43 insertions(+), 16 deletions(-)

-- 
2.30.1



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 1/5] hw/block/nvme: remove unnecessary endian conversion
  2021-02-22 18:47 [PATCH v2 0/5] hw/block/nvme: misc fixes Klaus Jensen
@ 2021-02-22 18:47 ` Klaus Jensen
  2021-02-22 18:47 ` [PATCH v2 2/5] hw/block/nvme: add identify trace event Klaus Jensen
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Klaus Jensen @ 2021-02-22 18:47 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Kevin Wolf, qemu-block, Klaus Jensen,
	Gollu Appalanaidu, Max Reitz, Klaus Jensen, Minwoo Im,
	Stefan Hajnoczi, Keith Busch

From: Gollu Appalanaidu <anaidu.gollu@samsung.com>

Remove an unnecessary le_to_cpu conversion in Identify.

Signed-off-by: Gollu Appalanaidu <anaidu.gollu@samsung.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>
---
 hw/block/nvme.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 1cd82fa3c9fe..c0b349dfab0d 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -3415,7 +3415,7 @@ static uint16_t nvme_identify(NvmeCtrl *n, NvmeRequest *req)
 {
     NvmeIdentify *c = (NvmeIdentify *)&req->cmd;
 
-    switch (le32_to_cpu(c->cns)) {
+    switch (c->cns) {
     case NVME_ID_CNS_NS:
          /* fall through */
     case NVME_ID_CNS_NS_PRESENT:
-- 
2.30.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 2/5] hw/block/nvme: add identify trace event
  2021-02-22 18:47 [PATCH v2 0/5] hw/block/nvme: misc fixes Klaus Jensen
  2021-02-22 18:47 ` [PATCH v2 1/5] hw/block/nvme: remove unnecessary endian conversion Klaus Jensen
@ 2021-02-22 18:47 ` Klaus Jensen
  2021-02-22 18:47 ` [PATCH v2 3/5] hw/block/nvme: fix potential compilation error Klaus Jensen
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Klaus Jensen @ 2021-02-22 18:47 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Kevin Wolf, qemu-block, Klaus Jensen,
	Gollu Appalanaidu, Max Reitz, Klaus Jensen, Minwoo Im,
	Stefan Hajnoczi, Keith Busch

From: Gollu Appalanaidu <anaidu.gollu@samsung.com>

Add a trace event for the Identify command.

Signed-off-by: Gollu Appalanaidu <anaidu.gollu@samsung.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>
---
 hw/block/nvme.c       | 3 +++
 hw/block/trace-events | 1 +
 2 files changed, 4 insertions(+)

diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index c0b349dfab0d..ddc83f7f7a19 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -3415,6 +3415,9 @@ static uint16_t nvme_identify(NvmeCtrl *n, NvmeRequest *req)
 {
     NvmeIdentify *c = (NvmeIdentify *)&req->cmd;
 
+    trace_pci_nvme_identify(nvme_cid(req), c->cns, le16_to_cpu(c->ctrlid),
+                            c->csi);
+
     switch (c->cns) {
     case NVME_ID_CNS_NS:
          /* fall through */
diff --git a/hw/block/trace-events b/hw/block/trace-events
index b04f7a3e1890..1f958d09d2a9 100644
--- a/hw/block/trace-events
+++ b/hw/block/trace-events
@@ -61,6 +61,7 @@ pci_nvme_create_sq(uint64_t addr, uint16_t sqid, uint16_t cqid, uint16_t qsize,
 pci_nvme_create_cq(uint64_t addr, uint16_t cqid, uint16_t vector, uint16_t size, uint16_t qflags, int ien) "create completion queue, addr=0x%"PRIx64", cqid=%"PRIu16", vector=%"PRIu16", qsize=%"PRIu16", qflags=%"PRIu16", ien=%d"
 pci_nvme_del_sq(uint16_t qid) "deleting submission queue sqid=%"PRIu16""
 pci_nvme_del_cq(uint16_t cqid) "deleted completion queue, cqid=%"PRIu16""
+pci_nvme_identify(uint16_t cid, uint8_t cns, uint16_t ctrlid, uint8_t csi) "cid %"PRIu16" cns 0x%"PRIx8" ctrlid %"PRIu16" csi 0x%"PRIx8""
 pci_nvme_identify_ctrl(void) "identify controller"
 pci_nvme_identify_ctrl_csi(uint8_t csi) "identify controller, csi=0x%"PRIx8""
 pci_nvme_identify_ns(uint32_t ns) "nsid %"PRIu32""
-- 
2.30.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 3/5] hw/block/nvme: fix potential compilation error
  2021-02-22 18:47 [PATCH v2 0/5] hw/block/nvme: misc fixes Klaus Jensen
  2021-02-22 18:47 ` [PATCH v2 1/5] hw/block/nvme: remove unnecessary endian conversion Klaus Jensen
  2021-02-22 18:47 ` [PATCH v2 2/5] hw/block/nvme: add identify trace event Klaus Jensen
@ 2021-02-22 18:47 ` Klaus Jensen
  2021-02-22 18:47 ` [PATCH v2 4/5] hw/block/nvme: add trace event for zone read check Klaus Jensen
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Klaus Jensen @ 2021-02-22 18:47 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Kevin Wolf, qemu-block, Klaus Jensen,
	Gollu Appalanaidu, Max Reitz, Klaus Jensen, Stefan Hajnoczi,
	Keith Busch

From: Gollu Appalanaidu <anaidu.gollu@samsung.com>

assert may be compiled to a noop and we could end up returning an
uninitialized status.

Fix this by always returning Internal Device Error as a fallback.

Note that, as pointed out by Philippe, per commit 262a69f4282 ("osdep.h:
Prohibit disabling assert() in supported builds") this shouldn't be
possible. But clean it up so we don't worry about it again.

Signed-off-by: Gollu Appalanaidu <anaidu.gollu@samsung.com>
[k.jensen: split commit]
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
---
 hw/block/nvme.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index ddc83f7f7a19..dcd51a52951c 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -1232,8 +1232,6 @@ static uint16_t nvme_check_zone_write(NvmeNamespace *ns, NvmeZone *zone,
 
 static uint16_t nvme_check_zone_state_for_read(NvmeZone *zone)
 {
-    uint16_t status;
-
     switch (nvme_get_zone_state(zone)) {
     case NVME_ZONE_STATE_EMPTY:
     case NVME_ZONE_STATE_IMPLICITLY_OPEN:
@@ -1241,16 +1239,14 @@ static uint16_t nvme_check_zone_state_for_read(NvmeZone *zone)
     case NVME_ZONE_STATE_FULL:
     case NVME_ZONE_STATE_CLOSED:
     case NVME_ZONE_STATE_READ_ONLY:
-        status = NVME_SUCCESS;
-        break;
+        return NVME_SUCCESS;
     case NVME_ZONE_STATE_OFFLINE:
-        status = NVME_ZONE_OFFLINE;
-        break;
+        return NVME_ZONE_OFFLINE;
     default:
         assert(false);
     }
 
-    return status;
+    return NVME_INTERNAL_DEV_ERROR;
 }
 
 static uint16_t nvme_check_zone_read(NvmeNamespace *ns, uint64_t slba,
-- 
2.30.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 4/5] hw/block/nvme: add trace event for zone read check
  2021-02-22 18:47 [PATCH v2 0/5] hw/block/nvme: misc fixes Klaus Jensen
                   ` (2 preceding siblings ...)
  2021-02-22 18:47 ` [PATCH v2 3/5] hw/block/nvme: fix potential compilation error Klaus Jensen
@ 2021-02-22 18:47 ` Klaus Jensen
  2021-02-22 18:47 ` [PATCH v2 5/5] hw/block/nvme: report non-mdts command size limit for dsm Klaus Jensen
  2021-03-02  6:23 ` [PATCH v2 0/5] hw/block/nvme: misc fixes Klaus Jensen
  5 siblings, 0 replies; 11+ messages in thread
From: Klaus Jensen @ 2021-02-22 18:47 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Kevin Wolf, qemu-block, Klaus Jensen,
	Gollu Appalanaidu, Max Reitz, Klaus Jensen, Stefan Hajnoczi,
	Keith Busch

From: Gollu Appalanaidu <anaidu.gollu@samsung.com>

Add a trace event for the offline zone condition when checking zone
read.

Signed-off-by: Gollu Appalanaidu <anaidu.gollu@samsung.com>
[k.jensen: split commit]
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
---
 hw/block/nvme.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index dcd51a52951c..b641c7a45a2f 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -1241,6 +1241,7 @@ static uint16_t nvme_check_zone_state_for_read(NvmeZone *zone)
     case NVME_ZONE_STATE_READ_ONLY:
         return NVME_SUCCESS;
     case NVME_ZONE_STATE_OFFLINE:
+        trace_pci_nvme_err_zone_is_offline(zone->d.zslba);
         return NVME_ZONE_OFFLINE;
     default:
         assert(false);
-- 
2.30.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 5/5] hw/block/nvme: report non-mdts command size limit for dsm
  2021-02-22 18:47 [PATCH v2 0/5] hw/block/nvme: misc fixes Klaus Jensen
                   ` (3 preceding siblings ...)
  2021-02-22 18:47 ` [PATCH v2 4/5] hw/block/nvme: add trace event for zone read check Klaus Jensen
@ 2021-02-22 18:47 ` Klaus Jensen
  2021-02-22 20:55   ` Keith Busch
  2021-03-02  6:23 ` [PATCH v2 0/5] hw/block/nvme: misc fixes Klaus Jensen
  5 siblings, 1 reply; 11+ messages in thread
From: Klaus Jensen @ 2021-02-22 18:47 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Kevin Wolf, qemu-block, Klaus Jensen,
	Gollu Appalanaidu, Max Reitz, Klaus Jensen, Stefan Hajnoczi,
	Keith Busch

From: Gollu Appalanaidu <anaidu.gollu@samsung.com>

Dataset Management is not subject to MDTS, but exceeded a certain size
per range causes internal looping. Report this limit (DMRSL) in the NVM
command set specific identify controller data structure.

Signed-off-by: Gollu Appalanaidu <anaidu.gollu@samsung.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
---
 hw/block/nvme.h       |  1 +
 include/block/nvme.h  | 11 +++++++++++
 hw/block/nvme.c       | 29 +++++++++++++++++++++--------
 hw/block/trace-events |  1 +
 4 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/hw/block/nvme.h b/hw/block/nvme.h
index cb2b5175f1a1..3046b82b3da1 100644
--- a/hw/block/nvme.h
+++ b/hw/block/nvme.h
@@ -172,6 +172,7 @@ typedef struct NvmeCtrl {
     int         aer_queued;
 
     uint8_t     zasl;
+    uint32_t    dmrsl;
 
     NvmeSubsystem   *subsys;
 
diff --git a/include/block/nvme.h b/include/block/nvme.h
index b23f3ae2279f..16d8c4c90f7e 100644
--- a/include/block/nvme.h
+++ b/include/block/nvme.h
@@ -1041,6 +1041,16 @@ typedef struct NvmeIdCtrlZoned {
     uint8_t     rsvd1[4095];
 } NvmeIdCtrlZoned;
 
+typedef struct NvmeIdCtrlNvm {
+    uint8_t     vsl;
+    uint8_t     wzsl;
+    uint8_t     wusl;
+    uint8_t     dmrl;
+    uint32_t    dmrsl;
+    uint64_t    dmsl;
+    uint8_t     rsvd16[4080];
+} NvmeIdCtrlNvm;
+
 enum NvmeIdCtrlOacs {
     NVME_OACS_SECURITY  = 1 << 0,
     NVME_OACS_FORMAT    = 1 << 1,
@@ -1396,6 +1406,7 @@ static inline void _nvme_check_size(void)
     QEMU_BUILD_BUG_ON(sizeof(NvmeEffectsLog) != 4096);
     QEMU_BUILD_BUG_ON(sizeof(NvmeIdCtrl) != 4096);
     QEMU_BUILD_BUG_ON(sizeof(NvmeIdCtrlZoned) != 4096);
+    QEMU_BUILD_BUG_ON(sizeof(NvmeIdCtrlNvm) != 4096);
     QEMU_BUILD_BUG_ON(sizeof(NvmeLBAF) != 4);
     QEMU_BUILD_BUG_ON(sizeof(NvmeLBAFE) != 16);
     QEMU_BUILD_BUG_ON(sizeof(NvmeIdNs) != 4096);
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index b641c7a45a2f..4013bf53d4ff 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -1775,6 +1775,10 @@ static uint16_t nvme_dsm(NvmeCtrl *n, NvmeRequest *req)
             trace_pci_nvme_dsm_deallocate(nvme_cid(req), nvme_nsid(ns), slba,
                                           nlb);
 
+            if (nlb > n->dmrsl) {
+                trace_pci_nvme_dsm_single_range_limit_exceeded(nlb, n->dmrsl);
+            }
+
             offset = nvme_l2b(ns, slba);
             len = nvme_l2b(ns, nlb);
 
@@ -3200,21 +3204,27 @@ static uint16_t nvme_identify_ctrl(NvmeCtrl *n, NvmeRequest *req)
 static uint16_t nvme_identify_ctrl_csi(NvmeCtrl *n, NvmeRequest *req)
 {
     NvmeIdentify *c = (NvmeIdentify *)&req->cmd;
-    NvmeIdCtrlZoned id = {};
+    uint8_t id[NVME_IDENTIFY_DATA_SIZE] = {};
 
     trace_pci_nvme_identify_ctrl_csi(c->csi);
 
-    if (c->csi == NVME_CSI_NVM) {
-        return nvme_rpt_empty_id_struct(n, req);
-    } else if (c->csi == NVME_CSI_ZONED) {
+    switch (c->csi) {
+    case NVME_CSI_NVM:
+        ((NvmeIdCtrlNvm *)&id)->dmrsl = cpu_to_le32(n->dmrsl);
+        break;
+
+    case NVME_CSI_ZONED:
         if (n->params.zasl_bs) {
-            id.zasl = n->zasl;
+            ((NvmeIdCtrlZoned *)&id)->zasl = n->zasl;
         }
-        return nvme_dma(n, (uint8_t *)&id, sizeof(id),
-                        DMA_DIRECTION_FROM_DEVICE, req);
+
+        break;
+
+    default:
+        return NVME_INVALID_FIELD | NVME_DNR;
     }
 
-    return NVME_INVALID_FIELD | NVME_DNR;
+    return nvme_dma(n, id, sizeof(id), DMA_DIRECTION_FROM_DEVICE, req);
 }
 
 static uint16_t nvme_identify_ns(NvmeCtrl *n, NvmeRequest *req)
@@ -4668,6 +4678,9 @@ int nvme_register_namespace(NvmeCtrl *n, NvmeNamespace *ns, Error **errp)
 
     n->namespaces[nsid - 1] = ns;
 
+    n->dmrsl = MIN_NON_ZERO(n->dmrsl,
+                            BDRV_REQUEST_MAX_BYTES / nvme_l2b(ns, 1));
+
     return 0;
 }
 
diff --git a/hw/block/trace-events b/hw/block/trace-events
index 1f958d09d2a9..27940fe2e98a 100644
--- a/hw/block/trace-events
+++ b/hw/block/trace-events
@@ -51,6 +51,7 @@ pci_nvme_copy_cb(uint16_t cid) "cid %"PRIu16""
 pci_nvme_block_status(int64_t offset, int64_t bytes, int64_t pnum, int ret, bool zeroed) "offset %"PRId64" bytes %"PRId64" pnum %"PRId64" ret 0x%x zeroed %d"
 pci_nvme_dsm(uint16_t cid, uint32_t nsid, uint32_t nr, uint32_t attr) "cid %"PRIu16" nsid %"PRIu32" nr %"PRIu32" attr 0x%"PRIx32""
 pci_nvme_dsm_deallocate(uint16_t cid, uint32_t nsid, uint64_t slba, uint32_t nlb) "cid %"PRIu16" nsid %"PRIu32" slba %"PRIu64" nlb %"PRIu32""
+pci_nvme_dsm_single_range_limit_exceeded(uint32_t nlb, uint32_t dmrsl) "nlb %"PRIu32" dmrsl %"PRIu32""
 pci_nvme_compare(uint16_t cid, uint32_t nsid, uint64_t slba, uint32_t nlb) "cid %"PRIu16" nsid %"PRIu32" slba 0x%"PRIx64" nlb %"PRIu32""
 pci_nvme_compare_cb(uint16_t cid) "cid %"PRIu16""
 pci_nvme_aio_discard_cb(uint16_t cid) "cid %"PRIu16""
-- 
2.30.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 5/5] hw/block/nvme: report non-mdts command size limit for dsm
  2021-02-22 18:47 ` [PATCH v2 5/5] hw/block/nvme: report non-mdts command size limit for dsm Klaus Jensen
@ 2021-02-22 20:55   ` Keith Busch
  2021-02-22 21:12     ` Klaus Jensen
  0 siblings, 1 reply; 11+ messages in thread
From: Keith Busch @ 2021-02-22 20:55 UTC (permalink / raw)
  To: Klaus Jensen
  Cc: Fam Zheng, Kevin Wolf, qemu-block, Klaus Jensen,
	Gollu Appalanaidu, qemu-devel, Max Reitz, Stefan Hajnoczi

On Mon, Feb 22, 2021 at 07:47:59PM +0100, Klaus Jensen wrote:
> +typedef struct NvmeIdCtrlNvm {
> +    uint8_t     vsl;
> +    uint8_t     wzsl;
> +    uint8_t     wusl;
> +    uint8_t     dmrl;
> +    uint32_t    dmrsl;
> +    uint64_t    dmsl;
> +    uint8_t     rsvd16[4080];
> +} NvmeIdCtrlNvm;

TP 4040a still displays these fields with preceding '...' indicating
something comes before this. Is that just left-over from the integration
for TBD offsets, or is there something that still hasn't been accounted
for?


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 5/5] hw/block/nvme: report non-mdts command size limit for dsm
  2021-02-22 20:55   ` Keith Busch
@ 2021-02-22 21:12     ` Klaus Jensen
  2021-03-01 11:15       ` Klaus Jensen
  0 siblings, 1 reply; 11+ messages in thread
From: Klaus Jensen @ 2021-02-22 21:12 UTC (permalink / raw)
  To: Keith Busch
  Cc: Fam Zheng, Kevin Wolf, qemu-block, Klaus Jensen,
	Gollu Appalanaidu, qemu-devel, Max Reitz, Stefan Hajnoczi

[-- Attachment #1: Type: text/plain, Size: 880 bytes --]

On Feb 23 05:55, Keith Busch wrote:
> On Mon, Feb 22, 2021 at 07:47:59PM +0100, Klaus Jensen wrote:
> > +typedef struct NvmeIdCtrlNvm {
> > +    uint8_t     vsl;
> > +    uint8_t     wzsl;
> > +    uint8_t     wusl;
> > +    uint8_t     dmrl;
> > +    uint32_t    dmrsl;
> > +    uint64_t    dmsl;
> > +    uint8_t     rsvd16[4080];
> > +} NvmeIdCtrlNvm;
> 
> TP 4040a still displays these fields with preceding '...' indicating
> something comes before this. Is that just left-over from the integration
> for TBD offsets, or is there something that still hasn't been accounted
> for?

Good question.

But since the TBDs have been assigned I believe it is just a left-over.
I must admit that I have not cross checked this with all other TPs, but
AFAIK this is the only ratified TP that adds something to the
NVM-specific identify controller data structure.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 5/5] hw/block/nvme: report non-mdts command size limit for dsm
  2021-02-22 21:12     ` Klaus Jensen
@ 2021-03-01 11:15       ` Klaus Jensen
  2021-03-01 15:37         ` Keith Busch
  0 siblings, 1 reply; 11+ messages in thread
From: Klaus Jensen @ 2021-03-01 11:15 UTC (permalink / raw)
  To: Keith Busch
  Cc: Fam Zheng, Kevin Wolf, qemu-block, Klaus Jensen,
	Gollu Appalanaidu, qemu-devel, Max Reitz, Stefan Hajnoczi

[-- Attachment #1: Type: text/plain, Size: 999 bytes --]

On Feb 22 22:12, Klaus Jensen wrote:
> On Feb 23 05:55, Keith Busch wrote:
> > On Mon, Feb 22, 2021 at 07:47:59PM +0100, Klaus Jensen wrote:
> > > +typedef struct NvmeIdCtrlNvm {
> > > +    uint8_t     vsl;
> > > +    uint8_t     wzsl;
> > > +    uint8_t     wusl;
> > > +    uint8_t     dmrl;
> > > +    uint32_t    dmrsl;
> > > +    uint64_t    dmsl;
> > > +    uint8_t     rsvd16[4080];
> > > +} NvmeIdCtrlNvm;
> > 
> > TP 4040a still displays these fields with preceding '...' indicating
> > something comes before this. Is that just left-over from the integration
> > for TBD offsets, or is there something that still hasn't been accounted
> > for?
> 
> Good question.
> 
> But since the TBDs have been assigned I believe it is just a left-over.
> I must admit that I have not cross checked this with all other TPs, but
> AFAIK this is the only ratified TP that adds something to the
> NVM-specific identify controller data structure.

Are you otherwise OK with this?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 5/5] hw/block/nvme: report non-mdts command size limit for dsm
  2021-03-01 11:15       ` Klaus Jensen
@ 2021-03-01 15:37         ` Keith Busch
  0 siblings, 0 replies; 11+ messages in thread
From: Keith Busch @ 2021-03-01 15:37 UTC (permalink / raw)
  To: Klaus Jensen
  Cc: Fam Zheng, Kevin Wolf, qemu-block, Klaus Jensen,
	Gollu Appalanaidu, qemu-devel, Max Reitz, Stefan Hajnoczi

On Mon, Mar 01, 2021 at 12:15:26PM +0100, Klaus Jensen wrote:
> On Feb 22 22:12, Klaus Jensen wrote:
> > On Feb 23 05:55, Keith Busch wrote:
> > > On Mon, Feb 22, 2021 at 07:47:59PM +0100, Klaus Jensen wrote:
> > > > +typedef struct NvmeIdCtrlNvm {
> > > > +    uint8_t     vsl;
> > > > +    uint8_t     wzsl;
> > > > +    uint8_t     wusl;
> > > > +    uint8_t     dmrl;
> > > > +    uint32_t    dmrsl;
> > > > +    uint64_t    dmsl;
> > > > +    uint8_t     rsvd16[4080];
> > > > +} NvmeIdCtrlNvm;
> > > 
> > > TP 4040a still displays these fields with preceding '...' indicating
> > > something comes before this. Is that just left-over from the integration
> > > for TBD offsets, or is there something that still hasn't been accounted
> > > for?
> > 
> > Good question.
> > 
> > But since the TBDs have been assigned I believe it is just a left-over.
> > I must admit that I have not cross checked this with all other TPs, but
> > AFAIK this is the only ratified TP that adds something to the
> > NVM-specific identify controller data structure.
> 
> Are you otherwise OK with this?

Yes, I compared other TP's and it appears to be set for good once an
actual numeric value is assigned, so okay to go here.

Reviewed-by: Keith Busch <kbusch@kernel.org>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/5] hw/block/nvme: misc fixes
  2021-02-22 18:47 [PATCH v2 0/5] hw/block/nvme: misc fixes Klaus Jensen
                   ` (4 preceding siblings ...)
  2021-02-22 18:47 ` [PATCH v2 5/5] hw/block/nvme: report non-mdts command size limit for dsm Klaus Jensen
@ 2021-03-02  6:23 ` Klaus Jensen
  5 siblings, 0 replies; 11+ messages in thread
From: Klaus Jensen @ 2021-03-02  6:23 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Kevin Wolf, qemu-block, Klaus Jensen, Max Reitz,
	Stefan Hajnoczi, Keith Busch

[-- Attachment #1: Type: text/plain, Size: 1045 bytes --]

On Feb 22 19:47, Klaus Jensen wrote:
> From: Klaus Jensen <k.jensen@samsung.com>
> 
> Small set of misc fixes from Gollu.
> 
> v2 changes
> 
>   * Split off the trace event additions from "[PATCH 1/3] hw/block/nvme:
>     nvme_identify fixes" and "[PATCH 2/3] hw/block/nvme: fix potential
>     compilation error" into their own commits (Minwoo, Philippe)
>   * Fix a missing check on the zasl_bs param in the
>     nvme_identify_ctrl_csi refactor (Minwoo)
> 
> Gollu Appalanaidu (5):
>   hw/block/nvme: remove unnecessary endian conversion
>   hw/block/nvme: add identify trace event
>   hw/block/nvme: fix potential compilation error
>   hw/block/nvme: add trace event for zone read check
>   hw/block/nvme: report non-mdts command size limit for dsm
> 
>  hw/block/nvme.h       |  1 +
>  include/block/nvme.h  | 11 +++++++++++
>  hw/block/nvme.c       | 45 ++++++++++++++++++++++++++++---------------
>  hw/block/trace-events |  2 ++
>  4 files changed, 43 insertions(+), 16 deletions(-)
> 

Applied to nvme-next!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-03-02  6:28 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-22 18:47 [PATCH v2 0/5] hw/block/nvme: misc fixes Klaus Jensen
2021-02-22 18:47 ` [PATCH v2 1/5] hw/block/nvme: remove unnecessary endian conversion Klaus Jensen
2021-02-22 18:47 ` [PATCH v2 2/5] hw/block/nvme: add identify trace event Klaus Jensen
2021-02-22 18:47 ` [PATCH v2 3/5] hw/block/nvme: fix potential compilation error Klaus Jensen
2021-02-22 18:47 ` [PATCH v2 4/5] hw/block/nvme: add trace event for zone read check Klaus Jensen
2021-02-22 18:47 ` [PATCH v2 5/5] hw/block/nvme: report non-mdts command size limit for dsm Klaus Jensen
2021-02-22 20:55   ` Keith Busch
2021-02-22 21:12     ` Klaus Jensen
2021-03-01 11:15       ` Klaus Jensen
2021-03-01 15:37         ` Keith Busch
2021-03-02  6:23 ` [PATCH v2 0/5] hw/block/nvme: misc fixes Klaus Jensen

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.