• James Smart's avatar
    scsi: lpfc: Fix failure to clear non-zero eq_delay after io rate reduction · 8d34a59c
    James Smart authored
    Unusually high IO latency can be observed with little IO in progress. The
    latency may remain high regardless of amount of IO and can only be cleared
    by forcing lpfc_fcp_imax values to non-zero and then back to zero.
    
    The driver's eq_delay mechanism that scales the interrupt coalescing based
    on io completion load failed to reduce or turn off coalescing when load
    decreased. Specifically, if no io completed on a cpu within an eq_delay
    polling window, the eq delay processing was skipped and no change was made
    to the coalescing values. This left the coalescing values set when they
    were no longer applicable.
    
    Fix by always clearing the percpu counters for each time period and always
    run the eq_delay calculations if an eq has a non-zero coalescing value.
    Signed-off-by: default avatarDick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    8d34a59c
lpfc_init.c 394 KB