Re: [PATCH 04/11] qla2xxx: consolidate zio threshold setting for both fcp & nvme

[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: Quinn Tran <qutran@xxxxxxxxxxx>
> 
> consolidate zio threshold setting for both fcp & nvme to prevent
> one protocol from clobbering the setting of the other protocol.
> 
> Signed-off-by: Quinn Tran <qutran@xxxxxxxxxxx>
> Signed-off-by: Nilesh Javali <njavali@xxxxxxxxxxx>
> ---
> drivers/scsi/qla2xxx/qla_def.h |  1 -
> drivers/scsi/qla2xxx/qla_os.c  | 34 ++++++++++++++--------------------
> 2 files changed, 14 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
> index 49b42b430df4..3d09f31895e7 100644
> --- a/drivers/scsi/qla2xxx/qla_def.h
> +++ b/drivers/scsi/qla2xxx/qla_def.h
> @@ -4727,7 +4727,6 @@ typedef struct scsi_qla_host {
> #define FX00_CRITEMP_RECOVERY	25
> #define FX00_HOST_INFO_RESEND	26
> #define QPAIR_ONLINE_CHECK_NEEDED	27
> -#define SET_NVME_ZIO_THRESHOLD_NEEDED	28
> #define DETECT_SFP_CHANGE	29
> #define N2N_LOGIN_NEEDED	30
> #define IOCB_WORK_ACTIVE	31
> diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
> index 074392560f3d..6563d69706ba 100644
> --- a/drivers/scsi/qla2xxx/qla_os.c
> +++ b/drivers/scsi/qla2xxx/qla_os.c
> @@ -6969,28 +6969,23 @@ qla2x00_do_dpc(void *data)
> 			mutex_unlock(&ha->mq_lock);
> 		}
> 
> -		if (test_and_clear_bit(SET_NVME_ZIO_THRESHOLD_NEEDED,
> -		    &base_vha->dpc_flags)) {
> +		if (test_and_clear_bit(SET_ZIO_THRESHOLD_NEEDED,
> +				       &base_vha->dpc_flags)) {
> +			u16 threshold = ha->nvme_last_rptd_aen + ha->last_zio_threshold;
> +
> +			if (threshold > ha->orig_fw_xcb_count)
> +				threshold = ha->orig_fw_xcb_count;
> +
> 			ql_log(ql_log_info, base_vha, 0xffffff,
> -				"nvme: SET ZIO Activity exchange threshold to %d.\n",
> -						ha->nvme_last_rptd_aen);
> -			if (qla27xx_set_zio_threshold(base_vha,
> -			    ha->nvme_last_rptd_aen)) {
> +			       "SET ZIO Activity exchange threshold to %d.\n",
> +			       threshold);
> +			if (qla27xx_set_zio_threshold(base_vha, threshold)) {
> 				ql_log(ql_log_info, base_vha, 0xffffff,
> -				    "nvme: Unable to SET ZIO Activity exchange threshold to %d.\n",
> -				    ha->nvme_last_rptd_aen);
> +				       "Unable to SET ZIO Activity exchange threshold to %d.\n",
> +				       threshold);
> 			}
> 		}
> 
> -		if (test_and_clear_bit(SET_ZIO_THRESHOLD_NEEDED,
> -		    &base_vha->dpc_flags)) {
> -			ql_log(ql_log_info, base_vha, 0xffffff,
> -			    "SET ZIO Activity exchange threshold to %d.\n",
> -			    ha->last_zio_threshold);
> -			qla27xx_set_zio_threshold(base_vha,
> -			    ha->last_zio_threshold);
> -		}
> -
> 		if (!IS_QLAFX00(ha))
> 			qla2x00_do_dpc_all_vps(base_vha);
> 
> @@ -7218,14 +7213,13 @@ qla2x00_timer(struct timer_list *t)
> 	index = atomic_read(&ha->nvme_active_aen_cnt);
> 	if (!vha->vp_idx &&
> 	    (index != ha->nvme_last_rptd_aen) &&
> -	    (index >= DEFAULT_ZIO_THRESHOLD) &&
> 	    ha->zio_mode == QLA_ZIO_MODE_6 &&
> 	    !ha->flags.host_shutting_down) {
> +		ha->nvme_last_rptd_aen = atomic_read(&ha->nvme_active_aen_cnt);
> 		ql_log(ql_log_info, vha, 0x3002,
> 		    "nvme: Sched: Set ZIO exchange threshold to %d.\n",
> 		    ha->nvme_last_rptd_aen);
> -		ha->nvme_last_rptd_aen = atomic_read(&ha->nvme_active_aen_cnt);
> -		set_bit(SET_NVME_ZIO_THRESHOLD_NEEDED, &vha->dpc_flags);
> +		set_bit(SET_ZIO_THRESHOLD_NEEDED, &vha->dpc_flags);
> 		start_dpc++;
> 	}
> 
> -- 
> 2.19.0.rc0
> 

Looks good.

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