IB/srp: Reduce number of BUSY conditions
As proposed by the SRP (draft) standard, ib_srp reserves one ring element for SRP_TSK_MGMT requests. This patch makes sure that the SCSI mid-layer never tries to queue more than (SRP request limit) - 1 SCSI commands to ib_srp. This improves performance for targets whose request limit is less than or equal to SRP_NORMAL_REQ_SQ_SIZE by reducing the number of BUSY responses reported by ib_srp to the SCSI mid-layer. Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: David Dillow <dillowda@ornl.gov> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
05a1d7504f
commit
7ade400aba
|
@ -1339,7 +1339,12 @@ static int srp_cm_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event)
|
|||
target->max_ti_iu_len = be32_to_cpu(rsp->max_ti_iu_len);
|
||||
target->req_lim = be32_to_cpu(rsp->req_lim_delta);
|
||||
|
||||
target->scsi_host->can_queue = min(target->req_lim,
|
||||
/*
|
||||
* Reserve credits for task management so we don't
|
||||
* bounce requests back to the SCSI mid-layer.
|
||||
*/
|
||||
target->scsi_host->can_queue
|
||||
= min(target->req_lim - SRP_TSK_MGMT_SQ_SIZE,
|
||||
target->scsi_host->can_queue);
|
||||
} else {
|
||||
shost_printk(KERN_WARNING, target->scsi_host,
|
||||
|
|
Loading…
Reference in a new issue