All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-08-23 12:56 ` Nilesh Javali
  0 siblings, 0 replies; 28+ messages in thread
From: Nilesh Javali @ 2021-08-23 12:56 UTC (permalink / raw)
  To: martin.petersen, linux-nvme; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

Currently nvme fc doesn't support map queue functionality. This patch
set adds map_queue functionality to nvme_fc_mq_ops and
nvme_fc_port_template, providing an option to LLDs to map queues
similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
with this change as it helps in reducing cpu thrashing.

Saurav Kashyap (2):
  nvme-fc: Add support for map_queues.
  qla2xxx: Add map_queues support to nvme.

 drivers/nvme/host/fc.c          | 25 +++++++++++++++++++++++++
 drivers/scsi/qla2xxx/qla_nvme.c | 14 ++++++++++++++
 include/linux/nvme-fc-driver.h  |  7 +++++++
 3 files changed, 46 insertions(+)


base-commit: 92cc94adfce4683d0b421cbf59013703368aaeb9
-- 
2.23.1


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

* [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-08-23 12:56 ` Nilesh Javali
  0 siblings, 0 replies; 28+ messages in thread
From: Nilesh Javali @ 2021-08-23 12:56 UTC (permalink / raw)
  To: martin.petersen, linux-nvme; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

Currently nvme fc doesn't support map queue functionality. This patch
set adds map_queue functionality to nvme_fc_mq_ops and
nvme_fc_port_template, providing an option to LLDs to map queues
similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
with this change as it helps in reducing cpu thrashing.

Saurav Kashyap (2):
  nvme-fc: Add support for map_queues.
  qla2xxx: Add map_queues support to nvme.

 drivers/nvme/host/fc.c          | 25 +++++++++++++++++++++++++
 drivers/scsi/qla2xxx/qla_nvme.c | 14 ++++++++++++++
 include/linux/nvme-fc-driver.h  |  7 +++++++
 3 files changed, 46 insertions(+)


base-commit: 92cc94adfce4683d0b421cbf59013703368aaeb9
-- 
2.23.1


_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* [PATCH 1/2] nvme-fc: Add support for map_queues.
  2021-08-23 12:56 ` Nilesh Javali
@ 2021-08-23 12:56   ` Nilesh Javali
  -1 siblings, 0 replies; 28+ messages in thread
From: Nilesh Javali @ 2021-08-23 12:56 UTC (permalink / raw)
  To: martin.petersen, linux-nvme; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Saurav Kashyap <skashyap@marvell.com>

NVMe FC don't have support for map queues as compared
to pci, rdma and tcp. It doesn't provide a provision to
LLDs to change the queue mapping like scsi layer. This
patch adds an option for LLDs to change the queue mapping.

Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/nvme/host/fc.c         | 25 +++++++++++++++++++++++++
 include/linux/nvme-fc-driver.h |  7 +++++++
 2 files changed, 32 insertions(+)

diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
index b08a61ca283f..078895809098 100644
--- a/drivers/nvme/host/fc.c
+++ b/drivers/nvme/host/fc.c
@@ -16,6 +16,7 @@
 #include <linux/nvme-fc.h>
 #include "fc.h"
 #include <scsi/scsi_transport_fc.h>
+#include <linux/blk-mq-pci.h>
 
 /* *************************** Data Structures/Defines ****************** */
 
@@ -2839,6 +2840,29 @@ nvme_fc_complete_rq(struct request *rq)
 	nvme_fc_ctrl_put(ctrl);
 }
 
+static int nvme_fc_map_queues(struct blk_mq_tag_set *set)
+{
+	int i;
+	struct nvme_fc_ctrl *ctrl;
+	struct blk_mq_queue_map *map = NULL;
+
+	ctrl = set->driver_data;
+	for (i = 0; i < set->nr_maps; i++) {
+		map = &set->map[i];
+
+		if (!map->nr_queues) {
+			WARN_ON(i == HCTX_TYPE_DEFAULT);
+			continue;
+		}
+
+		/* Call LLDD map queue functionality if defined */
+		if (ctrl->lport->ops->map_queues)
+			ctrl->lport->ops->map_queues(&ctrl->lport->localport, map);
+		else
+			blk_mq_map_queues(map);
+	}
+	return 0;
+}
 
 static const struct blk_mq_ops nvme_fc_mq_ops = {
 	.queue_rq	= nvme_fc_queue_rq,
@@ -2847,6 +2871,7 @@ static const struct blk_mq_ops nvme_fc_mq_ops = {
 	.exit_request	= nvme_fc_exit_request,
 	.init_hctx	= nvme_fc_init_hctx,
 	.timeout	= nvme_fc_timeout,
+	.map_queues	= nvme_fc_map_queues,
 };
 
 static int
diff --git a/include/linux/nvme-fc-driver.h b/include/linux/nvme-fc-driver.h
index 2a38f2b477a5..cb909edb76c4 100644
--- a/include/linux/nvme-fc-driver.h
+++ b/include/linux/nvme-fc-driver.h
@@ -7,6 +7,7 @@
 #define _NVME_FC_DRIVER_H 1
 
 #include <linux/scatterlist.h>
+#include <linux/blk-mq.h>
 
 
 /*
@@ -497,6 +498,8 @@ struct nvme_fc_port_template {
 	int	(*xmt_ls_rsp)(struct nvme_fc_local_port *localport,
 				struct nvme_fc_remote_port *rport,
 				struct nvmefc_ls_rsp *ls_rsp);
+	void	(*map_queues)(struct nvme_fc_local_port *localport,
+			      struct blk_mq_queue_map *map);
 
 	u32	max_hw_queues;
 	u16	max_sgl_segments;
@@ -779,6 +782,10 @@ struct nvmet_fc_target_port {
  *       LS received.
  *       Entrypoint is Mandatory.
  *
+ * @map_queues: This functions lets the driver expose the queue mapping
+ *	 to the block layer.
+ *       Entrypoint is Optional.
+ *
  * @fcp_op:  Called to perform a data transfer or transmit a response.
  *       The nvmefc_tgt_fcp_req structure is the same LLDD-supplied
  *       exchange structure specified in the nvmet_fc_rcv_fcp_req() call
-- 
2.23.1


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

* [PATCH 1/2] nvme-fc: Add support for map_queues.
@ 2021-08-23 12:56   ` Nilesh Javali
  0 siblings, 0 replies; 28+ messages in thread
From: Nilesh Javali @ 2021-08-23 12:56 UTC (permalink / raw)
  To: martin.petersen, linux-nvme; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Saurav Kashyap <skashyap@marvell.com>

NVMe FC don't have support for map queues as compared
to pci, rdma and tcp. It doesn't provide a provision to
LLDs to change the queue mapping like scsi layer. This
patch adds an option for LLDs to change the queue mapping.

Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/nvme/host/fc.c         | 25 +++++++++++++++++++++++++
 include/linux/nvme-fc-driver.h |  7 +++++++
 2 files changed, 32 insertions(+)

diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
index b08a61ca283f..078895809098 100644
--- a/drivers/nvme/host/fc.c
+++ b/drivers/nvme/host/fc.c
@@ -16,6 +16,7 @@
 #include <linux/nvme-fc.h>
 #include "fc.h"
 #include <scsi/scsi_transport_fc.h>
+#include <linux/blk-mq-pci.h>
 
 /* *************************** Data Structures/Defines ****************** */
 
@@ -2839,6 +2840,29 @@ nvme_fc_complete_rq(struct request *rq)
 	nvme_fc_ctrl_put(ctrl);
 }
 
+static int nvme_fc_map_queues(struct blk_mq_tag_set *set)
+{
+	int i;
+	struct nvme_fc_ctrl *ctrl;
+	struct blk_mq_queue_map *map = NULL;
+
+	ctrl = set->driver_data;
+	for (i = 0; i < set->nr_maps; i++) {
+		map = &set->map[i];
+
+		if (!map->nr_queues) {
+			WARN_ON(i == HCTX_TYPE_DEFAULT);
+			continue;
+		}
+
+		/* Call LLDD map queue functionality if defined */
+		if (ctrl->lport->ops->map_queues)
+			ctrl->lport->ops->map_queues(&ctrl->lport->localport, map);
+		else
+			blk_mq_map_queues(map);
+	}
+	return 0;
+}
 
 static const struct blk_mq_ops nvme_fc_mq_ops = {
 	.queue_rq	= nvme_fc_queue_rq,
@@ -2847,6 +2871,7 @@ static const struct blk_mq_ops nvme_fc_mq_ops = {
 	.exit_request	= nvme_fc_exit_request,
 	.init_hctx	= nvme_fc_init_hctx,
 	.timeout	= nvme_fc_timeout,
+	.map_queues	= nvme_fc_map_queues,
 };
 
 static int
diff --git a/include/linux/nvme-fc-driver.h b/include/linux/nvme-fc-driver.h
index 2a38f2b477a5..cb909edb76c4 100644
--- a/include/linux/nvme-fc-driver.h
+++ b/include/linux/nvme-fc-driver.h
@@ -7,6 +7,7 @@
 #define _NVME_FC_DRIVER_H 1
 
 #include <linux/scatterlist.h>
+#include <linux/blk-mq.h>
 
 
 /*
@@ -497,6 +498,8 @@ struct nvme_fc_port_template {
 	int	(*xmt_ls_rsp)(struct nvme_fc_local_port *localport,
 				struct nvme_fc_remote_port *rport,
 				struct nvmefc_ls_rsp *ls_rsp);
+	void	(*map_queues)(struct nvme_fc_local_port *localport,
+			      struct blk_mq_queue_map *map);
 
 	u32	max_hw_queues;
 	u16	max_sgl_segments;
@@ -779,6 +782,10 @@ struct nvmet_fc_target_port {
  *       LS received.
  *       Entrypoint is Mandatory.
  *
+ * @map_queues: This functions lets the driver expose the queue mapping
+ *	 to the block layer.
+ *       Entrypoint is Optional.
+ *
  * @fcp_op:  Called to perform a data transfer or transmit a response.
  *       The nvmefc_tgt_fcp_req structure is the same LLDD-supplied
  *       exchange structure specified in the nvmet_fc_rcv_fcp_req() call
-- 
2.23.1


_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* [PATCH 2/2] qla2xxx: Add map_queues support to nvme.
  2021-08-23 12:56 ` Nilesh Javali
@ 2021-08-23 12:56   ` Nilesh Javali
  -1 siblings, 0 replies; 28+ messages in thread
From: Nilesh Javali @ 2021-08-23 12:56 UTC (permalink / raw)
  To: martin.petersen, linux-nvme; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Saurav Kashyap <skashyap@marvell.com>

Add callback for map queues and use block layer
blk_mq_pci_map_queues for mapping. With this mapping
minimum 10% increase in performance is noticed.

Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_nvme.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/scsi/qla2xxx/qla_nvme.c b/drivers/scsi/qla2xxx/qla_nvme.c
index 05cad06ff165..7f9a7abc615b 100644
--- a/drivers/scsi/qla2xxx/qla_nvme.c
+++ b/drivers/scsi/qla2xxx/qla_nvme.c
@@ -8,6 +8,8 @@
 #include <linux/delay.h>
 #include <linux/nvme.h>
 #include <linux/nvme-fc.h>
+#include <linux/blk-mq-pci.h>
+#include <linux/blk-mq.h>
 
 static struct nvme_fc_port_template qla_nvme_fc_transport;
 
@@ -634,6 +636,17 @@ static int qla_nvme_post_cmd(struct nvme_fc_local_port *lport,
 	return rval;
 }
 
+static void qla_nvme_map_queues(struct nvme_fc_local_port *lport, struct blk_mq_queue_map *map)
+{
+	int rc;
+	struct scsi_qla_host *vha = lport->private;
+
+	rc = blk_mq_pci_map_queues(map, vha->hw->pdev, vha->irq_offset);
+	if (rc)
+		ql_log(ql_log_warn, vha, 0x21de,
+		       "pci map queue failed 0x%x", rc);
+}
+
 static void qla_nvme_localport_delete(struct nvme_fc_local_port *lport)
 {
 	struct scsi_qla_host *vha = lport->private;
@@ -668,6 +681,7 @@ static struct nvme_fc_port_template qla_nvme_fc_transport = {
 	.ls_abort	= qla_nvme_ls_abort,
 	.fcp_io		= qla_nvme_post_cmd,
 	.fcp_abort	= qla_nvme_fcp_abort,
+	.map_queues	= qla_nvme_map_queues,
 	.max_hw_queues  = 8,
 	.max_sgl_segments = 1024,
 	.max_dif_sgl_segments = 64,
-- 
2.23.1


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

* [PATCH 2/2] qla2xxx: Add map_queues support to nvme.
@ 2021-08-23 12:56   ` Nilesh Javali
  0 siblings, 0 replies; 28+ messages in thread
From: Nilesh Javali @ 2021-08-23 12:56 UTC (permalink / raw)
  To: martin.petersen, linux-nvme; +Cc: linux-scsi, GR-QLogic-Storage-Upstream

From: Saurav Kashyap <skashyap@marvell.com>

Add callback for map queues and use block layer
blk_mq_pci_map_queues for mapping. With this mapping
minimum 10% increase in performance is noticed.

Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
---
 drivers/scsi/qla2xxx/qla_nvme.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/scsi/qla2xxx/qla_nvme.c b/drivers/scsi/qla2xxx/qla_nvme.c
index 05cad06ff165..7f9a7abc615b 100644
--- a/drivers/scsi/qla2xxx/qla_nvme.c
+++ b/drivers/scsi/qla2xxx/qla_nvme.c
@@ -8,6 +8,8 @@
 #include <linux/delay.h>
 #include <linux/nvme.h>
 #include <linux/nvme-fc.h>
+#include <linux/blk-mq-pci.h>
+#include <linux/blk-mq.h>
 
 static struct nvme_fc_port_template qla_nvme_fc_transport;
 
@@ -634,6 +636,17 @@ static int qla_nvme_post_cmd(struct nvme_fc_local_port *lport,
 	return rval;
 }
 
+static void qla_nvme_map_queues(struct nvme_fc_local_port *lport, struct blk_mq_queue_map *map)
+{
+	int rc;
+	struct scsi_qla_host *vha = lport->private;
+
+	rc = blk_mq_pci_map_queues(map, vha->hw->pdev, vha->irq_offset);
+	if (rc)
+		ql_log(ql_log_warn, vha, 0x21de,
+		       "pci map queue failed 0x%x", rc);
+}
+
 static void qla_nvme_localport_delete(struct nvme_fc_local_port *lport)
 {
 	struct scsi_qla_host *vha = lport->private;
@@ -668,6 +681,7 @@ static struct nvme_fc_port_template qla_nvme_fc_transport = {
 	.ls_abort	= qla_nvme_ls_abort,
 	.fcp_io		= qla_nvme_post_cmd,
 	.fcp_abort	= qla_nvme_fcp_abort,
+	.map_queues	= qla_nvme_map_queues,
 	.max_hw_queues  = 8,
 	.max_sgl_segments = 1024,
 	.max_dif_sgl_segments = 64,
-- 
2.23.1


_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
  2021-08-23 12:56 ` Nilesh Javali
@ 2021-08-23 17:21   ` Sagi Grimberg
  -1 siblings, 0 replies; 28+ messages in thread
From: Sagi Grimberg @ 2021-08-23 17:21 UTC (permalink / raw)
  To: Nilesh Javali, martin.petersen, linux-nvme, Ming Lei
  Cc: linux-scsi, GR-QLogic-Storage-Upstream


On 8/23/21 5:56 AM, Nilesh Javali wrote:
> Currently nvme fc doesn't support map queue functionality. This patch
> set adds map_queue functionality to nvme_fc_mq_ops and
> nvme_fc_port_template, providing an option to LLDs to map queues
> similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
> with this change as it helps in reducing cpu thrashing.

Does this make nvme-fc use managed irq?

CCing Ming to see if this affects his patchset.

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

* Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-08-23 17:21   ` Sagi Grimberg
  0 siblings, 0 replies; 28+ messages in thread
From: Sagi Grimberg @ 2021-08-23 17:21 UTC (permalink / raw)
  To: Nilesh Javali, martin.petersen, linux-nvme, Ming Lei
  Cc: linux-scsi, GR-QLogic-Storage-Upstream


On 8/23/21 5:56 AM, Nilesh Javali wrote:
> Currently nvme fc doesn't support map queue functionality. This patch
> set adds map_queue functionality to nvme_fc_mq_ops and
> nvme_fc_port_template, providing an option to LLDs to map queues
> similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
> with this change as it helps in reducing cpu thrashing.

Does this make nvme-fc use managed irq?

CCing Ming to see if this affects his patchset.

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* RE: [PATCH 0/2] qla2xxx - add nvme map_queues support
  2021-08-23 17:21   ` Sagi Grimberg
@ 2021-08-24  3:38     ` Saurav Kashyap
  -1 siblings, 0 replies; 28+ messages in thread
From: Saurav Kashyap @ 2021-08-24  3:38 UTC (permalink / raw)
  To: Sagi Grimberg, Nilesh Javali, martin.petersen, linux-nvme, Ming Lei
  Cc: linux-scsi, GR-QLogic-Storage-Upstream

Hi Sagi,
Comments inline

> -----Original Message-----
> From: Sagi Grimberg <sagi@grimberg.me>
> Sent: Monday, August 23, 2021 10:51 PM
> To: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com; linux-
> nvme@lists.infradead.org; Ming Lei <ming.lei@redhat.com>
> Cc: linux-scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-
> Storage-Upstream@marvell.com>
> Subject: Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> 
> 
> On 8/23/21 5:56 AM, Nilesh Javali wrote:
> > Currently nvme fc doesn't support map queue functionality. This patch
> > set adds map_queue functionality to nvme_fc_mq_ops and
> > nvme_fc_port_template, providing an option to LLDs to map queues
> > similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
> > with this change as it helps in reducing cpu thrashing.
> 
> Does this make nvme-fc use managed irq?

qla2xxx driver uses pci_alloc_irq_vectors_affinity to have affinity with each MSI-X vector. Currently nvme queue are not mapped based on affinity and irq offset. The change is to use blk_mq_pci_map_queues for mapping, this function consider irq affinity as well as irq offset.

Thanks,
~Saurav
> 
> CCing Ming to see if this affects his patchset.

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

* RE: [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-08-24  3:38     ` Saurav Kashyap
  0 siblings, 0 replies; 28+ messages in thread
From: Saurav Kashyap @ 2021-08-24  3:38 UTC (permalink / raw)
  To: Sagi Grimberg, Nilesh Javali, martin.petersen, linux-nvme, Ming Lei
  Cc: linux-scsi, GR-QLogic-Storage-Upstream

Hi Sagi,
Comments inline

> -----Original Message-----
> From: Sagi Grimberg <sagi@grimberg.me>
> Sent: Monday, August 23, 2021 10:51 PM
> To: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com; linux-
> nvme@lists.infradead.org; Ming Lei <ming.lei@redhat.com>
> Cc: linux-scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-
> Storage-Upstream@marvell.com>
> Subject: Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> 
> 
> On 8/23/21 5:56 AM, Nilesh Javali wrote:
> > Currently nvme fc doesn't support map queue functionality. This patch
> > set adds map_queue functionality to nvme_fc_mq_ops and
> > nvme_fc_port_template, providing an option to LLDs to map queues
> > similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
> > with this change as it helps in reducing cpu thrashing.
> 
> Does this make nvme-fc use managed irq?

qla2xxx driver uses pci_alloc_irq_vectors_affinity to have affinity with each MSI-X vector. Currently nvme queue are not mapped based on affinity and irq offset. The change is to use blk_mq_pci_map_queues for mapping, this function consider irq affinity as well as irq offset.

Thanks,
~Saurav
> 
> CCing Ming to see if this affects his patchset.
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
  2021-08-24  3:38     ` Saurav Kashyap
@ 2021-08-24  3:46       ` Ming Lei
  -1 siblings, 0 replies; 28+ messages in thread
From: Ming Lei @ 2021-08-24  3:46 UTC (permalink / raw)
  To: Saurav Kashyap
  Cc: Sagi Grimberg, Nilesh Javali, martin.petersen, linux-nvme,
	linux-scsi, GR-QLogic-Storage-Upstream

On Tue, Aug 24, 2021 at 03:38:24AM +0000, Saurav Kashyap wrote:
> Hi Sagi,
> Comments inline
> 
> > -----Original Message-----
> > From: Sagi Grimberg <sagi@grimberg.me>
> > Sent: Monday, August 23, 2021 10:51 PM
> > To: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com; linux-
> > nvme@lists.infradead.org; Ming Lei <ming.lei@redhat.com>
> > Cc: linux-scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-
> > Storage-Upstream@marvell.com>
> > Subject: Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> > 
> > 
> > On 8/23/21 5:56 AM, Nilesh Javali wrote:
> > > Currently nvme fc doesn't support map queue functionality. This patch
> > > set adds map_queue functionality to nvme_fc_mq_ops and
> > > nvme_fc_port_template, providing an option to LLDs to map queues
> > > similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
> > > with this change as it helps in reducing cpu thrashing.
> > 
> > Does this make nvme-fc use managed irq?
> 
> qla2xxx driver uses pci_alloc_irq_vectors_affinity to have affinity with each MSI-X vector. Currently nvme queue are not mapped based on affinity and irq offset. The change is to use blk_mq_pci_map_queues for mapping, this function consider irq affinity as well as irq offset.
> 

OK, got it. Even though without this patchset, nvme-fc actually relies
on managed irq since qla2xxx driver uses pci_alloc_irq_vectors_affinity.

Now the patchset[1] isn't good for addressing the issue in
blk_mq_alloc_request_hctx().

[1] https://lore.kernel.org/linux-block/YR7demOSG6MKFVAF@T590/T/#t


Thanks,
Ming


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

* Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-08-24  3:46       ` Ming Lei
  0 siblings, 0 replies; 28+ messages in thread
From: Ming Lei @ 2021-08-24  3:46 UTC (permalink / raw)
  To: Saurav Kashyap
  Cc: Sagi Grimberg, Nilesh Javali, martin.petersen, linux-nvme,
	linux-scsi, GR-QLogic-Storage-Upstream

On Tue, Aug 24, 2021 at 03:38:24AM +0000, Saurav Kashyap wrote:
> Hi Sagi,
> Comments inline
> 
> > -----Original Message-----
> > From: Sagi Grimberg <sagi@grimberg.me>
> > Sent: Monday, August 23, 2021 10:51 PM
> > To: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com; linux-
> > nvme@lists.infradead.org; Ming Lei <ming.lei@redhat.com>
> > Cc: linux-scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-
> > Storage-Upstream@marvell.com>
> > Subject: Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> > 
> > 
> > On 8/23/21 5:56 AM, Nilesh Javali wrote:
> > > Currently nvme fc doesn't support map queue functionality. This patch
> > > set adds map_queue functionality to nvme_fc_mq_ops and
> > > nvme_fc_port_template, providing an option to LLDs to map queues
> > > similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
> > > with this change as it helps in reducing cpu thrashing.
> > 
> > Does this make nvme-fc use managed irq?
> 
> qla2xxx driver uses pci_alloc_irq_vectors_affinity to have affinity with each MSI-X vector. Currently nvme queue are not mapped based on affinity and irq offset. The change is to use blk_mq_pci_map_queues for mapping, this function consider irq affinity as well as irq offset.
> 

OK, got it. Even though without this patchset, nvme-fc actually relies
on managed irq since qla2xxx driver uses pci_alloc_irq_vectors_affinity.

Now the patchset[1] isn't good for addressing the issue in
blk_mq_alloc_request_hctx().

[1] https://lore.kernel.org/linux-block/YR7demOSG6MKFVAF@T590/T/#t


Thanks,
Ming


_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
  2021-08-24  3:46       ` Ming Lei
@ 2021-08-25  4:58         ` Saurav Kashyap
  -1 siblings, 0 replies; 28+ messages in thread
From: Saurav Kashyap @ 2021-08-25  4:58 UTC (permalink / raw)
  To: Ming Lei
  Cc: Sagi Grimberg, Nilesh Javali, martin.petersen, linux-nvme,
	linux-scsi, GR-QLogic-Storage-Upstream

Hi Ming,
Comments inline

> -----Original Message-----
> From: Ming Lei <ming.lei@redhat.com>
> Sent: Tuesday, August 24, 2021 9:17 AM
> To: Saurav Kashyap <skashyap@marvell.com>
> Cc: Sagi Grimberg <sagi@grimberg.me>; Nilesh Javali <njavali@marvell.com>;
> martin.petersen@oracle.com; linux-nvme@lists.infradead.org; linux-
> scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> Upstream@marvell.com>
> Subject: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> 
> External Email
> 
> ----------------------------------------------------------------------
> On Tue, Aug 24, 2021 at 03:38:24AM +0000, Saurav Kashyap wrote:
> > Hi Sagi,
> > Comments inline
> >
> > > -----Original Message-----
> > > From: Sagi Grimberg <sagi@grimberg.me>
> > > Sent: Monday, August 23, 2021 10:51 PM
> > > To: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com;
> linux-
> > > nvme@lists.infradead.org; Ming Lei <ming.lei@redhat.com>
> > > Cc: linux-scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-
> > > Storage-Upstream@marvell.com>
> > > Subject: Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> > >
> > >
> > > On 8/23/21 5:56 AM, Nilesh Javali wrote:
> > > > Currently nvme fc doesn't support map queue functionality. This patch
> > > > set adds map_queue functionality to nvme_fc_mq_ops and
> > > > nvme_fc_port_template, providing an option to LLDs to map queues
> > > > similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
> > > > with this change as it helps in reducing cpu thrashing.
> > >
> > > Does this make nvme-fc use managed irq?
> >
> > qla2xxx driver uses pci_alloc_irq_vectors_affinity to have affinity with each
> MSI-X vector. Currently nvme queue are not mapped based on affinity and irq
> offset. The change is to use blk_mq_pci_map_queues for mapping, this function
> consider irq affinity as well as irq offset.
> >
> 
> OK, got it. Even though without this patchset, nvme-fc actually relies
> on managed irq since qla2xxx driver uses pci_alloc_irq_vectors_affinity.
> 
> Now the patchset[1] isn't good for addressing the issue in
> blk_mq_alloc_request_hctx().

Can you please elaborate on this? Is there something needs to be done from my side?

Thanks,
~Saurav
> 
> [1] https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__lore.kernel.org_linux-2Dblock_YR7demOSG6MKFVAF-40T590_T_-
> 23t&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=ZHZbmY_LbM3DUZK_BDO1
> OITP3ot_Vkb_5w-
> gas5TBMQ&m=CqFDnfAsZphubKXkUx5gsRF6RZ2Qe6sxWkYq4pBfFD0&s=2Nba
> EUI5eB6_R6PxW8ld1Xn2OU3_UdD6D30uvFAWhow&e=
> 
> 
> Thanks,
> Ming


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

* RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-08-25  4:58         ` Saurav Kashyap
  0 siblings, 0 replies; 28+ messages in thread
From: Saurav Kashyap @ 2021-08-25  4:58 UTC (permalink / raw)
  To: Ming Lei
  Cc: Sagi Grimberg, Nilesh Javali, martin.petersen, linux-nvme,
	linux-scsi, GR-QLogic-Storage-Upstream

Hi Ming,
Comments inline

> -----Original Message-----
> From: Ming Lei <ming.lei@redhat.com>
> Sent: Tuesday, August 24, 2021 9:17 AM
> To: Saurav Kashyap <skashyap@marvell.com>
> Cc: Sagi Grimberg <sagi@grimberg.me>; Nilesh Javali <njavali@marvell.com>;
> martin.petersen@oracle.com; linux-nvme@lists.infradead.org; linux-
> scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> Upstream@marvell.com>
> Subject: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> 
> External Email
> 
> ----------------------------------------------------------------------
> On Tue, Aug 24, 2021 at 03:38:24AM +0000, Saurav Kashyap wrote:
> > Hi Sagi,
> > Comments inline
> >
> > > -----Original Message-----
> > > From: Sagi Grimberg <sagi@grimberg.me>
> > > Sent: Monday, August 23, 2021 10:51 PM
> > > To: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com;
> linux-
> > > nvme@lists.infradead.org; Ming Lei <ming.lei@redhat.com>
> > > Cc: linux-scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-
> > > Storage-Upstream@marvell.com>
> > > Subject: Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> > >
> > >
> > > On 8/23/21 5:56 AM, Nilesh Javali wrote:
> > > > Currently nvme fc doesn't support map queue functionality. This patch
> > > > set adds map_queue functionality to nvme_fc_mq_ops and
> > > > nvme_fc_port_template, providing an option to LLDs to map queues
> > > > similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
> > > > with this change as it helps in reducing cpu thrashing.
> > >
> > > Does this make nvme-fc use managed irq?
> >
> > qla2xxx driver uses pci_alloc_irq_vectors_affinity to have affinity with each
> MSI-X vector. Currently nvme queue are not mapped based on affinity and irq
> offset. The change is to use blk_mq_pci_map_queues for mapping, this function
> consider irq affinity as well as irq offset.
> >
> 
> OK, got it. Even though without this patchset, nvme-fc actually relies
> on managed irq since qla2xxx driver uses pci_alloc_irq_vectors_affinity.
> 
> Now the patchset[1] isn't good for addressing the issue in
> blk_mq_alloc_request_hctx().

Can you please elaborate on this? Is there something needs to be done from my side?

Thanks,
~Saurav
> 
> [1] https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__lore.kernel.org_linux-2Dblock_YR7demOSG6MKFVAF-40T590_T_-
> 23t&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=ZHZbmY_LbM3DUZK_BDO1
> OITP3ot_Vkb_5w-
> gas5TBMQ&m=CqFDnfAsZphubKXkUx5gsRF6RZ2Qe6sxWkYq4pBfFD0&s=2Nba
> EUI5eB6_R6PxW8ld1Xn2OU3_UdD6D30uvFAWhow&e=
> 
> 
> Thanks,
> Ming


_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
  2021-08-25  4:58         ` Saurav Kashyap
@ 2021-09-07  9:18           ` Saurav Kashyap
  -1 siblings, 0 replies; 28+ messages in thread
From: Saurav Kashyap @ 2021-09-07  9:18 UTC (permalink / raw)
  To: Ming Lei, Sagi Grimberg, linux-nvme
  Cc: Nilesh Javali, martin.petersen, linux-scsi, GR-QLogic-Storage-Upstream

Hi,

Can I get a review for this patch set?

Thanks,
~Saurav

> -----Original Message-----
> From: Saurav Kashyap <skashyap@marvell.com>
> Sent: Wednesday, August 25, 2021 10:29 AM
> To: Ming Lei <ming.lei@redhat.com>
> Cc: Sagi Grimberg <sagi@grimberg.me>; Nilesh Javali <njavali@marvell.com>;
> martin.petersen@oracle.com; linux-nvme@lists.infradead.org; linux-
> scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> Upstream@marvell.com>
> Subject: RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> 
> Hi Ming,
> Comments inline
> 
> > -----Original Message-----
> > From: Ming Lei <ming.lei@redhat.com>
> > Sent: Tuesday, August 24, 2021 9:17 AM
> > To: Saurav Kashyap <skashyap@marvell.com>
> > Cc: Sagi Grimberg <sagi@grimberg.me>; Nilesh Javali <njavali@marvell.com>;
> > martin.petersen@oracle.com; linux-nvme@lists.infradead.org; linux-
> > scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> > Upstream@marvell.com>
> > Subject: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> >
> > External Email
> >
> > ----------------------------------------------------------------------
> > On Tue, Aug 24, 2021 at 03:38:24AM +0000, Saurav Kashyap wrote:
> > > Hi Sagi,
> > > Comments inline
> > >
> > > > -----Original Message-----
> > > > From: Sagi Grimberg <sagi@grimberg.me>
> > > > Sent: Monday, August 23, 2021 10:51 PM
> > > > To: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com;
> > linux-
> > > > nvme@lists.infradead.org; Ming Lei <ming.lei@redhat.com>
> > > > Cc: linux-scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-
> > > > Storage-Upstream@marvell.com>
> > > > Subject: Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> > > >
> > > >
> > > > On 8/23/21 5:56 AM, Nilesh Javali wrote:
> > > > > Currently nvme fc doesn't support map queue functionality. This patch
> > > > > set adds map_queue functionality to nvme_fc_mq_ops and
> > > > > nvme_fc_port_template, providing an option to LLDs to map queues
> > > > > similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
> > > > > with this change as it helps in reducing cpu thrashing.
> > > >
> > > > Does this make nvme-fc use managed irq?
> > >
> > > qla2xxx driver uses pci_alloc_irq_vectors_affinity to have affinity with each
> > MSI-X vector. Currently nvme queue are not mapped based on affinity and irq
> > offset. The change is to use blk_mq_pci_map_queues for mapping, this
> function
> > consider irq affinity as well as irq offset.
> > >
> >
> > OK, got it. Even though without this patchset, nvme-fc actually relies
> > on managed irq since qla2xxx driver uses pci_alloc_irq_vectors_affinity.
> >
> > Now the patchset[1] isn't good for addressing the issue in
> > blk_mq_alloc_request_hctx().
> 
> Can you please elaborate on this? Is there something needs to be done from my
> side?
> 
> Thanks,
> ~Saurav
> >
> > [1] https://urldefense.proofpoint.com/v2/url?u=https-
> > 3A__lore.kernel.org_linux-2Dblock_YR7demOSG6MKFVAF-40T590_T_-
> >
> 23t&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=ZHZbmY_LbM3DUZK_BDO1
> > OITP3ot_Vkb_5w-
> >
> gas5TBMQ&m=CqFDnfAsZphubKXkUx5gsRF6RZ2Qe6sxWkYq4pBfFD0&s=2Nba
> > EUI5eB6_R6PxW8ld1Xn2OU3_UdD6D30uvFAWhow&e=
> >
> >
> > Thanks,
> > Ming


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

* RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-09-07  9:18           ` Saurav Kashyap
  0 siblings, 0 replies; 28+ messages in thread
From: Saurav Kashyap @ 2021-09-07  9:18 UTC (permalink / raw)
  To: Ming Lei, Sagi Grimberg, linux-nvme
  Cc: Nilesh Javali, martin.petersen, linux-scsi, GR-QLogic-Storage-Upstream

Hi,

Can I get a review for this patch set?

Thanks,
~Saurav

> -----Original Message-----
> From: Saurav Kashyap <skashyap@marvell.com>
> Sent: Wednesday, August 25, 2021 10:29 AM
> To: Ming Lei <ming.lei@redhat.com>
> Cc: Sagi Grimberg <sagi@grimberg.me>; Nilesh Javali <njavali@marvell.com>;
> martin.petersen@oracle.com; linux-nvme@lists.infradead.org; linux-
> scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> Upstream@marvell.com>
> Subject: RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> 
> Hi Ming,
> Comments inline
> 
> > -----Original Message-----
> > From: Ming Lei <ming.lei@redhat.com>
> > Sent: Tuesday, August 24, 2021 9:17 AM
> > To: Saurav Kashyap <skashyap@marvell.com>
> > Cc: Sagi Grimberg <sagi@grimberg.me>; Nilesh Javali <njavali@marvell.com>;
> > martin.petersen@oracle.com; linux-nvme@lists.infradead.org; linux-
> > scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> > Upstream@marvell.com>
> > Subject: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> >
> > External Email
> >
> > ----------------------------------------------------------------------
> > On Tue, Aug 24, 2021 at 03:38:24AM +0000, Saurav Kashyap wrote:
> > > Hi Sagi,
> > > Comments inline
> > >
> > > > -----Original Message-----
> > > > From: Sagi Grimberg <sagi@grimberg.me>
> > > > Sent: Monday, August 23, 2021 10:51 PM
> > > > To: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com;
> > linux-
> > > > nvme@lists.infradead.org; Ming Lei <ming.lei@redhat.com>
> > > > Cc: linux-scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-
> > > > Storage-Upstream@marvell.com>
> > > > Subject: Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> > > >
> > > >
> > > > On 8/23/21 5:56 AM, Nilesh Javali wrote:
> > > > > Currently nvme fc doesn't support map queue functionality. This patch
> > > > > set adds map_queue functionality to nvme_fc_mq_ops and
> > > > > nvme_fc_port_template, providing an option to LLDs to map queues
> > > > > similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
> > > > > with this change as it helps in reducing cpu thrashing.
> > > >
> > > > Does this make nvme-fc use managed irq?
> > >
> > > qla2xxx driver uses pci_alloc_irq_vectors_affinity to have affinity with each
> > MSI-X vector. Currently nvme queue are not mapped based on affinity and irq
> > offset. The change is to use blk_mq_pci_map_queues for mapping, this
> function
> > consider irq affinity as well as irq offset.
> > >
> >
> > OK, got it. Even though without this patchset, nvme-fc actually relies
> > on managed irq since qla2xxx driver uses pci_alloc_irq_vectors_affinity.
> >
> > Now the patchset[1] isn't good for addressing the issue in
> > blk_mq_alloc_request_hctx().
> 
> Can you please elaborate on this? Is there something needs to be done from my
> side?
> 
> Thanks,
> ~Saurav
> >
> > [1] https://urldefense.proofpoint.com/v2/url?u=https-
> > 3A__lore.kernel.org_linux-2Dblock_YR7demOSG6MKFVAF-40T590_T_-
> >
> 23t&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=ZHZbmY_LbM3DUZK_BDO1
> > OITP3ot_Vkb_5w-
> >
> gas5TBMQ&m=CqFDnfAsZphubKXkUx5gsRF6RZ2Qe6sxWkYq4pBfFD0&s=2Nba
> > EUI5eB6_R6PxW8ld1Xn2OU3_UdD6D30uvFAWhow&e=
> >
> >
> > Thanks,
> > Ming


_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
  2021-09-07  9:18           ` Saurav Kashyap
@ 2021-09-14  8:07             ` Saurav Kashyap
  -1 siblings, 0 replies; 28+ messages in thread
From: Saurav Kashyap @ 2021-09-14  8:07 UTC (permalink / raw)
  To: Ming Lei, Sagi Grimberg, linux-nvme, hch
  Cc: Nilesh Javali, martin.petersen, linux-scsi,
	GR-QLogic-Storage-Upstream, james.smart, axboe, kbusch

Hi Sagi/Christoph,

I haven't heard anything on this and there are no review comments on this patch set, kindly include this in nvme tree.

Thanks,
~Saurav


> -----Original Message-----
> From: Saurav Kashyap
> Sent: Tuesday, September 7, 2021 2:48 PM
> To: Ming Lei <ming.lei@redhat.com>; Sagi Grimberg <sagi@grimberg.me>;
> linux-nvme@lists.infradead.org
> Cc: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com; linux-
> scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> Upstream@marvell.com>
> Subject: RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> 
> Hi,
> 
> Can I get a review for this patch set?
> 
> Thanks,
> ~Saurav
> 
> > -----Original Message-----
> > From: Saurav Kashyap <skashyap@marvell.com>
> > Sent: Wednesday, August 25, 2021 10:29 AM
> > To: Ming Lei <ming.lei@redhat.com>
> > Cc: Sagi Grimberg <sagi@grimberg.me>; Nilesh Javali <njavali@marvell.com>;
> > martin.petersen@oracle.com; linux-nvme@lists.infradead.org; linux-
> > scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> > Upstream@marvell.com>
> > Subject: RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> >
> > Hi Ming,
> > Comments inline
> >
> > > -----Original Message-----
> > > From: Ming Lei <ming.lei@redhat.com>
> > > Sent: Tuesday, August 24, 2021 9:17 AM
> > > To: Saurav Kashyap <skashyap@marvell.com>
> > > Cc: Sagi Grimberg <sagi@grimberg.me>; Nilesh Javali
> <njavali@marvell.com>;
> > > martin.petersen@oracle.com; linux-nvme@lists.infradead.org; linux-
> > > scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> > > Upstream@marvell.com>
> > > Subject: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> > >
> > > External Email
> > >
> > > ----------------------------------------------------------------------
> > > On Tue, Aug 24, 2021 at 03:38:24AM +0000, Saurav Kashyap wrote:
> > > > Hi Sagi,
> > > > Comments inline
> > > >
> > > > > -----Original Message-----
> > > > > From: Sagi Grimberg <sagi@grimberg.me>
> > > > > Sent: Monday, August 23, 2021 10:51 PM
> > > > > To: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com;
> > > linux-
> > > > > nvme@lists.infradead.org; Ming Lei <ming.lei@redhat.com>
> > > > > Cc: linux-scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-
> QLogic-
> > > > > Storage-Upstream@marvell.com>
> > > > > Subject: Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> > > > >
> > > > >
> > > > > On 8/23/21 5:56 AM, Nilesh Javali wrote:
> > > > > > Currently nvme fc doesn't support map queue functionality. This patch
> > > > > > set adds map_queue functionality to nvme_fc_mq_ops and
> > > > > > nvme_fc_port_template, providing an option to LLDs to map queues
> > > > > > similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
> > > > > > with this change as it helps in reducing cpu thrashing.
> > > > >
> > > > > Does this make nvme-fc use managed irq?
> > > >
> > > > qla2xxx driver uses pci_alloc_irq_vectors_affinity to have affinity with
> each
> > > MSI-X vector. Currently nvme queue are not mapped based on affinity and
> irq
> > > offset. The change is to use blk_mq_pci_map_queues for mapping, this
> > function
> > > consider irq affinity as well as irq offset.
> > > >
> > >
> > > OK, got it. Even though without this patchset, nvme-fc actually relies
> > > on managed irq since qla2xxx driver uses pci_alloc_irq_vectors_affinity.
> > >
> > > Now the patchset[1] isn't good for addressing the issue in
> > > blk_mq_alloc_request_hctx().
> >
> > Can you please elaborate on this? Is there something needs to be done from
> my
> > side?
> >
> > Thanks,
> > ~Saurav
> > >
> > > [1] https://urldefense.proofpoint.com/v2/url?u=https-
> > > 3A__lore.kernel.org_linux-2Dblock_YR7demOSG6MKFVAF-40T590_T_-
> > >
> >
> 23t&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=ZHZbmY_LbM3DUZK_BDO1
> > > OITP3ot_Vkb_5w-
> > >
> >
> gas5TBMQ&m=CqFDnfAsZphubKXkUx5gsRF6RZ2Qe6sxWkYq4pBfFD0&s=2Nba
> > > EUI5eB6_R6PxW8ld1Xn2OU3_UdD6D30uvFAWhow&e=
> > >
> > >
> > > Thanks,
> > > Ming


_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-09-14  8:07             ` Saurav Kashyap
  0 siblings, 0 replies; 28+ messages in thread
From: Saurav Kashyap @ 2021-09-14  8:07 UTC (permalink / raw)
  To: Ming Lei, Sagi Grimberg, linux-nvme, hch
  Cc: Nilesh Javali, martin.petersen, linux-scsi,
	GR-QLogic-Storage-Upstream, james.smart, axboe, kbusch

Hi Sagi/Christoph,

I haven't heard anything on this and there are no review comments on this patch set, kindly include this in nvme tree.

Thanks,
~Saurav


> -----Original Message-----
> From: Saurav Kashyap
> Sent: Tuesday, September 7, 2021 2:48 PM
> To: Ming Lei <ming.lei@redhat.com>; Sagi Grimberg <sagi@grimberg.me>;
> linux-nvme@lists.infradead.org
> Cc: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com; linux-
> scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> Upstream@marvell.com>
> Subject: RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> 
> Hi,
> 
> Can I get a review for this patch set?
> 
> Thanks,
> ~Saurav
> 
> > -----Original Message-----
> > From: Saurav Kashyap <skashyap@marvell.com>
> > Sent: Wednesday, August 25, 2021 10:29 AM
> > To: Ming Lei <ming.lei@redhat.com>
> > Cc: Sagi Grimberg <sagi@grimberg.me>; Nilesh Javali <njavali@marvell.com>;
> > martin.petersen@oracle.com; linux-nvme@lists.infradead.org; linux-
> > scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> > Upstream@marvell.com>
> > Subject: RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> >
> > Hi Ming,
> > Comments inline
> >
> > > -----Original Message-----
> > > From: Ming Lei <ming.lei@redhat.com>
> > > Sent: Tuesday, August 24, 2021 9:17 AM
> > > To: Saurav Kashyap <skashyap@marvell.com>
> > > Cc: Sagi Grimberg <sagi@grimberg.me>; Nilesh Javali
> <njavali@marvell.com>;
> > > martin.petersen@oracle.com; linux-nvme@lists.infradead.org; linux-
> > > scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> > > Upstream@marvell.com>
> > > Subject: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> > >
> > > External Email
> > >
> > > ----------------------------------------------------------------------
> > > On Tue, Aug 24, 2021 at 03:38:24AM +0000, Saurav Kashyap wrote:
> > > > Hi Sagi,
> > > > Comments inline
> > > >
> > > > > -----Original Message-----
> > > > > From: Sagi Grimberg <sagi@grimberg.me>
> > > > > Sent: Monday, August 23, 2021 10:51 PM
> > > > > To: Nilesh Javali <njavali@marvell.com>; martin.petersen@oracle.com;
> > > linux-
> > > > > nvme@lists.infradead.org; Ming Lei <ming.lei@redhat.com>
> > > > > Cc: linux-scsi@vger.kernel.org; GR-QLogic-Storage-Upstream <GR-
> QLogic-
> > > > > Storage-Upstream@marvell.com>
> > > > > Subject: Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
> > > > >
> > > > >
> > > > > On 8/23/21 5:56 AM, Nilesh Javali wrote:
> > > > > > Currently nvme fc doesn't support map queue functionality. This patch
> > > > > > set adds map_queue functionality to nvme_fc_mq_ops and
> > > > > > nvme_fc_port_template, providing an option to LLDs to map queues
> > > > > > similar to SCSI. For qla2xxx, minimum 10% improvement is noticed
> > > > > > with this change as it helps in reducing cpu thrashing.
> > > > >
> > > > > Does this make nvme-fc use managed irq?
> > > >
> > > > qla2xxx driver uses pci_alloc_irq_vectors_affinity to have affinity with
> each
> > > MSI-X vector. Currently nvme queue are not mapped based on affinity and
> irq
> > > offset. The change is to use blk_mq_pci_map_queues for mapping, this
> > function
> > > consider irq affinity as well as irq offset.
> > > >
> > >
> > > OK, got it. Even though without this patchset, nvme-fc actually relies
> > > on managed irq since qla2xxx driver uses pci_alloc_irq_vectors_affinity.
> > >
> > > Now the patchset[1] isn't good for addressing the issue in
> > > blk_mq_alloc_request_hctx().
> >
> > Can you please elaborate on this? Is there something needs to be done from
> my
> > side?
> >
> > Thanks,
> > ~Saurav
> > >
> > > [1] https://urldefense.proofpoint.com/v2/url?u=https-
> > > 3A__lore.kernel.org_linux-2Dblock_YR7demOSG6MKFVAF-40T590_T_-
> > >
> >
> 23t&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=ZHZbmY_LbM3DUZK_BDO1
> > > OITP3ot_Vkb_5w-
> > >
> >
> gas5TBMQ&m=CqFDnfAsZphubKXkUx5gsRF6RZ2Qe6sxWkYq4pBfFD0&s=2Nba
> > > EUI5eB6_R6PxW8ld1Xn2OU3_UdD6D30uvFAWhow&e=
> > >
> > >
> > > Thanks,
> > > Ming


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

* Re: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
  2021-09-14  8:07             ` Saurav Kashyap
@ 2021-09-14  8:32               ` hch
  -1 siblings, 0 replies; 28+ messages in thread
From: hch @ 2021-09-14  8:32 UTC (permalink / raw)
  To: Saurav Kashyap
  Cc: Ming Lei, Sagi Grimberg, linux-nvme, hch, Nilesh Javali,
	martin.petersen, linux-scsi, GR-QLogic-Storage-Upstream,
	james.smart, axboe, kbusch

On Tue, Sep 14, 2021 at 08:07:02AM +0000, Saurav Kashyap wrote:
> Hi Sagi/Christoph,
> 
> I haven't heard anything on this and there are no review comments on this patch set, kindly include this in nvme tree.
> 

I'll queue this up once the 5.16 tree opens unless James voices any
objections.

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

* Re: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-09-14  8:32               ` hch
  0 siblings, 0 replies; 28+ messages in thread
From: hch @ 2021-09-14  8:32 UTC (permalink / raw)
  To: Saurav Kashyap
  Cc: Ming Lei, Sagi Grimberg, linux-nvme, hch, Nilesh Javali,
	martin.petersen, linux-scsi, GR-QLogic-Storage-Upstream,
	james.smart, axboe, kbusch

On Tue, Sep 14, 2021 at 08:07:02AM +0000, Saurav Kashyap wrote:
> Hi Sagi/Christoph,
> 
> I haven't heard anything on this and there are no review comments on this patch set, kindly include this in nvme tree.
> 

I'll queue this up once the 5.16 tree opens unless James voices any
objections.

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
  2021-08-24  3:46       ` Ming Lei
@ 2021-09-14  9:31         ` Daniel Wagner
  -1 siblings, 0 replies; 28+ messages in thread
From: Daniel Wagner @ 2021-09-14  9:31 UTC (permalink / raw)
  To: Ming Lei
  Cc: Saurav Kashyap, Sagi Grimberg, Nilesh Javali, martin.petersen,
	linux-nvme, linux-scsi, GR-QLogic-Storage-Upstream

On Tue, Aug 24, 2021 at 11:46:32AM +0800, Ming Lei wrote:
> OK, got it. Even though without this patchset, nvme-fc actually relies
> on managed irq since qla2xxx driver uses pci_alloc_irq_vectors_affinity.
> 
> Now the patchset[1] isn't good for addressing the issue in
> blk_mq_alloc_request_hctx().
> 
> [1] https://lore.kernel.org/linux-block/YR7demOSG6MKFVAF@T590/T/#t

Ming, do you have any ideas/suggestions how to address it? I can work
on it.

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

* Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-09-14  9:31         ` Daniel Wagner
  0 siblings, 0 replies; 28+ messages in thread
From: Daniel Wagner @ 2021-09-14  9:31 UTC (permalink / raw)
  To: Ming Lei
  Cc: Saurav Kashyap, Sagi Grimberg, Nilesh Javali, martin.petersen,
	linux-nvme, linux-scsi, GR-QLogic-Storage-Upstream

On Tue, Aug 24, 2021 at 11:46:32AM +0800, Ming Lei wrote:
> OK, got it. Even though without this patchset, nvme-fc actually relies
> on managed irq since qla2xxx driver uses pci_alloc_irq_vectors_affinity.
> 
> Now the patchset[1] isn't good for addressing the issue in
> blk_mq_alloc_request_hctx().
> 
> [1] https://lore.kernel.org/linux-block/YR7demOSG6MKFVAF@T590/T/#t

Ming, do you have any ideas/suggestions how to address it? I can work
on it.

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
  2021-09-14  8:32               ` hch
@ 2021-09-22  4:28                 ` Saurav Kashyap
  -1 siblings, 0 replies; 28+ messages in thread
From: Saurav Kashyap @ 2021-09-22  4:28 UTC (permalink / raw)
  To: hch
  Cc: Ming Lei, Sagi Grimberg, linux-nvme, Nilesh Javali,
	martin.petersen, linux-scsi, GR-QLogic-Storage-Upstream,
	james.smart, axboe, kbusch

> On Tue, Sep 14, 2021 at 08:07:02AM +0000, Saurav Kashyap wrote:
> > Hi Sagi/Christoph,
> >
> > I haven't heard anything on this and there are no review comments on this
> patch set, kindly include this in nvme tree.
> >
> 
> I'll queue this up once the 5.16 tree opens unless James voices any
> objections.

Sounds good.

Thanks,
~Saurav

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

* RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-09-22  4:28                 ` Saurav Kashyap
  0 siblings, 0 replies; 28+ messages in thread
From: Saurav Kashyap @ 2021-09-22  4:28 UTC (permalink / raw)
  To: hch
  Cc: Ming Lei, Sagi Grimberg, linux-nvme, Nilesh Javali,
	martin.petersen, linux-scsi, GR-QLogic-Storage-Upstream,
	james.smart, axboe, kbusch

> On Tue, Sep 14, 2021 at 08:07:02AM +0000, Saurav Kashyap wrote:
> > Hi Sagi/Christoph,
> >
> > I haven't heard anything on this and there are no review comments on this
> patch set, kindly include this in nvme tree.
> >
> 
> I'll queue this up once the 5.16 tree opens unless James voices any
> objections.

Sounds good.

Thanks,
~Saurav

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
  2021-09-14  8:32               ` hch
@ 2021-10-13  5:09                 ` Saurav Kashyap
  -1 siblings, 0 replies; 28+ messages in thread
From: Saurav Kashyap @ 2021-10-13  5:09 UTC (permalink / raw)
  To: hch
  Cc: Ming Lei, Sagi Grimberg, linux-nvme, Nilesh Javali,
	martin.petersen, linux-scsi, GR-QLogic-Storage-Upstream,
	james.smart, axboe, kbusch

Hi Christoph,

> > Hi Sagi/Christoph,
> >
> > I haven't heard anything on this and there are no review comments on this
> patch set, kindly include this in nvme tree.
> >
> 
> I'll queue this up once the 5.16 tree opens unless James voices any
> objections.

Any updates on this one?

Thanks,
~Saurav

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

* RE: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-10-13  5:09                 ` Saurav Kashyap
  0 siblings, 0 replies; 28+ messages in thread
From: Saurav Kashyap @ 2021-10-13  5:09 UTC (permalink / raw)
  To: hch
  Cc: Ming Lei, Sagi Grimberg, linux-nvme, Nilesh Javali,
	martin.petersen, linux-scsi, GR-QLogic-Storage-Upstream,
	james.smart, axboe, kbusch

Hi Christoph,

> > Hi Sagi/Christoph,
> >
> > I haven't heard anything on this and there are no review comments on this
> patch set, kindly include this in nvme tree.
> >
> 
> I'll queue this up once the 5.16 tree opens unless James voices any
> objections.

Any updates on this one?

Thanks,
~Saurav

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

* Re: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
  2021-10-13  5:09                 ` Saurav Kashyap
@ 2021-10-13  5:11                   ` hch
  -1 siblings, 0 replies; 28+ messages in thread
From: hch @ 2021-10-13  5:11 UTC (permalink / raw)
  To: Saurav Kashyap
  Cc: hch, Ming Lei, Sagi Grimberg, linux-nvme, Nilesh Javali,
	martin.petersen, linux-scsi, GR-QLogic-Storage-Upstream,
	james.smart, axboe, kbusch

On Wed, Oct 13, 2021 at 05:09:04AM +0000, Saurav Kashyap wrote:
> Hi Christoph,
> 
> > > Hi Sagi/Christoph,
> > >
> > > I haven't heard anything on this and there are no review comments on this
> > patch set, kindly include this in nvme tree.
> > >
> > 
> > I'll queue this up once the 5.16 tree opens unless James voices any
> > objections.
> 
> Any updates on this one?

http://git.infradead.org/nvme.git/commitdiff/062b5291ef352d6198c6c8414c71ae2debd06cf7

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

* Re: [EXT] Re: [PATCH 0/2] qla2xxx - add nvme map_queues support
@ 2021-10-13  5:11                   ` hch
  0 siblings, 0 replies; 28+ messages in thread
From: hch @ 2021-10-13  5:11 UTC (permalink / raw)
  To: Saurav Kashyap
  Cc: hch, Ming Lei, Sagi Grimberg, linux-nvme, Nilesh Javali,
	martin.petersen, linux-scsi, GR-QLogic-Storage-Upstream,
	james.smart, axboe, kbusch

On Wed, Oct 13, 2021 at 05:09:04AM +0000, Saurav Kashyap wrote:
> Hi Christoph,
> 
> > > Hi Sagi/Christoph,
> > >
> > > I haven't heard anything on this and there are no review comments on this
> > patch set, kindly include this in nvme tree.
> > >
> > 
> > I'll queue this up once the 5.16 tree opens unless James voices any
> > objections.
> 
> Any updates on this one?

http://git.infradead.org/nvme.git/commitdiff/062b5291ef352d6198c6c8414c71ae2debd06cf7

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

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

end of thread, other threads:[~2021-10-13  5:11 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-23 12:56 [PATCH 0/2] qla2xxx - add nvme map_queues support Nilesh Javali
2021-08-23 12:56 ` Nilesh Javali
2021-08-23 12:56 ` [PATCH 1/2] nvme-fc: Add support for map_queues Nilesh Javali
2021-08-23 12:56   ` Nilesh Javali
2021-08-23 12:56 ` [PATCH 2/2] qla2xxx: Add map_queues support to nvme Nilesh Javali
2021-08-23 12:56   ` Nilesh Javali
2021-08-23 17:21 ` [PATCH 0/2] qla2xxx - add nvme map_queues support Sagi Grimberg
2021-08-23 17:21   ` Sagi Grimberg
2021-08-24  3:38   ` Saurav Kashyap
2021-08-24  3:38     ` Saurav Kashyap
2021-08-24  3:46     ` Ming Lei
2021-08-24  3:46       ` Ming Lei
2021-08-25  4:58       ` [EXT] " Saurav Kashyap
2021-08-25  4:58         ` Saurav Kashyap
2021-09-07  9:18         ` Saurav Kashyap
2021-09-07  9:18           ` Saurav Kashyap
2021-09-14  8:07           ` Saurav Kashyap
2021-09-14  8:07             ` Saurav Kashyap
2021-09-14  8:32             ` hch
2021-09-14  8:32               ` hch
2021-09-22  4:28               ` Saurav Kashyap
2021-09-22  4:28                 ` Saurav Kashyap
2021-10-13  5:09               ` Saurav Kashyap
2021-10-13  5:09                 ` Saurav Kashyap
2021-10-13  5:11                 ` hch
2021-10-13  5:11                   ` hch
2021-09-14  9:31       ` Daniel Wagner
2021-09-14  9:31         ` Daniel Wagner

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.