[mpich2-commits] r6678 - in mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod: nd wintcp

jayesh at mcs.anl.gov jayesh at mcs.anl.gov
Wed May 19 10:47:33 CDT 2010


Author: jayesh
Date: 2010-05-19 10:47:33 -0500 (Wed, 19 May 2010)
New Revision: 6678

Modified:
   mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_finalize.cpp
   mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_impl.h
   mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_init.cpp
   mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_sm.cpp
   mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/wintcp/socksm.c
   mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/wintcp/wintcp_impl.h
   mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/wintcp/wintcp_init.c
Log:
As of r6648 the vc state is moved to the netmod private area. Updating the windows channels accordingly

Modified: mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_finalize.cpp
===================================================================
--- mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_finalize.cpp	2010-05-18 20:42:19 UTC (rev 6677)
+++ mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_finalize.cpp	2010-05-19 15:47:33 UTC (rev 6678)
@@ -84,7 +84,7 @@
 
     vc_ch->next = NULL;
     vc_ch->prev = NULL;
-    vc_ch->state = MPID_NEM_VC_STATE_DISCONNECTED;
+    MPID_NEM_ND_VCCH_NETMOD_STATE_SET(vc, MPID_NEM_ND_VC_STATE_DISCONNECTED);
 
     mpi_errno = MPID_Nem_nd_conn_disc(MPID_NEM_ND_VCCH_NETMOD_CONN_HND_GET(vc));
     if(mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);

Modified: mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_impl.h
===================================================================
--- mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_impl.h	2010-05-18 20:42:19 UTC (rev 6677)
+++ mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_impl.h	2010-05-19 15:47:33 UTC (rev 6678)
@@ -211,6 +211,13 @@
 };
 
 #define MPID_NEM_ND_CONN_IS_CONNECTING(_conn_hnd) (_conn_hnd && ( (_conn_hnd->state > MPID_NEM_ND_CONN_QUIESCENT) && (_conn_hnd->state < MPID_NEM_ND_CONN_ACTIVE) ))
+
+/* VC states */
+typedef enum{
+    MPID_NEM_ND_VC_STATE_DISCONNECTED=0,
+    MPID_NEM_ND_VC_STATE_CONNECTED
+} MPID_Nem_nd_vc_state_t;
+
 /* The vc provides a generic buffer in which network modules can store
    private fields This removes all dependencies from the VC struct
    on the network module */
@@ -224,6 +231,7 @@
         struct MPID_Request *head;
         struct MPID_Request *tail;
     } pending_sendq;
+    MPID_Nem_nd_vc_state_t state;
 } MPID_Nem_nd_vc_area;
 
 #define MPID_NEM_ND_VCCH_GET_ACTIVE_RECV_REQ(_vc) (((MPIDI_CH3I_VC *)((_vc)->channel_private))->recv_active)
@@ -254,6 +262,8 @@
 #define MPID_NEM_ND_VCCH_NETMOD_FIELD_GET(_vc, _field) (((MPID_Nem_nd_vc_area *)((MPIDI_CH3I_VC *)(_vc)->channel_private)->netmod_area.padding)->_field)
 #define MPID_NEM_ND_VCCH_NETMOD_CONN_HND_SET(_vc, _conn_hnd) ((((MPID_Nem_nd_vc_area *)((MPIDI_CH3I_VC *)(_vc)->channel_private)->netmod_area.padding)->conn_hnd) = _conn_hnd)
 #define MPID_NEM_ND_VCCH_NETMOD_CONN_HND_GET(_vc) (((MPID_Nem_nd_vc_area *)((MPIDI_CH3I_VC *)(_vc)->channel_private)->netmod_area.padding)->conn_hnd)
+#define MPID_NEM_ND_VCCH_NETMOD_STATE_SET(_vc, _state) ((((MPID_Nem_nd_vc_area *)((MPIDI_CH3I_VC *)(_vc)->channel_private)->netmod_area.padding)->state) = _state)
+#define MPID_NEM_ND_VCCH_NETMOD_STATE_GET(_vc) (((MPID_Nem_nd_vc_area *)((MPIDI_CH3I_VC *)(_vc)->channel_private)->netmod_area.padding)->state)
 
 /* VC Netmod util funcs */
 #define MPID_NEM_ND_VC_IS_CONNECTED(_vc) (\

Modified: mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_init.cpp
===================================================================
--- mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_init.cpp	2010-05-18 20:42:19 UTC (rev 6677)
+++ mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_init.cpp	2010-05-19 15:47:33 UTC (rev 6678)
@@ -75,7 +75,7 @@
 
     vc->sendNoncontig_fn      = MPID_Nem_nd_send_noncontig;
 
-    vc_ch->state = MPID_NEM_VC_STATE_DISCONNECTED;
+    MPID_NEM_ND_VCCH_NETMOD_STATE_SET(vc, MPID_NEM_ND_VC_STATE_DISCONNECTED);
     vc_ch->iStartContigMsg    = MPID_Nem_nd_istart_contig_msg;
     vc_ch->iSendContig        = MPID_Nem_nd_send_contig;
     vc_ch->next = NULL;

Modified: mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_sm.cpp
===================================================================
--- mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_sm.cpp	2010-05-18 20:42:19 UTC (rev 6677)
+++ mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/nd/nd_sm.cpp	2010-05-19 15:47:33 UTC (rev 6678)
@@ -1516,7 +1516,7 @@
         vc = conn_hnd->vc;
         vc_ch = (MPIDI_CH3I_VC *)vc->channel_private;
 
-        vc_ch->state = MPID_NEM_VC_STATE_CONNECTED;
+        MPID_NEM_ND_VCCH_NETMOD_STATE_SET(vc, MPID_NEM_ND_VC_STATE_CONNECTED);
         MPID_NEM_ND_CONN_STATE_SET(conn_hnd, MPID_NEM_ND_CONN_ACTIVE);
 
         /* Repost recv buf */
@@ -1612,7 +1612,7 @@
 
     vc_ch = (MPIDI_CH3I_VC *)vc->channel_private;
     if(MPID_NEM_ND_CONN_HND_IS_VALID(MPID_NEM_ND_VCCH_NETMOD_CONN_HND_GET(vc))){
-        if(vc_ch->state != MPID_NEM_VC_STATE_CONNECTED){
+        if(MPID_NEM_ND_VCCH_NETMOD_STATE_GET(vc) != MPID_NEM_ND_VC_STATE_CONNECTED){
             /* VC is connecting - head-to-head scenario */
             MPID_Nem_nd_conn_hnd_t old_conn_hnd = MPID_NEM_ND_VCCH_NETMOD_CONN_HND_GET(vc);
             int old_conn_won_hh=0;
@@ -1745,7 +1745,7 @@
             /* VC is now connected - send an ACK - CACK - to listen side */
             vc = conn_hnd->vc;
             vc_ch = (MPIDI_CH3I_VC *)vc->channel_private;
-            vc_ch->state = MPID_NEM_VC_STATE_CONNECTED;
+            MPID_NEM_ND_VCCH_NETMOD_STATE_SET(vc, MPID_NEM_ND_VC_STATE_CONNECTED);
             MPID_NEM_ND_CONN_STATE_SET(conn_hnd, MPID_NEM_ND_CONN_ACTIVE);
 
             MPIU_Assert(!MSGBUF_FREEQ_IS_EMPTY(conn_hnd));

Modified: mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/wintcp/socksm.c
===================================================================
--- mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/wintcp/socksm.c	2010-05-18 20:42:19 UTC (rev 6677)
+++ mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/wintcp/socksm.c	2010-05-19 15:47:33 UTC (rev 6678)
@@ -1320,7 +1320,7 @@
         }
         /* --END ERROR HANDLING-- */
         MPIDI_VC_Init(vc, NULL, 0);     
-        ((MPIDI_CH3I_VC *)vc->channel_private)->state = MPID_NEM_NEWTCP_MODULE_VC_STATE_CONNECTED; /* FIXME: is it needed ? */
+        VC_FIELD(vc, state) = MPID_NEM_NEWTCP_MODULE_VC_STATE_CONNECTED;  /* FIXME: is it needed ? */
         sc->vc = vc; 
         MPIU_DBG_MSG_FMT(NEM_SOCK_DET, VERBOSE, (MPIU_DBG_FDEST, "about to incr sc_ref_count sc=%p sc->vc=%p sc_ref_count=%d", sc, sc->vc, VC_FIELD(sc->vc, sc_ref_count)));
         ++VC_FIELD(vc, sc_ref_count);
@@ -1443,7 +1443,7 @@
 
     MPIDI_CHANGE_VC_STATE(vc, ACTIVE);
 
-    if (((MPIDI_CH3I_VC *)vc->channel_private)->state == MPID_NEM_NEWTCP_MODULE_VC_STATE_DISCONNECTED) {
+    if(VC_FIELD(vc, state) == MPID_NEM_NEWTCP_MODULE_VC_STATE_DISCONNECTED){
         struct sockaddr_in *sock_addr;
         struct in_addr addr;
 
@@ -1496,7 +1496,7 @@
         mpi_errno = MPID_nem_newtcp_module_post_connect_ex(sc, sock_addr);
         if(mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);
       
-        ((MPIDI_CH3I_VC *)vc->channel_private)->state = MPID_NEM_NEWTCP_MODULE_VC_STATE_CONNECTED;
+        VC_FIELD(vc, state) = MPID_NEM_NEWTCP_MODULE_VC_STATE_CONNECTED;
         sc->pg_rank = vc->pg_rank;
         if (vc->pg != NULL) { /* normal (non-dynamic) connection */
             if (IS_SAME_PGID(vc->pg->id, MPIDI_Process.my_pg->id)) {
@@ -1520,7 +1520,7 @@
         MPIU_DBG_MSG_FMT(NEM_SOCK_DET, VERBOSE, (MPIU_DBG_FDEST, "about to incr sc_ref_count sc=%p sc->vc=%p sc_ref_count=%d", sc, sc->vc, VC_FIELD(sc->vc, sc_ref_count)));
         ++VC_FIELD(vc, sc_ref_count);
     }
-    else if (((MPIDI_CH3I_VC *)vc->channel_private)->state == MPID_NEM_NEWTCP_MODULE_VC_STATE_CONNECTED) {
+    else if(VC_FIELD(vc, state) == MPID_NEM_NEWTCP_MODULE_VC_STATE_CONNECTED){
         sc = VC_FIELD(vc, sc);
         MPIU_Assert(sc != NULL);
         /* Do nothing here, the caller just needs to wait for the connection
@@ -1577,7 +1577,7 @@
     if (sc->vc && VC_FIELD(sc->vc, sc) == sc) /* this vc may be connecting/accepting with another sc e.g., this sc lost
 the tie-breaker */
     {
-        ((MPIDI_CH3I_VC *)sc->vc->channel_private)->state = MPID_NEM_NEWTCP_MODULE_VC_STATE_DISCONNECTED;
+        VC_FIELD(sc->vc, state) = MPID_NEM_NEWTCP_MODULE_VC_STATE_DISCONNECTED;
         ASSIGN_SC_TO_VC(sc->vc, NULL);
     }
     sc->vc = NULL;

Modified: mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/wintcp/wintcp_impl.h
===================================================================
--- mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/wintcp/wintcp_impl.h	2010-05-18 20:42:19 UTC (rev 6677)
+++ mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/wintcp/wintcp_impl.h	2010-05-19 15:47:33 UTC (rev 6678)
@@ -37,10 +37,11 @@
 extern MPID_nem_queue_ptr_t MPID_nem_process_free_queue;
 extern int MPID_nem_newtcp_module_listen_fd;
 
+typedef enum{
+    MPID_NEM_NEWTCP_MODULE_VC_STATE_DISCONNECTED=0,
+    MPID_NEM_NEWTCP_MODULE_VC_STATE_CONNECTED
+} MPID_Nem_newtcp_module_vc_state_t;
 
-#define MPID_NEM_NEWTCP_MODULE_VC_STATE_DISCONNECTED 0
-#define MPID_NEM_NEWTCP_MODULE_VC_STATE_CONNECTED 1
-
 extern char *MPID_nem_newtcp_module_recv_buf;
 #define MPID_NEM_NEWTCP_MODULE_RECV_MAX_PKT_LEN 1024
 #define MPID_NEM_NEWTCP_MODULE_RCVBUF_SZ    (128*1024)
@@ -59,6 +60,7 @@
         struct MPID_Request *tail;
     } send_queue;
     /* this is a count of how many sc objects refer to this vc */
+    MPID_Nem_newtcp_module_vc_state_t state;
     int sc_ref_count;
 } MPID_nem_newtcp_module_vc_area;
 

Modified: mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/wintcp/wintcp_init.c
===================================================================
--- mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/wintcp/wintcp_init.c	2010-05-18 20:42:19 UTC (rev 6677)
+++ mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/wintcp/wintcp_init.c	2010-05-19 15:47:33 UTC (rev 6678)
@@ -351,7 +351,7 @@
 
     MPIDI_FUNC_ENTER(MPID_STATE_MPID_NEM_NEWTCP_MODULE_VC_INIT);
 
-    vc_ch->state = MPID_NEM_NEWTCP_MODULE_VC_STATE_DISCONNECTED;
+    VC_FIELD(vc, state) = MPID_NEM_NEWTCP_MODULE_VC_STATE_DISCONNECTED;
     
     vc->sendNoncontig_fn      = MPID_nem_newtcp_SendNoncontig;
     vc_ch->iStartContigMsg    = MPID_nem_newtcp_iStartContigMsg;



More information about the mpich2-commits mailing list