lpfc: Fix setting of EQ (interrupt) delay Multiplier
Subsystems (2)
PATCH 7/21 lpfc: Fix setting of EQ (interrupt) delay Multiplier
Fix setting of EQ (interrupt) delay Multiplier
Signed-off-by Dick Kennedy <[email protected]>
Signed-off-by James Smart <[email protected]>
--- drivers/scsi/lpfc/lpfc_init.c | 8 ++++++++ drivers/scsi/lpfc/lpfc_sli.c | 9 +++------ drivers/scsi/lpfc/lpfc_sli4.h | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-)
drivers/scsi/lpfc/lpfc_init.c +8 -0
@@ -7721,6 +7721,14 @@ lpfc_sli4_queue_setup(struct lpfc_hba *phba) goto out_destroy_els_rq; } } + +/* +* Configure EQ delay multipier for interrupt coalescing using +* MODIFY_EQ_DELAY for all EQs created, LPFC_MAX_EQ_DELAY at a time. +*/ +for (fcp_eqidx =0 ; fcp_eqidx < phba->cfg_fcp_io_channel; + fcp_eqidx +=LPFC_MAX_EQ_DELAY ) +lpfc_modify_fcp_eq_delay (phba, fcp_eqidx);return 0 ; out_destroy_els_rq:
drivers/scsi/lpfc/lpfc_sli.c +3 -6
@@ -12842,7 +12842,7 @@ lpfc_dual_chute_pci_bar_map(struct lpfc_hba *phba, uint16_t pci_barset)* fails this function will return -ENXIO. **/ int -lpfc_modify_fcp_eq_delay (struct lpfc_hba *phba,uint16_t startq) +lpfc_modify_fcp_eq_delay (struct lpfc_hba *phba,uint32_t startq) {struct lpfc_mbx_modify_eq_delay *eq_delay;LPFC_MBOXQ_t *mbox;
@@ -12959,11 +12959,8 @@ lpfc_eq_create(struct lpfc_hba *phba, struct lpfc_queue *eq, uint32_t imax)bf_set (lpfc_eq_context_size, &eq_create->u.request.context,LPFC_EQE_SIZE );bf_set (lpfc_eq_context_valid, &eq_create->u.request.context,1 ); -/* Calculate delay multiper from maximum interrupt per second */ -if (imax >LPFC_DMULT_CONST ) - dmult =0 ; -else - dmult =LPFC_DMULT_CONST /imax -1 ; +/* don't setup delay multiplier using EQ_CREATE */ + dmult =0 ;bf_set (lpfc_eq_context_delay_multi, &eq_create->u.request.context, dmult);switch (eq->entry_count) {
drivers/scsi/lpfc/lpfc_sli4.h +1 -1
@@ -671,7 +671,7 @@ struct lpfc_queue *lpfc_sli4_queue_alloc(struct lpfc_hba *, uint32_t, uint32_t);void lpfc_sli4_queue_free (struct lpfc_queue *);int lpfc_eq_create (struct lpfc_hba *,struct lpfc_queue *,uint32_t ); -int lpfc_modify_fcp_eq_delay (struct lpfc_hba *,uint16_t ); +int lpfc_modify_fcp_eq_delay (struct lpfc_hba *,uint32_t );int lpfc_cq_create (struct lpfc_hba *,struct lpfc_queue *,struct lpfc_queue *,uint32_t ,uint32_t ); int32_t lpfc_mq_create(struct lpfc_hba *, struct lpfc_queue *,
Signature · 1 line
1.7.11.7
Quoted 5 lines · James Smart
Fix setting of EQ (interrupt) delay Multiplier
Signed-off-by Dick Kennedy <[email protected]>Signed-off-by James Smart <[email protected]>---
Reviewed-by Hannes Reinecke <[email protected]>
Cheers,
Hannes
Signature · 8 lines
Dr. Hannes Reinecke zSeries & Storage [email protected] +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg) -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html