[PATCH 07/10] qla2xxx: Call process_response_queue() in Tx path

Himanshu Madhani himanshu.madhani at oracle.com
Wed Sep 8 07:08:06 PDT 2021



> On Sep 8, 2021, at 2:28 AM, Nilesh Javali <njavali at marvell.com> wrote:
> 
> From: Shreyas Deodhar <sdeodhar at marvell.com>
> 
> Process responses in Tx path if any available for better performance.
> 

I’ll let you decide if you want to add this to all stable or not, but if you decide this needs to go into stable then add

Fixes: e84067d743010 ("scsi: qla2xxx: Add FC-NVMe F/W initialization and transport registration”)
Cc: stable at vger.kernel.org

> Signed-off-by: Shreyas Deodhar<sdeodhar at marvell.com>
> Signed-off-by: Nilesh Javali <njavali at marvell.com>
> ---
> drivers/scsi/qla2xxx/qla_nvme.c | 6 ++++++
> 1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_nvme.c b/drivers/scsi/qla2xxx/qla_nvme.c
> index 877b2b625020..0ae1e081cb03 100644
> --- a/drivers/scsi/qla2xxx/qla_nvme.c
> +++ b/drivers/scsi/qla2xxx/qla_nvme.c
> @@ -399,6 +399,7 @@ static inline int qla2x00_start_nvme_mq(srb_t *sp)
> 	uint16_t	avail_dsds;
> 	struct dsd64	*cur_dsd;
> 	struct req_que *req = NULL;
> +	struct rsp_que *rsp = NULL;
> 	struct scsi_qla_host *vha = sp->fcport->vha;
> 	struct qla_hw_data *ha = vha->hw;
> 	struct qla_qpair *qpair = sp->qpair;
> @@ -410,6 +411,7 @@ static inline int qla2x00_start_nvme_mq(srb_t *sp)
> 
> 	/* Setup qpair pointers */
> 	req = qpair->req;
> +	rsp = qpair->rsp;
> 	tot_dsds = fd->sg_cnt;
> 
> 	/* Acquire qpair specific lock */
> @@ -571,6 +573,10 @@ static inline int qla2x00_start_nvme_mq(srb_t *sp)
> 	/* Set chip new ring index. */
> 	wrt_reg_dword(req->req_q_in, req->ring_index);
> 
> +	if (vha->flags.process_response_queue &&
> +	    rsp->ring_ptr->signature != RESPONSE_PROCESSED)
> +		qla24xx_process_response_queue(vha, rsp);
> +
> queuing_error:
> 	spin_unlock_irqrestore(&qpair->qp_lock, flags);
> 
> -- 
> 2.19.0.rc0
> 

Reviewed-by: Himanshu Madhani <himanshu.madhani at oracle.com>

--
Himanshu Madhani	 Oracle Linux Engineering



More information about the Linux-nvme mailing list