[ofw] [patch] fix forwarding of ipoib
Smith, Stan
stan.smith at intel.com
Thu Oct 7 13:08:08 PDT 2010
Hello,
patch committed as
Revision: 2962
Author: stansmith
Date: 12:41:10 PM, Thursday, October 07, 2010
Message:
[IPoIB_NDIS6_CM] NDIS6 IPOIB had a problem with forwarding packets.
The packet would be sent with one fragment size with size 0.
The hw would than refuse to send the packet.
signed-off-by: Tzachi Dar <tzachid at mellanox.co.il<mailto:tzachid at mellanox.co.il>>
----
Modified : /gen1/branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
Modified : /gen1/branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
Modified : /gen1/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
Modified : /gen1/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
________________________________
From: Tzachi Dar [mailto:tzachid at mellanox.co.il]
Sent: Thursday, October 07, 2010 2:57 AM
To: Smith, Stan; ofw at lists.openfabrics.org
Subject: RE: [patch] fix forwarding of ipoib
Ok, here is the patch again, against the win-ofed tree. Please note that the patch is smaller this time only because of white changes that existed in the previous patch and not in this one. The problem in applying the patch was very likely because of the transfer to html. (this time the patch is also attached).
Please note that we are actually talking here about two things: 1) print that is removed (not really related, but I guess that at this scenario we started to print...) .2 ) In the case that the scatter gather list was with size 0 we remove the extra entry. The braces are there for clarity.
Thanks
Tzachi
Index: ipoib_driver.cpp
===================================================================
--- ipoib_driver.cpp (revision 2948)
+++ ipoib_driver.cpp (working copy)
@@ -3178,9 +3178,6 @@
ipoib_port_ref( p_port, ref_send_packets );
cl_obj_unlock( &p_adapter->obj );
- if (NET_BUFFER_LIST_NEXT_NBL(net_buffer_list) != NULL) {
- cl_dbg_out("Recieved a list of NBLS ................\n");
- }
for (curr_net_buffer_list = net_buffer_list;
curr_net_buffer_list != NULL;
Index: ipoib_port.cpp
===================================================================
--- ipoib_port.cpp (revision 2959)
+++ ipoib_port.cpp (working copy)
@@ -4245,8 +4245,10 @@
p_desc->send_wr[0].local_ds[j].length =
p_sgl->Elements[i].Length - EthHeaderOffset - DataOffset;
p_desc->send_wr[0].local_ds[j].lkey = s_buf->p_port->ib_mgr.lkey;
+ if( p_desc->send_wr[0].local_ds[j].length > 0 ) {
+ j++;
+ }
i++;
- j++;
break;
}
}
@@ -4255,6 +4257,7 @@
{
p_desc->send_wr[0].local_ds[j].vaddr = p_sgl->Elements[i].Address.QuadPart;
p_desc->send_wr[0].local_ds[j].length = p_sgl->Elements[i].Length;
+ CL_ASSERT(p_desc->send_wr[0].local_ds[j].length > 0);
p_desc->send_wr[0].local_ds[j].lkey = s_buf->p_port->ib_mgr.lkey;
i++;
j++;
From: Smith, Stan [mailto:stan.smith at intel.com]
Sent: Wednesday, October 06, 2010 10:12 PM
To: Tzachi Dar; ofw at lists.openfabrics.org
Subject: RE: [patch] fix forwarding of ipoib
Hello,
What's up with posting patches from a source tree which only Mellanox employees can see? Please resubmit patch made against winOFED SVN if you want reasonable feedback.
Obviously this patch does not apply nor is it even close...
Another issue is posting patches in HTML format email, impossible to cut-n-paste; either plain-text or a plain-text patch file attachment - please.
>From what little sense the patch makes without context, it seems to follow what you claim it will do.
Curly braces at ~4250 are not required although they might improve readability in this case.
Speaking of code formatting @ 4250, most of the ipoib code uses the following if statement format: 'if(<sp>condition<sp>)' why do you deviate?
Also 4260.
Why do I care, for the same reasons the Linux community and Microsoft cares.
The 'return' statement @ ~8709, if this is the end of build_send_desc() then it needs to return a value?
grumpy stan.
________________________________
From: ofw-bounces at lists.openfabrics.org [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Tzachi Dar
Sent: Wednesday, October 06, 2010 9:42 AM
To: ofw at lists.openfabrics.org
Subject: [ofw] [patch] fix forwarding of ipoib
It seems that we had a problem with forwarding packets. The packet would be sent with one fragment size with size 0. The hw would than refuse to send the packet.
Thanks
Tzachi
Index: b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
===================================================================
--- b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp (revision 6618)
+++ b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp (revision 6619)
@@ -1154,7 +1154,7 @@
return status;
}
p_port->ib_mgr.qpn = qp_attr.num;
-
+
/* Register all of physical memory */
phys_create.length = MEM_REG_SIZE;
phys_create.num_ranges = 1;
@@ -4247,8 +4247,10 @@
p_desc->send_wr[0].local_ds[j].length =
p_sgl->Elements[i].Length - EthHeaderOffset - DataOffset;
p_desc->send_wr[0].local_ds[j].lkey = s_buf->p_port->ib_mgr.lkey;
+ if(p_desc->send_wr[0].local_ds[j].length > 0) {
+ j++;
+ }
i++;
- j++;
break;
}
}
@@ -4257,6 +4259,7 @@
{
p_desc->send_wr[0].local_ds[j].vaddr = p_sgl->Elements[i].Address.QuadPart;
p_desc->send_wr[0].local_ds[j].length = p_sgl->Elements[i].Length;
+ CL_ASSERT(p_desc->send_wr[0].local_ds[j].length > 0);
p_desc->send_wr[0].local_ds[j].lkey = s_buf->p_port->ib_mgr.lkey;
i++;
j++;
@@ -5219,7 +5222,7 @@
p_desc->send_wr[i-1].wr.p_next = &p_desc->send_wr[i].wr;
}
}
-
+
p_desc->send_wr[p_desc->num_wrs - 1].wr.wr_id = (uintn_t)s_buf ;
p_desc->send_wr[p_desc->num_wrs - 1].wr.send_opt |= IB_SEND_OPT_SIGNALED;
p_desc->send_wr[p_desc->num_wrs - 1].wr.p_next = NULL;
@@ -8708,4 +8711,4 @@
}
return;
}
-#endif
\ No newline at end of file
+#endif
Index: b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
===================================================================
--- b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp (revision 6618)
+++ b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp (revision 6619)
@@ -3178,9 +3178,6 @@
ipoib_port_ref( p_port, ref_send_packets );
cl_obj_unlock( &p_adapter->obj );
- if (NET_BUFFER_LIST_NEXT_NBL(net_buffer_list) != NULL) {
- cl_dbg_out("Recieved a list of NBLS ................\n");
- }
for (curr_net_buffer_list = net_buffer_list;
curr_net_buffer_list != NULL;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20101007/f57720a3/attachment.html>
More information about the ofw
mailing list