Fixed a bug in the message logging protocol.
authorEsteban Meneses <emenese2@illinois.edu>
Fri, 12 Jun 2009 19:04:03 +0000 (19:04 +0000)
committerEsteban Meneses <emenese2@illinois.edu>
Fri, 12 Jun 2009 19:04:03 +0000 (19:04 +0000)
src/ck-core/ckarray.C
src/ck-ldb/CentralLB.C

index 9029dd5ab5c6a5c3f01aea7e1597e3da8cccb530..93b471d86c1db5bf7896c1dbbfe86b916300fc71 100644 (file)
@@ -860,12 +860,18 @@ void CkArrayBroadcaster::incoming(CkArrayMessage *msg)
 /// Deliver a copy of the given broadcast to the given local element
 CmiBool CkArrayBroadcaster::deliver(CkArrayMessage *bcast,ArrayElement *el)
 {
+       CkPrintf("[%d] OK 1\n",CkMyPe());
   int &elBcastNo=getData(el);
+       CkPrintf("[%d] OK 2\n",CkMyPe());
   // if this array element already received this message, skip it
   if (elBcastNo >= bcastNo) return CmiFalse;
   elBcastNo++;
   DEBB((AA"Delivering broadcast %d to element %s\n"AB,elBcastNo,idx2str(el)));
+       CkPrintf("[%d] OK 3\n",CkMyPe());
+       if(bcast == NULL) 
+       CkPrintf("[%d] OK 33\n",CkMyPe());
   int epIdx=bcast->array_ep_bcast();
+       CkPrintf("[%d] OK 4\n",CkMyPe());
 
 #ifdef _FAULT_MLOG_     
         DEBUG(printf("[%d] elBcastNo %d bcastNo %d \n",CmiMyPe(),bcastNo));
@@ -894,6 +900,8 @@ CmiBool CkArrayBroadcaster::bringUpToDate(ArrayElement *el)
     for (i=nDeliver-1;i>=0;i--)
     {
       CkArrayMessage *msg=oldBcasts.deq();
+               if(msg == NULL)
+               continue;
       oldBcasts.enq(msg);
       if (!deliver(msg,el))
        return CmiFalse; //Element migrated away
index 578b636c74ad31e0ad1524d7153a26a4ed5a54c3..f4b3209e75c2ec4cf95587040f3fe8a90ada593c 100644 (file)
@@ -16,8 +16,8 @@
 #include "LBDBManager.h"
 #include "LBSimulation.h"
 
-#define  DEBUGF(x)      //  CmiPrintf x;
-#define  DEBUG(x)       // x;
+#define  DEBUGF(x)       CmiPrintf x;
+#define  DEBUG(x)        x;
 
 #if CMK_MEM_CHECKPOINT
    /* can not handle reduction in inmem FT */
@@ -171,6 +171,7 @@ void CentralLB::AtSync()
   DEBUGF(("[%d] CentralLB AtSync step %d!!!!!\n",CkMyPe(),step()));
 
 #ifdef _FAULT_MLOG_
+       CpvAccess(_currentObj)=this;
 #endif
 
   // if num of processor is only 1, nothing should happen
@@ -188,12 +189,15 @@ void CentralLB::AtSync()
 
 void CentralLB::ProcessAtSync()
 {
+       CkPrintf("[%d] .................... TRACE\n",CkMyPe());
+
 #if CMK_LBDB_ON
   CmiAssert(CmiNodeAlive(CkMyPe()));
   if (CkMyPe() == cur_ld_balancer) {
     start_lb_time = CkWallTimer();
   }
 
+
 #ifdef _FAULT_MLOG_
        initMlogLBStep(thisgroup);
 #endif
@@ -248,6 +252,7 @@ void CentralLB::BuildStatsMsg()
   int npes = CkNumPes();
   CLBStatsMsg* msg = new CLBStatsMsg(osz, csz);
   msg->from_pe = CkMyPe();
+       CkPrintf("[%d] the step is %d\n",CkMyPe(),step());
 #ifdef _FAULT_MLOG_
        msg->step = step();
 #endif
@@ -482,6 +487,7 @@ void CentralLB::ReceiveStats(CkMarshalledCLBStatsMessage &msg)
   }    // end of for
 
   const int clients = CkNumValidPes();
+  DEBUGF(("THIS POINT count = %d, clients = %d\n",stats_msg_count,clients));
  
   if (stats_msg_count == clients) {
        DEBUGF(("[%d] All stats messages received \n",CmiMyPe()));
@@ -909,6 +915,7 @@ void CentralLB::ResumeClients(int balancing)
 #if CMK_LBDB_ON
 #ifdef _FAULT_MLOG_
     resumeCount++;
+       CkPrintf("[%d] \n\n\n INCREMENTING THIS to %d  \n\n\n",CkMyPe(),resumeCount);
     globalResumeCount = resumeCount;
 #endif
   DEBUGF(("[%d] Resuming clients. balancing:%d.\n",CkMyPe(),balancing));
@@ -923,6 +930,7 @@ void CentralLB::ResumeClients(int balancing)
 #endif
 
   theLbdb->ResumeClients();
+CkPrintf("[%d] RIGHT HERE\n",CkMyPe());
   if (balancing)  {
     CheckMigrationComplete();
     if (future_migrates_expected == 0 || 
@@ -1227,6 +1235,11 @@ void CentralLB::pup(PUP::er &p) {
   if (p.isUnpacking())  {
     initLB(CkLBOptions(seqno)); 
   }
+#ifdef _FAULT_MLOG_
+       p | lbDecisionCount;
+    p | resumeCount;
+#endif
+       
 }
 
 int CentralLB::useMem() {