• David Dillow's avatar
    IB/srp: Respect target credit limit · 8cba2077
    David Dillow authored
    The current SRP initiator will send requests even if it has no credits
    available.  The results of sending extra requests are vendor specific,
    but on some devices, overrunning credits will cost 85% of peak
    performance -- e.g. 100 MB/s vs 720 MB/s.  Other devices may just drop
    the requests.
    
    This patch will tell the SCSI midlayer to queue requests if there are
    fewer than two credits remaining, and will not issue a task management
    request if there are no credits remaining.  The mid-layer will retry
    the queued command once an outstanding command completes.
    
    The patch also removes the unlikely() in __srp_get_tx_iu(), as it is
    not at all unlikely to hit this limit under heavy load.
    Signed-off-by: default avatarDavid Dillow <dillowda@ornl.gov>
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    8cba2077
ib_srp.c 53.6 KB