From be7da21d0b083bf49ac9af129908849a0369abac Mon Sep 17 00:00:00 2001 From: tzachid Date: Tue, 1 Dec 2009 16:32:43 +0000 Subject: [PATCH] [IPoIB NDIS 6.0 CM] Tracing facilities (mlnx 5208) git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2607 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp | 9 +++++++++ ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp | 6 ++++++ ulp/ipoib_NDIS6_CM/kernel/ipoib_endpoint.h | 8 ++++++++ ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp | 8 ++++++-- 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp b/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp index c87ef53b..7c9eebd5 100644 --- a/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp +++ b/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp @@ -423,6 +423,9 @@ __ipoib_pnp_reg( * completes. */ cl_obj_ref( &p_adapter->obj ); + IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, + ("[%p] Adapter refcount raised to %d\n", p_adapter, p_adapter->obj.ref_cnt)); + IPOIB_EXIT( IPOIB_DBG_INIT ); return status; @@ -447,7 +450,11 @@ __adapter_destroying( */ if( p_adapter->h_pnp ) { + IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, + ("Adapter[%p] has refcnt= %d\n", p_adapter, p_adapter->obj.ref_cnt)); p_adapter->p_ifc->dereg_pnp( p_adapter->h_pnp, (ib_pfn_destroy_cb_t) cl_obj_deref ); + IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, + ("Adapter[%p] refcnt decremented to %d\n", p_adapter, p_adapter->obj.ref_cnt)); p_adapter->h_pnp = NULL; } @@ -1055,6 +1062,8 @@ __ipoib_adapter_reset( /* Dereference the adapter since the previous registration is now gone. */ cl_obj_deref( &p_adapter->obj ); + IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, + ("Adapter[%p] refcnt decremented to %d\n", p_adapter, p_adapter->obj.ref_cnt)); KeReleaseMutex( &p_adapter->mutex, FALSE ); diff --git a/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp b/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp index 2bb4ae2a..35d2b801 100644 --- a/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp +++ b/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp @@ -3928,6 +3928,8 @@ ipoib_reg_addrs( /* Take a reference for each service request. */ cl_obj_ref(&p_adapter->obj); + IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, + ("[%p] Adapter refcount raised to %d\n", p_adapter, p_adapter->obj.ref_cnt)); ib_status = p_adapter->p_ifc->reg_svc( p_adapter->h_al, &ib_service, &p_addr_item->p_reg->h_reg_svc ); if( ib_status != IB_SUCCESS ) @@ -3960,6 +3962,8 @@ ipoib_reg_addrs( p_adapter->hung = TRUE; } cl_obj_deref(&p_adapter->obj); + IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, + ("Adapter[%p] refcnt decremented to %d\n", p_adapter, p_adapter->obj.ref_cnt)); cl_free( p_addr_item->p_reg ); p_addr_item->p_reg = NULL; } @@ -4069,6 +4073,8 @@ __ipoib_ats_reg_cb( cl_obj_unlock( &p_reg->p_adapter->obj ); cl_obj_deref(&p_reg->p_adapter->obj); + IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, + ("Adapter[%p] refcnt decremented to %d\n", p_reg->p_adapter, p_reg->p_adapter->obj.ref_cnt)); IPOIB_EXIT( IPOIB_DBG_OID ); } diff --git a/ulp/ipoib_NDIS6_CM/kernel/ipoib_endpoint.h b/ulp/ipoib_NDIS6_CM/kernel/ipoib_endpoint.h index d6aea73c..844a81fe 100644 --- a/ulp/ipoib_NDIS6_CM/kernel/ipoib_endpoint.h +++ b/ulp/ipoib_NDIS6_CM/kernel/ipoib_endpoint.h @@ -195,6 +195,10 @@ ipoib_endpt_ref( CL_ASSERT( p_endpt ); cl_obj_ref( &p_endpt->obj ); +#if DBG + IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, + ("[%p] Endpt refcount raised to %d\n", p_endpt, p_endpt->obj.ref_cnt)); +#endif /* * Anytime we reference the endpoint, we're either receiving data * or trying to send data to that endpoint. Clear the expired flag @@ -208,6 +212,10 @@ ipoib_endpt_deref( IN ipoib_endpt_t* const p_endpt ) { cl_obj_deref( &p_endpt->obj ); +#if DBG + IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, + ("[%p] Endpt refcount decremented to %d\n", p_endpt, p_endpt->obj.ref_cnt)); +#endif } diff --git a/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp b/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp index 670eafe6..e2c1d3a2 100644 --- a/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp +++ b/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp @@ -579,6 +579,9 @@ inline void ipoib_port_ref( ipoib_port_t * p_port, int type ) cl_obj_ref( &p_port->obj ); #if DBG cl_atomic_inc( &p_port->ref[type % ref_mask] ); + IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, + ("Port[%d] refcount raised to %d\n", p_port->port_num, p_port->obj.ref_cnt)); + if ((p_port->obj.ref_cnt % 20)==0) IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, ("ref type %d ref_cnt %d\n", type, p_port->obj.ref_cnt) ); @@ -590,16 +593,17 @@ inline void ipoib_port_ref( ipoib_port_t * p_port, int type ) inline void ipoib_port_deref(ipoib_port_t * p_port, int type) { + cl_obj_deref( &p_port->obj ); #if DBG cl_atomic_dec( &p_port->ref[type % ref_mask] ); + IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, + ("Port[%d] refcount decremented to %d\n", p_port->port_num, p_port->obj.ref_cnt)); if ((p_port->obj.ref_cnt % 20) == 0) IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_OBJ, ("deref type %d ref_cnt %d\n", type, p_port->obj.ref_cnt) ); #else UNREFERENCED_PARAMETER(type); #endif - cl_obj_deref( &p_port->obj ); - } /* function returns pointer to payload that is going after IP header. -- 2.17.1