Re: [PATCH 01/11] qla2xxx: Fix IOPS drop seen in some adapters

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On Mar 22, 2021, at 11:42 PM, Nilesh Javali <njavali@xxxxxxxxxxx> wrote:
> 
> From: Arun Easi <aeasi@xxxxxxxxxxx>
> 
> Removing the response queue processing in the send path is showing IOPS
> drop. Add back the process_response_queue() call in the send path.
> 

Can you share some details of what effect this change made into IOPS? 

> Signed-off-by: Arun Easi <aeasi@xxxxxxxxxxx>
> Signed-off-by: Nilesh Javali <njavali@xxxxxxxxxxx>
> ---
> drivers/scsi/qla2xxx/qla_iocb.c | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
> index 8b41cbaf8535..f26a7a14fce9 100644
> --- a/drivers/scsi/qla2xxx/qla_iocb.c
> +++ b/drivers/scsi/qla2xxx/qla_iocb.c
> @@ -1600,12 +1600,14 @@ qla24xx_start_scsi(srb_t *sp)
> 	uint16_t	req_cnt;
> 	uint16_t	tot_dsds;
> 	struct req_que *req = NULL;
> +	struct rsp_que *rsp;
> 	struct scsi_cmnd *cmd = GET_CMD_SP(sp);
> 	struct scsi_qla_host *vha = sp->vha;
> 	struct qla_hw_data *ha = vha->hw;
> 
> 	/* Setup device pointers. */
> 	req = vha->req;
> +	rsp = req->rsp;
> 
> 	/* So we know we haven't pci_map'ed anything yet */
> 	tot_dsds = 0;
> @@ -1707,6 +1709,11 @@ qla24xx_start_scsi(srb_t *sp)
> 	/* Set chip new ring index. */
> 	wrt_reg_dword(req->req_q_in, req->ring_index);
> 
> +	/* Manage unprocessed RIO/ZIO commands in response queue. */
> +	if (vha->flags.process_response_queue &&
> +	    rsp->ring_ptr->signature != RESPONSE_PROCESSED)
> +		qla24xx_process_response_queue(vha, rsp);
> +
> 	spin_unlock_irqrestore(&ha->hardware_lock, flags);
> 	return QLA_SUCCESS;
> 
> @@ -1897,6 +1904,11 @@ qla24xx_dif_start_scsi(srb_t *sp)
> 	/* Set chip new ring index. */
> 	wrt_reg_dword(req->req_q_in, req->ring_index);
> 
> +	/* Manage unprocessed RIO/ZIO commands in response queue. */
> +	if (vha->flags.process_response_queue &&
> +	    rsp->ring_ptr->signature != RESPONSE_PROCESSED)
> +		qla24xx_process_response_queue(vha, rsp);
> +
> 	spin_unlock_irqrestore(&ha->hardware_lock, flags);
> 
> 	return QLA_SUCCESS;
> @@ -1931,6 +1943,7 @@ qla2xxx_start_scsi_mq(srb_t *sp)
> 	uint16_t	req_cnt;
> 	uint16_t	tot_dsds;
> 	struct req_que *req = NULL;
> +	struct rsp_que *rsp;
> 	struct scsi_cmnd *cmd = GET_CMD_SP(sp);
> 	struct scsi_qla_host *vha = sp->fcport->vha;
> 	struct qla_hw_data *ha = vha->hw;
> @@ -1941,6 +1954,7 @@ qla2xxx_start_scsi_mq(srb_t *sp)
> 
> 	/* Setup qpair pointers */
> 	req = qpair->req;
> +	rsp = qpair->rsp;
> 
> 	/* So we know we haven't pci_map'ed anything yet */
> 	tot_dsds = 0;
> @@ -2041,6 +2055,11 @@ qla2xxx_start_scsi_mq(srb_t *sp)
> 	/* Set chip new ring index. */
> 	wrt_reg_dword(req->req_q_in, req->ring_index);
> 
> +	/* Manage unprocessed RIO/ZIO commands in response queue. */
> +	if (vha->flags.process_response_queue &&
> +	    rsp->ring_ptr->signature != RESPONSE_PROCESSED)
> +		qla24xx_process_response_queue(vha, rsp);
> +
> 	spin_unlock_irqrestore(&qpair->qp_lock, flags);
> 	return QLA_SUCCESS;
> 
> -- 
> 2.19.0.rc0
> 

Patch itself looks good. After you add more details in commit message you can add 

Reviewed-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>

--
Himanshu Madhani	 Oracle Linux Engineering





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux