aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath/ipath_verbs.h
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_verbs.h
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_verbs.h')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_verbs.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs.h b/drivers/infiniband/hw/ipath/ipath_verbs.h
index 09bbb3f9a21..3fffaa02e66 100644
--- a/drivers/infiniband/hw/ipath/ipath_verbs.h
+++ b/drivers/infiniband/hw/ipath/ipath_verbs.h
@@ -370,6 +370,7 @@ struct ipath_qp {
370 u8 s_rnr_retry_cnt; 370 u8 s_rnr_retry_cnt;
371 u8 s_retry; /* requester retry counter */ 371 u8 s_retry; /* requester retry counter */
372 u8 s_rnr_retry; /* requester RNR retry counter */ 372 u8 s_rnr_retry; /* requester RNR retry counter */
373 u8 s_wait_credit; /* limit number of unacked packets sent */
373 u8 s_pkey_index; /* PKEY index to use */ 374 u8 s_pkey_index; /* PKEY index to use */
374 u8 timeout; /* Timeout for this QP */ 375 u8 timeout; /* Timeout for this QP */
375 enum ib_mtu path_mtu; 376 enum ib_mtu path_mtu;
@@ -393,6 +394,8 @@ struct ipath_qp {
393#define IPATH_S_BUSY 0 394#define IPATH_S_BUSY 0
394#define IPATH_S_SIGNAL_REQ_WR 1 395#define IPATH_S_SIGNAL_REQ_WR 1
395 396
397#define IPATH_PSN_CREDIT 2048
398
396/* 399/*
397 * Since struct ipath_swqe is not a fixed size, we can't simply index into 400 * Since struct ipath_swqe is not a fixed size, we can't simply index into
398 * struct ipath_qp.s_wq. This function does the array index computation. 401 * struct ipath_qp.s_wq. This function does the array index computation.
@@ -521,6 +524,7 @@ struct ipath_ibdev {
521 u32 n_rnr_naks; 524 u32 n_rnr_naks;
522 u32 n_other_naks; 525 u32 n_other_naks;
523 u32 n_timeouts; 526 u32 n_timeouts;
527 u32 n_rc_stalls;
524 u32 n_pkt_drops; 528 u32 n_pkt_drops;
525 u32 n_vl15_dropped; 529 u32 n_vl15_dropped;
526 u32 n_wqe_errs; 530 u32 n_wqe_errs;