]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
Cleanup debug output and added missing locking around state checks.
authorftillier <ftillier@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 7 Jul 2005 23:39:25 +0000 (23:39 +0000)
committerftillier <ftillier@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 7 Jul 2005 23:39:25 +0000 (23:39 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1@31 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

branches/fab_cm_branch/ulp/wsd/user/ibsp_iblow.c
branches/fab_cm_branch/ulp/wsd/user/ibspdebug.c
branches/fab_cm_branch/ulp/wsd/user/ibspdebug.h
branches/fab_cm_branch/ulp/wsd/user/ibspdll.c

index 0d7826fe75447f04fb07e3650decf9aa76ea687f..490732745936f8ccddad63675a2d07129ef73890 100644 (file)
@@ -186,9 +186,9 @@ complete_wq(
                //      cl_spinlock_release( &socket_info->recv_lock );\r
                //}\r
 \r
-               if( p_recv_wr->ds_array[0].length >= 40 )\r
+               if( wc->status == IB_SUCCESS && p_recv_wr->ds_array[0].length >= 40 )\r
                {\r
-                       debug_dump_buffer( IBSP_DBG_WQ, gdbg_lvl, "RECV",\r
+                       debug_dump_buffer( IBSP_DBG_WQ | IBSP_DBG_LEVEL4, "RECV",\r
                                (void * __ptr64)p_recv_wr->ds_array[0].vaddr, 40 );\r
                }\r
 \r
index 3dc2d70f69cb39c410336797ce827fcefcd32a85..a2e98c00f3704332e1734a74ae4c2e416a5e240b 100644 (file)
@@ -116,7 +116,6 @@ DebugPrintSockAddr(
 void\r
 debug_dump_buffer(\r
                                        uint32_t                                        level,\r
-                                       uint32_t                                        mask,\r
                                        const char                                      *name,\r
                                        void                                            *buf,\r
                                        size_t                                          len )\r
@@ -129,19 +128,19 @@ debug_dump_buffer(
        s = str;\r
        *s = 0;\r
 \r
-       CL_PRINT( level, mask, ("HEX for %s:\n", name) );\r
+       CL_PRINT( level, gdbg_lvl, ("HEX for %s:\n", name) );\r
 \r
        for( i = 0; i < len; i++ )\r
        {\r
                s += sprintf( s, "%02x ", p[i] );\r
                if( i % 16 == 15 )\r
                {\r
-                       CL_PRINT( level, mask, ("HEX:%s: %s\n", name, str) );\r
+                       CL_PRINT( level, gdbg_lvl, ("HEX:%s: %s\n", name, str) );\r
                        s = str;\r
                        *s = 0;\r
                }\r
        }\r
-       CL_PRINT( level, mask, ("HEX:%s:%s\n", name, str) );\r
+       CL_PRINT( level, gdbg_lvl, ("HEX:%s: %s\n", name, str) );\r
 }\r
 \r
 \r
index cf7119687e10a61ac01983d39757fe06b472e8e4..7d14e5709559b5e599e645122bc4a47422bcef3c 100644 (file)
@@ -70,31 +70,7 @@ extern uint32_t gdbg_lvl;
 #define IBSP_ENTER( l )                                CL_ENTER( (l | IBSP_DBG_FUNC), gdbg_lvl )\r
 #define IBSP_EXIT( l )                         CL_EXIT( (l | IBSP_DBG_FUNC), gdbg_lvl )\r
 \r
-#if defined UNIT_TEST\r
-\r
-#define BREAKPOINT(x)\r
-\r
-#define CL_ERROR(a, b, c) printf c\r
-#define CL_EXIT_ERROR(a, b, c) printf c\r
-\r
-#undef CL_TRACE\r
-#define CL_TRACE(a,b,c) printf c\r
-#undef CL_ENTER\r
-#define CL_ENTER(a,b) printf("Enter %s\n", __FUNCTION__)\r
-#undef CL_EXIT\r
-#define CL_EXIT(a,b) printf("Exit %s\n", __FUNCTION__)\r
-#undef CL_PRINT\r
-#define CL_PRINT(a,b,c) printf c\r
-\r
-#define fzprint(a)\r
-\r
-#define STAT_INC(name)\r
-#define STAT_DEC(name)\r
-#define free_socket_info(a)\r
-#define ib_deregister_all_mr(a)\r
-#define DebugPrintSockAddr(a,b,c)\r
-\r
-#elif defined _DEBUG_\r
+#if defined _DEBUG_\r
 \r
 //#define fzprint(a) CL_PRINT(IBSP_DBG_USER, IBSP_DBG_USER, a)\r
 #define fzprint(a)\r
@@ -122,7 +98,6 @@ DebugPrintSockAddr(
 void\r
 debug_dump_buffer(\r
                                        uint32_t                                        level,\r
-                                       uint32_t                                        mask,\r
                        const   char                                            *name,\r
                                        void                                            *buf,\r
                                        size_t                                          len );\r
index 7890e995093ff1e762991ddaef5333c83d48ce0d..8b7bbffae885819cf153d65cb7b49c6d9610d55a 100644 (file)
@@ -1363,20 +1363,17 @@ IBSPIoctl(
        GUID SANRDMARead = WSAID_RDMAREAD;\r
        GUID SANMemoryRegistrationCacheCallback = WSAID_MEMORYREGISTRATIONCACHECALLBACK;\r
 \r
-       CL_ENTER( IBSP_DBG_OPT, gdbg_lvl );\r
+       IBSP_ENTER( IBSP_DBG_OPT );\r
 \r
        UNUSED_PARAM( cbInBuffer );\r
        UNUSED_PARAM( lpOverlapped );\r
        UNUSED_PARAM( lpCompletionRoutine );\r
        UNUSED_PARAM( lpThreadId );\r
 \r
-       fzprint(("%s():%d:0x%x:0x%x: socket=0x%p overlapped=0x%p\n", __FUNCTION__,\r
-                        __LINE__, GetCurrentProcessId(), GetCurrentThreadId(), s, lpOverlapped));\r
-\r
        if( dwIoControlCode == SIO_GET_EXTENSION_FUNCTION_POINTER )\r
        {\r
                /* This a special case. The socket handle passed is not valid. */\r
-               CL_TRACE( IBSP_DBG_OPT, gdbg_lvl, ("Get extension function pointer\n") );\r
+               IBSP_TRACE1( IBSP_DBG_OPT, ("Get extension function pointer\n") );\r
 \r
                if( memcmp( lpvInBuffer, &SANRegisterMemory, sizeof(GUID) ) == 0 )\r
                {\r
@@ -1407,6 +1404,8 @@ IBSPIoctl(
                {\r
                        if( no_read )\r
                        {\r
+                               IBSP_TRACE( IBSP_DBG_WARN | IBSP_DBG_OPT,\r
+                                       ("RDMA_READ disabled.\n") );\r
                                *lpErrno = WSAEOPNOTSUPP;\r
                                return SOCKET_ERROR;\r
                        }\r
@@ -1425,10 +1424,11 @@ IBSPIoctl(
                }\r
                else\r
                {\r
-                       CL_EXIT_ERROR( IBSP_DBG_OPT, gdbg_lvl, ("invalid extension GUID\n") );\r
+                       IBSP_ERROR_EXIT( ("invalid extension GUID\n") );\r
                        *lpErrno = WSAEINVAL;\r
                        return SOCKET_ERROR;\r
                }\r
+               IBSP_EXIT( IBSP_DBG_OPT );\r
                return 0;\r
        }\r
 \r
@@ -1600,7 +1600,8 @@ IBSPRecv(
        {\r
                /* Seen in real life with overlap/client test. \r
                 * The switch closes a socket then calls this. Why? */\r
-               IBSP_ERROR_EXIT( ("invalid socket handle %x\n", s) );\r
+               IBSP_TRACE_EXIT( IBSP_DBG_WARN | IBSP_DBG_IO,\r
+                       ("invalid socket handle %x\n", s) );\r
                *lpErrno = WSAENOTSOCK;\r
                return SOCKET_ERROR;\r
        }\r
@@ -1815,13 +1816,20 @@ IBSPSend(
        CL_ASSERT( lpCompletionRoutine == NULL );\r
        CL_ASSERT( lpOverlapped != NULL );\r
 \r
+       cl_spinlock_acquire( &socket_info->mutex );\r
        /* Check the state of the socket */\r
-       if( socket_info->socket_state != IBSP_CONNECTED )\r
+       switch( socket_info->socket_state )\r
        {\r
+       case IBSP_CONNECTED:\r
+       case IBSP_DISCONNECTED:\r
+               break;\r
+\r
+       default:\r
                IBSP_ERROR_EXIT( ("Socket is not in connected socket_state \n") );\r
                *lpErrno = WSAENOTCONN;\r
                return SOCKET_ERROR;\r
        }\r
+       cl_spinlock_release( &socket_info->mutex );\r
 \r
        if( socket_info->qp_error )\r
        {\r
@@ -1946,7 +1954,8 @@ IBSPSend(
 #ifdef _DEBUG_\r
        if( lpBuffers[0].len >= 40 )\r
        {\r
-               debug_dump_buffer( IBSP_DBG_WQ, gdbg_lvl, "SEND", lpBuffers[0].buf, 40 );\r
+               debug_dump_buffer( IBSP_DBG_WQ | IBSP_DBG_LEVEL4, "SEND",\r
+                       lpBuffers[0].buf, 40 );\r
        }\r
 #endif\r
 \r
@@ -2102,13 +2111,13 @@ IBSPSocket(
 {\r
        struct ibsp_socket_info *socket_info = NULL;\r
 \r
-       CL_ENTER( IBSP_DBG_CONN, gdbg_lvl );\r
+       IBSP_ENTER( IBSP_DBG_SI );\r
 \r
        UNUSED_PARAM( g );\r
 \r
        if( af != AF_INET )\r
        {\r
-               CL_ERROR( IBSP_DBG_CONN, gdbg_lvl,\r
+               IBSP_ERROR(\r
                        ("bad family %d instead of %d\n", af, AF_INET) );\r
                *lpErrno = WSAEAFNOSUPPORT;\r
                goto error;\r
@@ -2116,7 +2125,7 @@ IBSPSocket(
 \r
        if( type != SOCK_STREAM )\r
        {\r
-               CL_ERROR( IBSP_DBG_CONN, gdbg_lvl,\r
+               IBSP_ERROR(\r
                        ("bad type %d instead of %d\n", type, SOCK_STREAM) );\r
                *lpErrno = WSAEPROTOTYPE;\r
                goto error;\r
@@ -2124,7 +2133,7 @@ IBSPSocket(
 \r
        if( protocol != IPPROTO_TCP )\r
        {\r
-               CL_ERROR( IBSP_DBG_CONN, gdbg_lvl,\r
+               IBSP_ERROR(\r
                        ("bad protocol %d instead of %d\n", protocol, IPPROTO_TCP) );\r
                *lpErrno = WSAEPROTONOSUPPORT;\r
                goto error;\r
@@ -2132,7 +2141,7 @@ IBSPSocket(
 \r
        if( (dwFlags != WSA_FLAG_OVERLAPPED) )\r
        {\r
-               CL_ERROR( IBSP_DBG_CONN, gdbg_lvl,\r
+               IBSP_ERROR(\r
                        ("dwFlags is not WSA_FLAG_OVERLAPPED (%x)\n", dwFlags) );\r
                *lpErrno = WSAEINVAL;\r
                goto error;\r
@@ -2141,7 +2150,7 @@ IBSPSocket(
        socket_info = create_socket_info();\r
        if( socket_info == NULL )\r
        {\r
-               CL_ERROR( IBSP_DBG_CONN, gdbg_lvl, ("create_socket_info return NULL\n") );\r
+               IBSP_ERROR( ("create_socket_info return NULL\n") );\r
                *lpErrno = WSAENOBUFS;\r
                goto error;\r
        }\r
@@ -2154,7 +2163,7 @@ IBSPSocket(
                ret = setup_duplicate_socket( socket_info, lpProtocolInfo->dwProviderReserved );\r
                if( ret )\r
                {\r
-                       CL_ERROR( IBSP_DBG_CONN, gdbg_lvl,\r
+                       IBSP_ERROR(\r
                                ("setup_duplicate_socket failed with %d\n",ret) );\r
                        *lpErrno = ret;\r
                        goto error;\r
@@ -2169,9 +2178,8 @@ IBSPSocket(
 \r
                if( socket_info->switch_socket != INVALID_SOCKET )\r
                {\r
-                       fzprint(("%s():%d:0x%x:0x%x: socket_info=0x%p switch_socket=0x%p \n",\r
-                                        __FUNCTION__, __LINE__, GetCurrentProcessId(), GetCurrentThreadId(),\r
-                                        socket_info, socket_info->switch_socket));\r
+                       IBSP_TRACE1( IBSP_DBG_SI, ("socket_info=0x%p switch_socket=0x%p \n",\r
+                               socket_info, socket_info->switch_socket) );\r
 \r
                        STAT_INC( wpusocket_num );\r
                }\r
@@ -2179,7 +2187,7 @@ IBSPSocket(
 \r
        if( socket_info->switch_socket == INVALID_SOCKET )\r
        {\r
-               CL_ERROR( IBSP_DBG_CONN, gdbg_lvl,\r
+               IBSP_ERROR(\r
                        ("WPUCreateSocketHandle() failed: %d\n", *lpErrno) );\r
                /* lpErrno has just been set */\r
                goto error;\r
@@ -2209,7 +2217,7 @@ IBSPSocket(
        fzprint(("%s():%d:0x%x:0x%x: socket=0x%p\n", __FUNCTION__,\r
                         __LINE__, GetCurrentProcessId(), GetCurrentThreadId(), socket_info));\r
 \r
-       CL_TRACE_EXIT( IBSP_DBG_CONN, gdbg_lvl,\r
+       IBSP_TRACE_EXIT( IBSP_DBG_SI,\r
                ("returning socket handle %p\n", socket_info) );\r
 \r
        return (SOCKET) socket_info;\r
@@ -2220,7 +2228,7 @@ error:
 \r
        CL_ASSERT( *lpErrno != 0 );\r
 \r
-       CL_EXIT_ERROR( IBSP_DBG_CONN, gdbg_lvl, ("Returning error %d\n", *lpErrno) );\r
+       IBSP_ERROR_EXIT( ("Returning error %d\n", *lpErrno) );\r
 \r
        return INVALID_SOCKET;\r
 }\r