forked from Minki/linux
scsi: lpfc: Fix MDS Latency Diagnostics Err-drop rates
When running Cisco-MDS diagnostics which perform driver-level frame loop back, the switch is reporting errors. Diagnostic has a limit on latency that is not being met by the driver. The requirement of Latency frames is that they should be responded back by the host with a maximum delay of few hundreds of microseconds. If the switch doesn't get response frames within this time frame, it fails the test. Test is failing as the lpfc-wq workqueue was overwhelmed by the packet rate and in some cases, the work element yielded to other kernel elements. To resolve, reduce the outstanding load allowed by the adapter. This ensures the driver spends a reasonable amount of time doing loopback and can do so such that latency values can be met. Load is managed by reducing the number of receive buffers posted such that the link can be backpressured to reduce load. Link: https://lore.kernel.org/r/20191218235808.31922-9-jsmart2021@gmail.com Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com> Signed-off-by: James Smart <jsmart2021@gmail.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
0b4391946d
commit
999fbbceb8
@ -4918,8 +4918,17 @@ static int
|
||||
lpfc_sli4_rb_setup(struct lpfc_hba *phba)
|
||||
{
|
||||
phba->hbq_in_use = 1;
|
||||
phba->hbqs[LPFC_ELS_HBQ].entry_count =
|
||||
lpfc_hbq_defs[LPFC_ELS_HBQ]->entry_count;
|
||||
/**
|
||||
* Specific case when the MDS diagnostics is enabled and supported.
|
||||
* The receive buffer count is truncated to manage the incoming
|
||||
* traffic.
|
||||
**/
|
||||
if (phba->cfg_enable_mds_diags && phba->mds_diags_support)
|
||||
phba->hbqs[LPFC_ELS_HBQ].entry_count =
|
||||
lpfc_hbq_defs[LPFC_ELS_HBQ]->entry_count >> 1;
|
||||
else
|
||||
phba->hbqs[LPFC_ELS_HBQ].entry_count =
|
||||
lpfc_hbq_defs[LPFC_ELS_HBQ]->entry_count;
|
||||
phba->hbq_count = 1;
|
||||
lpfc_sli_hbqbuf_init_hbqs(phba, LPFC_ELS_HBQ);
|
||||
/* Initially populate or replenish the HBQs */
|
||||
|
Loading…
Reference in New Issue
Block a user