add in log summary the meaning of the thread_resume_ep, so that loadlog can tell...
authorGengbin Zheng <gzheng@illinois.edu>
Thu, 30 Oct 2008 21:10:18 +0000 (21:10 +0000)
committerGengbin Zheng <gzheng@illinois.edu>
Thu, 30 Oct 2008 21:10:18 +0000 (21:10 +0000)
src/langs/bluegene/bigsim_api.C
src/langs/bluegene/bigsim_logs.C
src/langs/bluegene/bigsim_logs.h
src/langs/bluegene/bigsim_read.C
src/langs/bluegene/blue.C

index 6c2d687c834ac5853589c74dd307ed677793606a..70780696b9fe163e67bc77a44af41aa70514c7d3 100644 (file)
@@ -137,6 +137,7 @@ void BgWriteTimelines(int seqno, BgTimeLineRec *tlinerecs, int nlocalProcs, char
     tlines[i] = &tlinerecs[i];
 
   BgWriteTimelines(seqno, tlines, nlocalProcs, traceroot);
+  delete [] tlines;
 }
 
 
index fadad18c80effebea2d88f010ffc4e2c3184e08d..fd5d09563605762595e2049cb2cf0fb1a85905c1 100644 (file)
@@ -287,6 +287,7 @@ void BgTimeLog::write(FILE *fp)
   int i;
 //  fprintf(fp,"%p ep:%d name:%s (srcnode:%d msgID:%d) startTime:%f endTime:%f recvime:%f effRecvTime:%e seqno:%d startevent:%d\n", this, ep, name, msgId.node(), msgId.msgID(), startTime, endTime, recvTime, effRecvTime, seqno, isStartEvent());
   fprintf(fp,"%p name:%s (srcnode:%d msgID:%d) ep:%d ", this, name, msgId.node(), msgId.msgID(), ep);
+  if (ep == BgLogGetThreadEP() && ep!=-1) fprintf(fp, "(thread resume) ");
   if (bglog_version >= 4) fprintf(fp, "charm_ep:%d ", charm_ep);
   if (isStartEvent()) fprintf(fp, "STARTEVENT");
   if (isQDEvent()) fprintf(fp, "QDEVENT");
index 7ade5863848cb44ed666b4edb4b3dae18e35e758..83a641d75cbd77e93e4daaaacf716da3d226ae88 100644 (file)
@@ -15,7 +15,7 @@
 #include "blue_defs.h"
 #include "cklists.h"
 
-#define BG_CURRENT_VERSION      4
+#define BG_CURRENT_VERSION      5
 
 extern int bglog_version;
 
@@ -315,6 +315,7 @@ void BgAddBackwardDep(BgTimeLog *curlog, BgTimeLog* deplog);
 BgTimeLog *BgStartLogByName(BgTimeLineRec &tlinerec, int ep, char *name, double starttime, BgTimeLog *prevLog);
 void BgEndLastLog(BgTimeLineRec &tlinerec);
 
+int BgLogGetThreadEP();
 int BgLoadTraceSummary(const char *fname, int &totalProcs, int &numX, int &numY, int &numZ, int &numCth, int &numWth, int &numPes);
 int BgReadProc(int procNum, int numWth, int numPes, int totalProcs, int* allNodeOffsets, BgTimeLineRec& tlinerec);
 int* BgLoadOffsets(int totalProcs, int numPes);
index 4d37129e9e73d092ec761d2aa6311c70a2e5fc03..5e0ce043890fd95eff4a5314305fcf8c6710da85 100644 (file)
@@ -18,6 +18,8 @@ int BgReadProc(int procNum, int numWth ,int numPes, int totalProcs, int* allNode
   char fName[20];
   //BgTimeLineRec* tlinerec = new BgTimeLineRec;
   
+  currTline = &tlinerec;
+
   for(int i=0;i<fileNum;i++)
     arrayID += (numNodes/numPes + ((i < numNodes%numPes)?1:0))*numWth;
   
@@ -43,6 +45,7 @@ int BgReadProc(int procNum, int numWth ,int numPes, int totalProcs, int* allNode
   tlinerec.pup(p);
   fclose(f);
 
+  currTline = NULL;
   return fileNum;
 }
 
@@ -75,6 +78,7 @@ int* BgLoadOffsets(int totalProcs, int numPes){
   return  allProcOffsets;
 }
 
+static int thread_ep = -1;
 
 int BgLoadTraceSummary(const char *fname, int &totalProcs, int &numX, int &numY, int &numZ, int &numCth, int &numWth, int &numPes)
 {
@@ -103,7 +107,15 @@ int BgLoadTraceSummary(const char *fname, int &totalProcs, int &numX, int &numY,
   bglog_version = 0;
   if (!feof(f)) p|bglog_version;
 
+  if (!feof(f)) p|thread_ep;
+
   fclose(f);
   return 0;
 }
 
+
+int BgLogGetThreadEP()
+{
+  return thread_ep;
+}
+
index e348e5cdb2c7ead479c24d3b106f15246122a263..e29befcebfd071686545e93d715e40d61a74741f 100644 (file)
@@ -1694,6 +1694,7 @@ static void writeToDisk()
     p|cva(bgMach);
     p|numPes;
     p|bglog_version;
+    p|CpvAccess(CthResumeBigSimThreadIdx);
     
     CmiPrintf("[0] Number is numX:%d numY:%d numZ:%d numCth:%d numWth:%d numPes:%d totalProcs:%d bglog_ver:%d\n",cva(bgMach).x,cva(bgMach).y,cva(bgMach).z,cva(bgMach).numCth,cva(bgMach).numWth,numPes,totalProcs,bglog_version);
     
@@ -1733,7 +1734,7 @@ static void writeToDisk()
 }
 
 
-// application COnverse thread hook
+// application Converse thread hook
 
 CpvExtern(int      , CthResumeBigSimThreadIdx);