All of lore.kernel.org
 help / color / mirror / Atom feed
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>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Klaus Jensen <its@irrelevant.dk>
Subject: [PATCH for-6.0 6/7] hw/block/nvme: update dmsrl limit on namespace detachment
Date: Wed, 24 Mar 2021 21:09:06 +0100	[thread overview]
Message-ID: <20210324200907.408996-7-its@irrelevant.dk> (raw)
In-Reply-To: <20210324200907.408996-1-its@irrelevant.dk>

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

The Non-MDTS DMSRL limit must be recomputed when namespaces are
detached.

Fixes: 645ce1a70cb6 ("hw/block/nvme: support namespace attachment command")
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
---
 hw/block/nvme.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 403c8381a498..e84e43b2692d 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -4876,6 +4876,21 @@ static uint16_t nvme_aer(NvmeCtrl *n, NvmeRequest *req)
     return NVME_NO_COMPLETE;
 }
 
+static void __nvme_update_dmrsl(NvmeCtrl *n)
+{
+    int nsid;
+
+    for (nsid = 1; nsid <= NVME_MAX_NAMESPACES; nsid++) {
+        NvmeNamespace *ns = nvme_ns(n, nsid);
+        if (!ns) {
+            continue;
+        }
+
+        n->dmrsl = MIN_NON_ZERO(n->dmrsl,
+                                BDRV_REQUEST_MAX_BYTES / nvme_l2b(ns, 1));
+    }
+}
+
 static void __nvme_select_ns_iocs(NvmeCtrl *n, NvmeNamespace *ns);
 static uint16_t nvme_ns_attachment(NvmeCtrl *n, NvmeRequest *req)
 {
@@ -4925,6 +4940,8 @@ static uint16_t nvme_ns_attachment(NvmeCtrl *n, NvmeRequest *req)
             }
 
             nvme_ns_detach(ctrl, ns);
+
+            __nvme_update_dmrsl(ctrl);
         }
 
         /*
-- 
2.31.0



  parent reply	other threads:[~2021-03-24 20:28 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-24 20:09 [PATCH for-6.0 0/7] hw/block/nvme: misc fixes Klaus Jensen
2021-03-24 20:09 ` [PATCH for-6.0 1/7] hw/block/nvme: fix pi constraint check Klaus Jensen
     [not found]   ` <CGME20210329142606epcas5p45c24d24ea384e7bd68c368f1083c1b84@epcas5p4.samsung.com>
2021-03-29 14:22     ` Gollu Appalanaidu
2021-03-30  7:24       ` Klaus Jensen
2021-03-30 11:47         ` Gollu Appalanaidu
2021-03-24 20:09 ` [PATCH for-6.0 2/7] hw/block/nvme: fix missing string representation for ns attachment Klaus Jensen
     [not found]   ` <CGME20210329144714epcas5p4adab8d7549b97fcf3b838f18ab9e070a@epcas5p4.samsung.com>
2021-03-29 14:44     ` Gollu Appalanaidu
2021-03-24 20:09 ` [PATCH for-6.0 3/7] hw/block/nvme: fix the nsid 'invalid' value Klaus Jensen
2021-03-24 20:09 ` [PATCH for-6.0 4/7] hw/block/nvme: fix controller namespaces array indexing Klaus Jensen
2021-03-24 20:09 ` [PATCH for-6.0 5/7] hw/block/nvme: fix warning about legacy namespace configuration Klaus Jensen
     [not found]   ` <CGME20210330115514epcas5p20071ca07c66434dec11e4f8460267685@epcas5p2.samsung.com>
2021-03-30 11:52     ` Gollu Appalanaidu
2021-03-24 20:09 ` Klaus Jensen [this message]
     [not found]   ` <CGME20210330115308epcas5p2f9a0bd130eccb2ce89cba840f2a10b41@epcas5p2.samsung.com>
2021-03-30 11:50     ` [PATCH for-6.0 6/7] hw/block/nvme: update dmsrl limit on namespace detachment Gollu Appalanaidu
2021-03-24 20:09 ` [PATCH for-6.0 7/7] hw/block/nvme: fix handling of private namespaces Klaus Jensen
     [not found]   ` <CGME20210405123541epcas5p21088333e3cbaa1b40e10e7c20ab889aa@epcas5p2.samsung.com>
2021-04-05 12:32     ` Gollu Appalanaidu
2021-04-05 13:56       ` Klaus Jensen
2021-04-05 11:41 ` [PATCH for-6.0 0/7] hw/block/nvme: misc fixes Klaus Jensen
     [not found] ` <CGME20210405123641epcas5p25c0651272e4252ad5b4a96ab638371e7@epcas5p2.samsung.com>
2021-04-05 12:33   ` Gollu Appalanaidu

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=20210324200907.408996-7-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 \
    --cc=stefanha@redhat.com \
    /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.