Adding MACRO definitions to the previous patches
Index: B:/users/xalex/MLNX_VPI_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
===================================================================
--- B:/users/xalex/MLNX_VPI_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
(revision 7041)
+++ B:/users/xalex/MLNX_VPI_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
(revision 7042)
@@ -2167,8 +2167,8 @@
{
/* We may have thrown away packets, and have a shortage
*/
cl_perf_start( RepostRecv );
- IPOIB_PRINT_EXIT( TRACE_LEVEL_WARNING, IPOIB_DBG_ALL,
- ("Out of recv descriptors, reposting
again\n") )
+ IPOIB_PRINT( TRACE_LEVEL_WARNING, IPOIB_DBG_ALL,
+ ("Out of recv descriptors, reposting
again\n") );
shortage = __recv_mgr_repost( p_port );
cl_perf_stop( &p_port->p_adapter->perf, RepostRecv );
}
Index: B:/users/xalex/MLNX_VPI_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_debug.h
===================================================================
--- B:/users/xalex/MLNX_VPI_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_debug.h
(revision 7041)
+++ B:/users/xalex/MLNX_VPI_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_debug.h
(revision 7042)
@@ -52,7 +52,6 @@
extern uint32_t g_ipoib_dbg_level;
extern uint32_t g_ipoib_dbg_flags;
-
#if defined(EVENT_TRACING)
//
// Software Tracing Definitions
@@ -74,10 +73,11 @@
WPP_DEFINE_BIT(IPOIB_DBG_IOCTL) \
WPP_DEFINE_BIT(IPOIB_DBG_STAT) \
WPP_DEFINE_BIT(IPOIB_DBG_OBJ) \
- WPP_DEFINE_BIT(IPOIB_DBG_SHUTTER))
+ WPP_DEFINE_BIT(IPOIB_DBG_SHUTTER) \
+ WPP_DEFINE_BIT(IPOIB_DBG_ALL) \
+ )
-
#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) \
(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >=
lvl)
#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)-----Original Message----- From: Alex Naslednikov Sent: Wednesday, December 22, 2010 12:27 PM To: Alex Naslednikov; [email protected] Subject: [ofw][Patch][IPoIB_NDIS6_CM] __recv_cb_internal() revisited __recv_cb_internal revisited Code clean-up and rearrange Update shortage counter when reposting recv descriptors again Signed-off by: Alexander Naslednikov (xalex at mellanox.co.il) Index: ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp =================================================================== --- ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp (revision 3033) +++ ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp (working copy) @@ -2143,12 +2143,6 @@ cl_perf_start( RepostRecv ); shortage = __recv_mgr_repost( p_port ); - if( shortage > 0 ) - { - recv_complete_flags |= NDIS_RECEIVE_FLAGS_RESOURCES; - cl_dbg_out("Got SHORTAGE=%d\n",shortage); - } - cl_perf_stop( &p_port->p_adapter->perf, RepostRecv ); cl_perf_start( BuildNBLArray ); @@ -2161,12 +2155,13 @@ { /* We may have thrown away packets, and have a shortage */ cl_perf_start( RepostRecv ); - __recv_mgr_repost( p_port ); + IPOIB_PRINT_EXIT( TRACE_LEVEL_WARNING, IPOIB_DBG_ALL, + ("Out of recv descriptors, reposting again\n") ) + shortage = __recv_mgr_repost( p_port ); cl_perf_stop( &p_port->p_adapter->perf, RepostRecv ); } if( !NBL_cnt ) { - //cl_dbg_out("NBL cnt == 0 :-(\n"); break; } @@ -2174,7 +2169,8 @@ cl_perf_start( RecvNdisIndicate ); - if (shortage <= 0) { + if (shortage <= 0) + { res = shutter_add( &p_port->p_adapter->recv_shutter, NBL_cnt ); if (res) @@ -2191,14 +2187,16 @@ __free_received_NBL( p_port, p_port->recv_mgr.recv_NBL_array[0] ); cl_spinlock_release( &p_port->recv_lock ); } - - } else { - /* If shortage >0, we already set the status to - NDIS_RECEIVE_FLAGS_RESOURCES. That is, IPoIB driver regain + cl_perf_stop( &p_port->p_adapter->perf, RecvNdisIndicate ); + } + else + { + /* If shortage >0, IPoIB driver should regain ownership of the NET_BUFFER_LIST structures immediately. */ res = shutter_add( &p_port->p_adapter->recv_shutter, 1 ); if (res) { + recv_complete_flags |= NDIS_RECEIVE_FLAGS_RESOURCES; NdisMIndicateReceiveNetBufferLists( p_port->p_adapter->h_adapter, p_port->recv_mgr.recv_NBL_array[0], @@ -2207,20 +2205,18 @@ recv_complete_flags ); shutter_sub( &p_port->p_adapter->recv_shutter, -1 ); } - } + cl_perf_stop( &p_port->p_adapter->perf, RecvNdisIndicate ); - cl_perf_stop( &p_port->p_adapter->perf, RecvNdisIndicate ); - - /* - * Cap the number of receives to put back to what we just indicated - * with NDIS_STATUS_RESOURCES. - */ - if( shortage > 0 ) - { - cl_dbg_out("GOT SHORTAGE <===============\n"); + /* + * Cap the number of receives to put back to what we just indicated + * with NDIS_STATUS_RESOURCES. + */ + + IPOIB_PRINT_EXIT( TRACE_LEVEL_WARNING, IPOIB_DBG_ALL, + ("Out of recv descriptors, SHORTAGE=%d\n",shortage) ); + /* Return all but the last packet to the pool. */ cl_spinlock_acquire( &p_port->recv_lock ); - //while( shortage-- > 1 ) while ( NBL_cnt-- > 0) { __buf_mgr_put_recv( @@ -2232,12 +2228,8 @@ __recv_mgr_repost( p_port ); cl_spinlock_release( &p_port->recv_lock ); - /* - * Return the last packet as if NDIS returned it, so that we repost - * and report any other pending receives. - */ - //ipoib_return_net_buffer_list( p_port, p_port->recv_mgr.recv_NBL_array[0],recv_complete_flags ); } + cl_spinlock_acquire( &p_port->recv_lock ); } while( NBL_cnt );
__recv_cb_revisited_add_on.patch
Description: __recv_cb_revisited_add_on.patch
_______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
