diff options
author | Bryan O'Sullivan <bos@pathscale.com> | 2006-09-28 11:59:57 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2006-09-28 14:16:21 -0400 |
commit | 6022943eb4cb3cb9e43f27f1faeaba38e162d966 (patch) | |
tree | 0c495a94448610e20a4872416b85c8ffdb0f2adf /drivers/infiniband/hw/ipath/ipath_verbs.h | |
parent | fd6a79a786b84510d00ee6aa6449a468e6d75dee (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.h | 4 |
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; |