Commit ae696255 authored by Justin Tee's avatar Justin Tee Committed by Martin K. Petersen

scsi: lpfc: Correct bandwidth logging during receipt of congestion sync WCQE

The lpfc_cmf_timer adjusts phba->cmf_link_byte_count periodically and can
artifically inflate bandwidth percent.

During bandwidth calculation, correct for this by setting a cap of logging
a maximum of 100%.

Bandwidth calculation is only used for display under LOG_CGN_MGMT so there
is no expectation of impacts on performance.
Signed-off-by: default avatarJustin Tee <justin.tee@broadcom.com>
Link: https://lore.kernel.org/r/20221116011921.105995-3-justintee8345@gmail.comSigned-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 2c1a0a75
......@@ -1846,6 +1846,12 @@ lpfc_cmf_sync_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
phba->cmf_link_byte_count);
bwpcent = div64_u64(bw * 100 + slop,
phba->cmf_link_byte_count);
/* Because of bytes adjustment due to shorter timer in
* lpfc_cmf_timer() the cmf_link_byte_count can be shorter and
* may seem like BW is above 100%.
*/
if (bwpcent > 100)
bwpcent = 100;
if (phba->cmf_max_bytes_per_interval < bw &&
bwpcent > 95)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment