aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath/ipath_qp.c
diff options
context:
space:
mode:
authorBryan O'Sullivan <bos@pathscale.com>2006-09-28 11:59:57 -0400
committerRoland Dreier <rolandd@cisco.com>2006-09-28 14:16:21 -0400
commit6022943eb4cb3cb9e43f27f1faeaba38e162d966 (patch)
tree0c495a94448610e20a4872416b85c8ffdb0f2adf /drivers/infiniband/hw/ipath/ipath_qp.c
parentfd6a79a786b84510d00ee6aa6449a468e6d75dee (diff)
IB/ipath: Limit # of packets sent without an ACK received
The sender requests an ACK every 1/2 MB to avoid retransmit timeouts that were causing MVAPICH mod_bw to fail after a predictable number of sends. Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_qp.c')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_qp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_qp.c b/drivers/infiniband/hw/ipath/ipath_qp.c
index 224b0f40767f..ecfaca7a571b 100644
--- a/drivers/infiniband/hw/ipath/ipath_qp.c
+++ b/drivers/infiniband/hw/ipath/ipath_qp.c
@@ -342,6 +342,7 @@ static void ipath_reset_qp(struct ipath_qp *qp)
342 qp->s_last = 0; 342 qp->s_last = 0;
343 qp->s_ssn = 1; 343 qp->s_ssn = 1;
344 qp->s_lsn = 0; 344 qp->s_lsn = 0;
345 qp->s_wait_credit = 0;
345 if (qp->r_rq.wq) { 346 if (qp->r_rq.wq) {
346 qp->r_rq.wq->head = 0; 347 qp->r_rq.wq->head = 0;
347 qp->r_rq.wq->tail = 0; 348 qp->r_rq.wq->tail = 0;
@@ -516,7 +517,7 @@ int ipath_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
516 qp->remote_qpn = attr->dest_qp_num; 517 qp->remote_qpn = attr->dest_qp_num;
517 518
518 if (attr_mask & IB_QP_SQ_PSN) { 519 if (attr_mask & IB_QP_SQ_PSN) {
519 qp->s_next_psn = attr->sq_psn; 520 qp->s_psn = qp->s_next_psn = attr->sq_psn;
520 qp->s_last_psn = qp->s_next_psn - 1; 521 qp->s_last_psn = qp->s_next_psn - 1;
521 } 522 }
522 523