lpfc 8.3.11: FCF failover improvements
Subsystems (2)
PATCH 1/6 lpfc 8.3.11: FCF failover improvements
FCF failover improvements
- Add random FCF failover when there are multiple FCFs available.
- Prevent FCF log messages from being displayed for FC adapters.
- Separate the New FCF and Modified FCF log messages.
Signed-off-by Alex Iannicelli <[email protected]>
Signed-off-by James Smart <[email protected]>
---
lpfc_els.c | 13 ++++++++----- lpfc_hbadisc.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++-- lpfc_init.c | 19 ++++++++++++++----- lpfc_sli.c | 4 +++- lpfc_sli4.h | 1 + 5 files changed, 77 insertions(+), 13 deletions(-)
drivers/scsi/lpfc/lpfc_els.c +8 -5
@@ -892,11 +892,14 @@ lpfc_cmpl_els_flogi(struct lpfc_hba *phbif (!rc) {/* Mark the FCF discovery process done */ -lpfc_printf_vlog (vport,KERN_INFO ,LOG_FIP |LOG_ELS , -"2769 FLOGI successful on FCF record: " -"current_fcf_index:x%x, terminate FCF " -"round robin failover process\n" , - phba->fcf.current_rec.fcf_indx); +if (phba->hba_flag &HBA_FIP_SUPPORT ) +lpfc_printf_vlog (vport,KERN_INFO ,LOG_FIP | +LOG_ELS , +"2769 FLOGI successful on FCF " +"record: current_fcf_index:" +"x%x, terminate FCF round " +"robin failover process\n" , + phba->fcf.current_rec.fcf_indx);spin_lock_irq (&phba->hbalock); phba->fcf.fcf_flag &= ~FCF_DISCOVERY ;spin_unlock_irq (&phba->hbalock);
drivers/scsi/lpfc/lpfc_hbadisc.c +51 -2
79 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_init.c +14 -5
@@ -3303,11 +3303,20 @@ lpfc_sli4_async_fcoe_evt(struct lpfc_hbaswitch (event_type) {case LPFC_FCOE_EVENT_TYPE_NEW_FCF :case LPFC_FCOE_EVENT_TYPE_FCF_PARAM_MOD : -lpfc_printf_log (phba,KERN_ERR ,LOG_FIP |LOG_DISCOVERY , -"2546 New FCF found/FCF parameter modified event: " -"evt_tag:x%x, fcf_index:x%x\n" , - acqe_fcoe->event_tag, acqe_fcoe->index); - +if (event_type ==LPFC_FCOE_EVENT_TYPE_NEW_FCF ) +lpfc_printf_log (phba,KERN_ERR ,LOG_FIP | +LOG_DISCOVERY , +"2546 New FCF found event: " +"evt_tag:x%x, fcf_index:x%x\n" , + acqe_fcoe->event_tag, + acqe_fcoe->index); +else +lpfc_printf_log (phba,KERN_WARNING ,LOG_FIP | +LOG_DISCOVERY , +"2788 FCF parameter modified event: " +"evt_tag:x%x, fcf_index:x%x\n" , + acqe_fcoe->event_tag, + acqe_fcoe->index);spin_lock_irq (&phba->hbalock);if ((phba->fcf.fcf_flag &FCF_SCAN_DONE ) || (phba->hba_flag &FCF_DISC_INPROGRESS )) {
drivers/scsi/lpfc/lpfc_sli4.h +1 -0
@@ -162,6 +162,7 @@ struct lpfc_fcf {#define FCF_REDISC_FOV 0x200/* Post FCF rediscovery fast failover */ uint32_t addr_mode;uint16_t fcf_rr_init_indx; +uint32_t eligible_fcf_cnt;struct lpfc_fcf_rec current_rec;struct lpfc_fcf_rec failover_rec;struct timer_list redisc_wait;
drivers/scsi/lpfc/lpfc_sli.c +3 -1
@@ -12039,9 +12039,11 @@ lpfc_sli4_fcf_scan_read_fcf_rec(struct l phba->hba_flag |=FCF_DISC_INPROGRESS ;spin_unlock_irq (&phba->hbalock);/* Reset FCF round robin index bmask for new scan */ -if (fcf_index ==LPFC_FCOE_FCF_GET_FIRST ) +if (fcf_index ==LPFC_FCOE_FCF_GET_FIRST ) {memset (phba->fcf.fcf_rr_bmask,0 ,sizeof (*phba->fcf.fcf_rr_bmask)); + phba->fcf.eligible_fcf_cnt =0 ; + } error =0 ; } fail_fcf_scan: