Re: [PATCH 07/10] qla2xxx: Call process_response_queue() in Tx path
From: Himanshu Madhani <hidden>
Date: 2021-09-08 14:08:28
Also in:
linux-nvme
On Sep 8, 2021, at 2:28 AM, Nilesh Javali [off-list ref] wrote: From: Shreyas Deodhar <redacted> 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@vger.kernel.org
quoted hunk ↗ jump to hunk
Signed-off-by: Shreyas Deodhar<redacted> Signed-off-by: Nilesh Javali <njavali@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 <redacted> -- Himanshu Madhani Oracle Linux Engineering