netlrts & verbs: eliminate usage of CmiState in the machine layer 03/403/6
authorBilge Acun <acun2@illinois.edu>
Wed, 15 Oct 2014 15:26:30 +0000 (10:26 -0500)
committerGerrit Code Review <gerrit2@charm.cs.uiuc.edu>
Tue, 28 Oct 2014 01:42:23 +0000 (20:42 -0500)
CmiState usage is abstracted away from the machine layer by replacing
CmiGetPeGlobal with CmiMyPeGlobal and adding a new function,
CmiIdleLock_hasMessage to check if the state has messages

Change-Id: I772849f6228c95b94cd8f6d8baa5488b99cf11d7

src/arch/netlrts/machine-eth.c
src/arch/netlrts/machine-tcp.c
src/arch/netlrts/machine.c
src/arch/util/machine-common-core.c
src/arch/util/machine-smp.c
src/arch/verbs/machine.c

index 0c56ed3737b36af41edc8b4dcaac214dd389cc5b..4ebc91b124a26372546ac4c3656a6d9560c525b0 100644 (file)
@@ -698,7 +698,7 @@ static void CommunicationServerNet(int sleepTime, int where)
   }
   CommunicationsClock();
   /*Don't sleep if a signal has stored messages for us*/
-  if (sleepTime&&CmiGetState()->idle.hasMessages) sleepTime=0;
+  if (sleepTime&&CmiState_hasMessage()) sleepTime=0;
   while (CheckSocketsReady(sleepTime)>0) {
     int again=0;
       MACHSTATE(2,"CheckSocketsReady returned true");
index 4a1ba1d3eedc2f90bdeeeeb55fce83607290b514..f343cdb187af50d8fa2763696f6fbb5b5647ce0a 100644 (file)
@@ -234,7 +234,7 @@ static void CommunicationServerNet(int sleepTime, int where)
   }
   CommunicationsClock();
   /*Don't sleep if a signal has stored messages for us*/
-  if (sleepTime&&CmiGetState()->idle.hasMessages) sleepTime=0;
+  if (sleepTime&&CmiState_hasMessage()) sleepTime=0;
   while (CheckSocketsReady(sleepTime, 1)>0) {
     int again=0;
     sleepTime=0;
index 13149d4351ea17b344a464f9a349cc2cbd3b77fb..a4417dfa6ce3105032ea8bcd69e47dc97df0d385 100644 (file)
@@ -1540,13 +1540,13 @@ int DeliverOutgoingMessage(OutgoingMsg ogm)
 /**
  * Set up an OutgoingMsg structure for this message.
  */
-static OutgoingMsg PrepareOutgoing(CmiState cs,int pe,int size,int freemode,char *data) {
+static OutgoingMsg PrepareOutgoing(int pe,int size,int freemode,char *data) {
   OutgoingMsg ogm;
   MallocOutgoingMsg(ogm);
   MACHSTATE2(2,"Preparing outgoing message for pe %d, size %d",pe,size);
   ogm->size = size;
   ogm->data = data;
-  ogm->src = CmiGetPeGlobal(cs->pe,CmiMyPartition());
+  ogm->src = CmiMyPeGlobal();
   ogm->dst = pe;
   ogm->freemode = freemode;
   ogm->refcount = 0;
@@ -1570,12 +1570,12 @@ static OutgoingMsg PrepareOutgoing(CmiState cs,int pe,int size,int freemode,char
 CmiCommHandle LrtsSendFunc(int destNode, int pe, int size, char *data, int freemode)
 {
   int sendonnetwork;
-  CmiState cs = CmiGetState(); OutgoingMsg ogm;
+  OutgoingMsg ogm;
   MACHSTATE(1,"CmiGeneralSend {");
 
   CMI_MSG_SIZE(data) = size;
 
-  ogm=PrepareOutgoing(cs,pe,size,'F',data);
+  ogm=PrepareOutgoing(pe,size,'F',data);
 
   int acqLock = 0;
 #if CMK_SMP_NOT_RELAX_LOCK  
index 58af1faf14906003e4a77cf86d70f3ed3efb763a..2861b6465d0f9c03c78c265403a7a59802b577c1 100644 (file)
@@ -365,6 +365,7 @@ INLINE_KEYWORD CMIQueue CmiMyNodeQueue() {
     return CsvAccess(NodeState).NodeRecv;
 }
 #endif
+
 INLINE_KEYWORD int CmiMyPe() {
     return CmiGetState()->pe;
 }
@@ -390,6 +391,12 @@ INLINE_KEYWORD int CmiRankOf(int pe) {
     return pe%_Cmi_mynodesize;
 }
 #endif
+
+static int CmiState_hasMessage() {
+  CmiState cs = CmiGetState();
+  return CmiIdleLock_hasMessage(cs);
+}
+
 /* ===== End of Processor/Node State-related Stuff =====*/
 
 #include "machine-broadcast.c"
index 5213eb61bd328d2fef22661bb80dba9df376544c..155381c2460b4846bd940aa7f2eb124eca14701f 100644 (file)
@@ -560,6 +560,10 @@ void CmiNodeAllBarrier(void) {
  * woken up.
  **********************************************************/
 
+static int CmiIdleLock_hasMessage(CmiState cs) {
+  return cs->idle.hasMessages;
+}
+
 #if CMK_SHARED_VARS_NT_THREADS
 
 static void CmiIdleLock_init(CmiIdleLock *l) {
index 025849652db0337f6c6824b899e451fbf015b365..bba5d15a9d5844fc4ef2c366c5e2e3333817878e 100644 (file)
@@ -1574,13 +1574,13 @@ int DeliverOutgoingMessage(OutgoingMsg ogm)
 /**
  * Set up an OutgoingMsg structure for this message.
  */
-static OutgoingMsg PrepareOutgoing(CmiState cs,int pe,int size,int freemode,char *data) {
+static OutgoingMsg PrepareOutgoing(int pe,int size,int freemode,char *data) {
   OutgoingMsg ogm;
   MallocOutgoingMsg(ogm);
   MACHSTATE2(2,"Preparing outgoing message for pe %d, size %d",pe,size);
   ogm->size = size;
   ogm->data = data;
-  ogm->src = CmiGetPeGlobal(cs->pe,CmiMyPartition());
+  ogm->src = CmiMyPeGlobal();
   ogm->dst = pe;
   ogm->freemode = freemode;
   ogm->refcount = 0;
@@ -1604,11 +1604,11 @@ static OutgoingMsg PrepareOutgoing(CmiState cs,int pe,int size,int freemode,char
 CmiCommHandle LrtsSendFunc(int destNode, int pe, int size, char *data, int freemode)
 {
   int sendonnetwork;
-  CmiState cs = CmiGetState(); OutgoingMsg ogm;
+  OutgoingMsg ogm;
   MACHSTATE(1,"CmiGeneralSend {");
 
   CMI_MSG_SIZE(data)=size;
-  ogm=PrepareOutgoing(cs,pe,size,'F',data);
+  ogm=PrepareOutgoing(pe,size,'F',data);
 
 #if CMK_SMP_NOT_RELAX_LOCK  
   int acqLock = 0;