[ofw] [patch] [ipoib_NDIS6_CM] The send_lock is being held once __send_cb is calling __send_complete_net_buffer.

Tzachi Dar tzachid at mellanox.co.il
Mon Jan 3 11:03:14 PST 2011


The lock has to be unlocked since our call to ndis NdisMSendComplete can cause NDIS to call us to send in the same dpc, and there we reach a deadlock.

We have seen this happen once, and we wander why we don't see that every time.

Thanks
Tzachi


From: Smith, Stan [mailto:stan.smith at intel.com]
Sent: Monday, January 03, 2011 8:09 PM
To: Tzachi Dar; ofw at lists.openfabrics.org
Subject: RE: [ofw] [patch] [ipoib_NDIS6_CM] The send_lock is being held once __send_cb is calling __send_complete_net_buffer.

Hi Tzachi,
  A couple of questions:

Why is p_port->send_lock is required to be unlocked when calling NdisMSendNetBufferListsCompleteX() which translates to NdisMSendComplete() call?

If p_port->send_lock is required to be unlocked when calling NdisMSendNetBufferListsCompleteX(), then ipoib_port_resume() should call
__send_complete_net_buffer( s_buf, NDIS_STATUS_FAILURE, NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL, TRUE)  not FALSE
as send_lock is held over calls to ipoib_port_resume().

stan.



________________________________
From: ofw-bounces at lists.openfabrics.org [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Tzachi Dar
Sent: Saturday, January 01, 2011 11:55 PM
To: Tzachi Dar; ofw at lists.openfabrics.org
Subject: Re: [ofw] [patch] [ipoib_NDIS6_CM] The send_lock is being held once __send_cb is calling __send_complete_net_buffer.
Applied on 3053.

Thanks
Tzachi

From: ofw-bounces at lists.openfabrics.org [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Tzachi Dar
Sent: Sunday, December 26, 2010 6:39 PM
To: ofw at lists.openfabrics.org
Subject: [ofw] [patch] [ipoib_NDIS6_CM] The send_lock is being held once __send_cb is calling __send_complete_net_buffer.

Index: D:/projinf2_1_3_1/MLNX_WinOF-2_1_3/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
===================================================================
--- D:/projinf2_1_3_1/MLNX_WinOF-2_1_3/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp            (revision 7086)
+++ D:/projinf2_1_3_1/MLNX_WinOF-2_1_3/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp         (revision 7087)
@@ -6238,7 +6238,7 @@
                                                __send_complete_net_buffer( s_buf,
                                                                                                                                                                status,
                                                                                                                                                                NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL,
-                                                                                                                                                              FALSE );
+                                                                                                                                                             TRUE );

                                                cl_atomic_dec( &p_port->send_mgr.depth );

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20110103/bca80c68/attachment.html>


More information about the ofw mailing list