2018-02-05 22:33:58

by Stephen Bates

[permalink] [raw]
Subject: [PATCH] nvme-pci: Fix incorrect use of CMB size to calculate q_depth

From: Stephen Bates <[email protected]>

We should not be using the CMB to determine the permissable q_depth
when we don't plan to place any queues in the CMB. In the case of a
small CMB or large numbers of queues this could lead to shallow queues
when they don't need to be.

Signed-off-by: Stephen Bates <[email protected]>
---
drivers/nvme/host/pci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 0bc6a9e..0d099e9 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -1913,7 +1913,7 @@ static int nvme_setup_io_queues(struct nvme_dev *dev)
if (nr_io_queues == 0)
return 0;

- if (dev->cmb && (dev->cmbsz & NVME_CMBSZ_SQS)) {
+ if (dev->cmb && use_cmb_sqes && (dev->cmbsz & NVME_CMBSZ_SQS)) {
result = nvme_cmb_qdepth(dev, nr_io_queues,
sizeof(struct nvme_command));
if (result > 0)
--
2.7.4



2018-02-06 09:50:19

by Sagi Grimberg

[permalink] [raw]
Subject: Re: [PATCH] nvme-pci: Fix incorrect use of CMB size to calculate q_depth

Looks good,

Reviewed-by: Sagi Grimberg <[email protected]>

I'll pick this one up unless someone thinks I shouldn't..

2018-02-06 10:19:12

by Max Gurtovoy

[permalink] [raw]
Subject: Re: [PATCH] nvme-pci: Fix incorrect use of CMB size to calculate q_depth



On 2/6/2018 11:48 AM, Sagi Grimberg wrote:
> Looks good,
>
> Reviewed-by: Sagi Grimberg <[email protected]>
>
> I'll pick this one up unless someone thinks I shouldn't..

Looks good to me (I can imagine what scenario failed this :) ),

Reviewed-by: Max Gurtovoy <[email protected]>

>
> _______________________________________________
> Linux-nvme mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-nvme

2018-02-06 15:03:45

by Keith Busch

[permalink] [raw]
Subject: Re: [PATCH] nvme-pci: Fix incorrect use of CMB size to calculate q_depth

On Mon, Feb 05, 2018 at 03:32:23PM -0700, [email protected] wrote:
>
> - if (dev->cmb && (dev->cmbsz & NVME_CMBSZ_SQS)) {
> + if (dev->cmb && use_cmb_sqes && (dev->cmbsz & NVME_CMBSZ_SQS)) {

Is this a prep patch for something coming later? dev->cmb is already
NULL if use_cmb_sqes is false.

2018-02-06 15:57:59

by Stephen Bates

[permalink] [raw]
Subject: Re: [PATCH] nvme-pci: Fix incorrect use of CMB size to calculate q_depth


> On Feb 6, 2018, at 8:02 AM, Keith Busch <[email protected]> wrote:
>
>> On Mon, Feb 05, 2018 at 03:32:23PM -0700, [email protected] wrote:
>>
>> - if (dev->cmb && (dev->cmbsz & NVME_CMBSZ_SQS)) {
>> + if (dev->cmb && use_cmb_sqes && (dev->cmbsz & NVME_CMBSZ_SQS)) {
>
> Is this a prep patch for something coming later? dev->cmb is already
> NULL if use_cmb_sqes is false.

Thanks Keith.

Not sure how I missed this. I was working on OOT patches to enable WDS and RDS in the CMB. I *thought* I’d confirmed this patch was applicable to upstream. Looks like I did not do that correctly.

Sorry for the churn. We can leave this patch out for now. Thanks for the prompt feedback everyone!

Stephen