It seems that the same is true for ipoib_port_resume().

Xalex, can you try this and see that this is working?

Thanks
Tzachi

From: Smith, Stan [mailto:[email protected]]
Sent: Monday, January 03, 2011 10:35 PM
To: Tzachi Dar; [email protected]
Subject: RE: [ofw] [patch] [ipoib_NDIS6_CM] The send_lock is being held once 
__send_cb is calling __send_complete_net_buffer.

________________________________
From: Tzachi Dar [mailto:[email protected]]
Sent: Monday, January 03, 2011 11:03 AM
To: Smith, Stan; [email protected]
Subject: RE: [ofw] [patch] [ipoib_NDIS6_CM] The send_lock is being held once 
__send_cb is calling __send_complete_net_buffer.
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.

OK, makes sense that NDIS could call back; I was curious on how the problem of 
holding send_lock locked was detected.

What about the proposed change to ipoib_port_resume()?

Thanks
Tzachi


From: Smith, Stan [mailto:[email protected]]
Sent: Monday, January 03, 2011 8:09 PM
To: Tzachi Dar; [email protected]
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: [email protected] 
[mailto:[email protected]] On Behalf Of Tzachi Dar
Sent: Saturday, January 01, 2011 11:55 PM
To: Tzachi Dar; [email protected]
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: [email protected] 
[mailto:[email protected]] On Behalf Of Tzachi Dar
Sent: Sunday, December 26, 2010 6:39 PM
To: [email protected]
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 );

_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to