[Openib-windows] [PATCH] modify QP

Yossi Leybovich sleybo at mellanox.co.il
Mon Oct 10 11:04:54 PDT 2005


Fab

We found that few fields were not set in the HW while transition from
INIT2RTR and RTR2RTS
The issue was that the THH layer check mask even on mandatory fields (for
example ack_timeout see vapi2qpc_modify function) so even that the user set
the value the actual value left unchanged (left 0).

This patch fix this issue by setting the mask to VAPI on each transition
even on mandatory fields.
This bug may cause  deadlock in a lot of scenario because timeout 0 in
Tavor/Arbel Hw is mean ignore timeout, so if you lost 1 packet the QP will
never retry or generate CQE with error so you left waiting forever.

pls review and apply

BTW:
There might be other fields that were not set ,I will cont. to review this
farther this week.

10x
Yossi 

Index: hw/mt23108/kernel/hca_data.c
===================================================================
--- hw/mt23108/kernel/hca_data.c	(revision 564)
+++ hw/mt23108/kernel/hca_data.c	(working copy)
@@ -1794,6 +1794,7 @@
 
 		if (modify_attr_p->state.rtr.opts &
IB_MOD_QP_RNR_NAK_TIMEOUT)
 		{
+			*attr_mask_p |= QP_ATTR_MIN_RNR_TIMER;
 			qp_attr_p->min_rnr_timer   =
modify_attr_p->state.rtr.rnr_nak_timeout;
 		} else
 		{
@@ -1814,9 +1815,11 @@
 		{
 			*attr_mask_p |= QP_ATTR_PATH_MTU;
 			qp_attr_p->path_mtu     =
modify_attr_p->state.rtr.primary_av.conn.path_mtu; // MTU
-
+			*attr_mask_p |= QP_ATTR_TIMEOUT;
 			qp_attr_p->timeout     =
modify_attr_p->state.rtr.primary_av.conn.local_ack_timeout; // XXX: conv
+			*attr_mask_p |= QP_ATTR_RETRY_COUNT;
 			qp_attr_p->retry_count =
modify_attr_p->state.rtr.primary_av.conn.seq_err_retry_cnt;
+			*attr_mask_p |= QP_ATTR_RNR_RETRY;
 			qp_attr_p->rnr_retry   =
modify_attr_p->state.rtr.primary_av.conn.rnr_retry_cnt;
 		}
 
@@ -1858,6 +1861,7 @@
 		*attr_mask_p |= QP_ATTR_SQ_PSN |
 			QP_ATTR_RETRY_COUNT |
 			QP_ATTR_RNR_RETRY |
+			QP_ATTR_TIMEOUT|
 			QP_ATTR_OUS_DST_RD_ATOM |
 			QP_ATTR_MIN_RNR_TIMER;
 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20051010/71c4eef5/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: modify_qp_timeout.patch
Type: application/octet-stream
Size: 1172 bytes
Desc: not available
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20051010/71c4eef5/attachment.obj>


More information about the ofw mailing list