diff options
author | Dick Kennedy <[email protected]> | 2020-08-03 14:02:24 -0700 |
---|---|---|
committer | Martin K. Petersen <[email protected]> | 2020-08-04 20:56:57 -0400 |
commit | 8ccd6926db7dd865dd6eabe3c25ae2696bffc07e (patch) | |
tree | 3e0c9176e344d06f39e97563f9f1351dd27ab17a /tools/perf/scripts/python/bin/export-to-postgresql-report | |
parent | 9e3e365a92d329e5e69e3f92037537be6276992b (diff) |
scsi: lpfc: Fix RSCN timeout due to incorrect gidft counter
In configs with a large number of initiators in the same zone (>250), RSCN
timeouts are seen when creating or deleting vports:
lpfc 0000:07:00.1: 5:(0):0231 RSCN timeout Data: x0 x3
During RSCN processing driver issues GID_FT command to nameserver. A
counter for number of simultaneous GID_FT commands is maintained (an
unsigned value). The counter is incremented when the GID_FT is issued. If
the GID_FT command fails for some reason the driver retries the GID_FT from
the completion call back. But the counter was decremented before the retry
was issued. When the second GID_FT completes, the callback again tries to
decrement the counter, possibly wrapping to a very large non-zero value,
which causes the RSCN cleanup code to not execute. Thus the RSCN timeout
failure.
Do not decrement the counter on a retry. Also add defensive checks to
ensure the counter is not decremented if already zero.
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dick Kennedy <[email protected]>
Signed-off-by: James Smart <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/bin/export-to-postgresql-report')
0 files changed, 0 insertions, 0 deletions