Trace module api changes for pics. 94/894/7
authorYanhua Sun <sun51@illinois.edu>
Mon, 2 Nov 2015 17:48:35 +0000 (11:48 -0600)
committerMichael Robson <mprobson@illinois.edu>
Thu, 21 Jan 2016 19:53:19 +0000 (13:53 -0600)
Change-Id: I5feaaded3e6f677cf59e850032430b511852180b

17 files changed:
src/ck-core/ck.C
src/ck-core/cklocation.C
src/ck-cp/controlPoints.C
src/ck-perf/trace-bluegene.C
src/ck-perf/trace-bluegene.h
src/ck-perf/trace-projections.C
src/ck-perf/trace-projections.h
src/ck-perf/trace-simple.C
src/ck-perf/trace-simple.h
src/ck-perf/trace-summary.C
src/ck-perf/trace-summary.h
src/ck-perf/trace-utilization.C
src/ck-perf/trace-utilization.h
src/ck-perf/trace.h
src/libs/ck-libs/ckloop/CkLoop.C
src/xlat-i/sdag/CSdagConstruct.C
src/xlat-i/xi-Entry.C

index 1d1d13d3f82c8ea05d039a18bf07497377ece7b6..737a3911f1fe00470deb908b25f357e0f308a195 100644 (file)
@@ -642,7 +642,7 @@ static inline void _invokeEntry(int epIdx,envelope *env,void *obj)
 
 #if CMK_TRACE_ENABLED 
   if (_entryTable[epIdx]->traceEnabled) {
-    _TRACE_BEGIN_EXECUTE(env);
+    _TRACE_BEGIN_EXECUTE(env, obj);
     if(_entryTable[epIdx]->appWork)
         _TRACE_BEGIN_APPWORK();
     _invokeEntryNoTrace(epIdx,env,obj);
index ad99ac9378a3eb2748c5ee3fc6b6e4bf353c48ae..378880bc1bff41836bd6feb9609aa8af78130f9e 100644 (file)
@@ -2035,7 +2035,7 @@ bool CkLocRec_local::invokeEntry(CkMigratable *obj,void *msg,
        //      CkPrintf("ckLocation.C beginExecuteDetailed %d %d \n",env->getEvent(),env->getsetArraySrcPe());
                if (_entryTable[epIdx]->traceEnabled)
         {
-            _TRACE_BEGIN_EXECUTE_DETAILED(env->getEvent(), ForChareMsg,epIdx,env->getSrcPe(), env->getTotalsize(), idx.getProjectionID(env->getArrayMgrIdx()));
+            _TRACE_BEGIN_EXECUTE_DETAILED(env->getEvent(), ForChareMsg,epIdx,env->getSrcPe(), env->getTotalsize(), idx.getProjectionID(env->getArrayMgrIdx()), obj);
             if(_entryTable[epIdx]->appWork)
                 _TRACE_BEGIN_APPWORK();
         }
index ad16d087065111602143987e00c3c5f4e5d9eb6d..298b81c26cbb3b05071ba479d574b9c5ba899933 100644 (file)
@@ -923,7 +923,7 @@ void controlPointManager::setFrameworkAdvancePhase(bool _frameworkShouldAdvanceP
 
 
   void controlPointManager::doExitNow(){
-          _TRACE_BEGIN_EXECUTE_DETAILED(-1, -1, _threadEP,CkMyPe(), 0, NULL);
+          _TRACE_BEGIN_EXECUTE_DETAILED(-1, -1, _threadEP,CkMyPe(), 0, NULL, this);
          writeOutputToDisk();
          //      CkPrintf("[%d] Control point manager calling CkExit()\n", CkMyPe());
          CkExit();
@@ -1239,7 +1239,6 @@ extern "C" void controlPointShutdown(){
 
 /// A function called at startup on each node to register controlPointShutdown() to be called at CkExit()
 void controlPointInitNode(){
-//  CkPrintf("controlPointInitNode()\n");
   registerExitFn(controlPointShutdown);
 }
 
index fc71318f4b44f8934bbd9c53a05e431f9bc38dcd..b71823db49607fb91e52de021650e6abf3d3af94 100644 (file)
@@ -150,7 +150,7 @@ void TraceBluegene::bgEndExec(int commit)
     BgEndLastLog(tTIMELINEREC);
 }
 
-void TraceBluegene::beginExecute(envelope *e)
+void TraceBluegene::beginExecute(envelope *e, void *obj)
 {
   if (e==NULL || !genTimeLog) return;
   BgTimeLog* log = tTIMELINE[tTIMELINE.length()-1];
@@ -158,7 +158,7 @@ void TraceBluegene::beginExecute(envelope *e)
   log->setCharmEP(e->getEpIdx());
 }
 
-void TraceBluegene::beginExecute(int event,int msgType,int ep,int srcPe, int mlen,CmiObjId *idx)
+void TraceBluegene::beginExecute(int event,int msgType,int ep,int srcPe, int mlen,CmiObjId *idx, void *obj)
 {
   //printf("SET OBJ ID\n");
   BgTimeLog* log;
index f1464236eb33769e322e542bbeb94e017536b7c7..c3c2b76bb19d6f0afbc5676c513e209700f4f4e6 100644 (file)
@@ -28,10 +28,10 @@ class TraceBluegene : public Trace {
     void bgAmpiLog(unsigned short op, unsigned int size);
     void bgSetInfo(char *msg, const char *str, void **logs, int count);
     void bgEndExec(int);
-    virtual void beginExecute(envelope *);
+    virtual void beginExecute(envelope *, void *);
     virtual void beginExecute(char *) {}
     virtual void beginExecute(CmiObjId *tid) {}
-    virtual void beginExecute(int event,int msgType,int ep,int srcPe, int mlen,CmiObjId *idx);
+    virtual void beginExecute(int event,int msgType,int ep,int srcPe, int mlen,CmiObjId *idx, void *obj);
     void addBackwardDep(void *log);
     void userBracketEvent(int eventID, double bt, double et) {}        // from trace.h
     void userBracketEvent(const char* name, double bt, double et, void** parentLogPtr);
index 80cc0041b40af8cda9795b04155637585f76bb8e..36ca61ab669ee91c10255bc21e5d92a125f674be 100644 (file)
@@ -145,7 +145,7 @@ void traceThreadListener_resume(struct CthThreadListener *l)
   /* here, we activate the appropriate trace codes for the appropriate
      registered modules */
   _TRACE_BEGIN_EXECUTE_DETAILED(a->event,a->msgType,a->ep,a->srcPe,a->ml,
-                               CthGetThreadID(a->base.thread));
+                               CthGetThreadID(a->base.thread), NULL);
   a->event=-1;
   a->srcPe=CkMyPe(); /* potential lie to migrated threads */
   a->ml=0;
@@ -1467,8 +1467,17 @@ void TraceProjections::beginExecute(char *msg){
 #endif
 }
 
+void TraceProjections::beginExecute(envelope *e, void *obj){
+#if CMK_SMP_TRACE_COMMTHREAD
+    //This function is called from comm thread in SMP mode
+    int ep = e->getEpIdx();
+    if(_entryTable[ep]->traceEnabled)
+        beginExecute(e);
+#endif
+}
+
 void TraceProjections::beginExecute(int event, int msgType, int ep, int srcPe,
-                                   int mlen, CmiObjId *idx)
+                                   int mlen, CmiObjId *idx, void *obj )
 {
   if (traceNestedEvents) {
     if (! nestedEvents.isEmpty()) {
index c07fee2fe66520288c58d8feea82c39aaadeedc6..dd8d4e4cea6163abc55b6aeaef5427f7cd5f1593 100644 (file)
@@ -495,9 +495,10 @@ public:
     void creationMulticast(envelope *e, int epIdx, int num=1, int *pelist=NULL);
     void creationDone(int num=1);
     void beginExecute(envelope *e);
+    void beginExecute(envelope *e, void *obj=NULL);
     void beginExecute(char *msg);
     void beginExecute(CmiObjId  *tid);
-    void beginExecute(int event,int msgType,int ep,int srcPe,int ml,CmiObjId *idx=NULL);
+    void beginExecute(int event,int msgType,int ep,int srcPe,int ml,CmiObjId *idx=NULL, void *obj=NULL);
     void changeLastEntryTimestamp(double ts);
     void beginExecuteLocal(int event,int msgType,int ep,int srcPe,int ml,CmiObjId *idx=NULL);
     void endExecute(void);
index 9824a9fbfe5ddc4de13ebb4deda0abbf320aa804..4b6f236164b8cd7ffda6ce1969b0fa0ba45decad 100644 (file)
@@ -66,7 +66,7 @@ void TraceSimple::beginExecute(CmiObjId *tid)
   CkPrintf("[%d] Entry Method invoked using object id\n", CkMyPe());
 }
 
-void TraceSimple::beginExecute(envelope *e)
+void TraceSimple::beginExecute(envelope *e, void *obj)
 {
   // no message means thread execution
   if (e == NULL) {
@@ -83,7 +83,7 @@ void TraceSimple::beginExecute(envelope *e)
 }
 
 void TraceSimple::beginExecute(int event,int msgType,int ep,int srcPe, 
-                              int mlen, CmiObjId *idx)
+                              int mlen, CmiObjId *idx, void *obj)
 {
   CkPrintf("[%d] Entry Method %d invoked by parameters\n", CkMyPe(),
           ep);
index 9188281ce73ea2b4e2c4948704cda6c0e7f92296..5138996057fc4a8e61a6030a2d19a1894f4f203c 100644 (file)
@@ -39,7 +39,7 @@ class TraceSimple : public Trace {
   // begin/end execution of a Charm++ entry point
   // NOTE: begin/endPack and begin/endUnpack can be called in between
   //       a beginExecute and its corresponding endExecute.
-  void beginExecute(envelope *);
+  void beginExecute(envelope *, void*);
   void beginExecute(char *) {}
   void beginExecute(CmiObjId *tid);
   void beginExecute(
@@ -48,7 +48,8 @@ class TraceSimple : public Trace {
                    int ep,      // Charm++ entry point id
                    int srcPe,   // Which PE originated the call
                    int ml,      // message size
-                   CmiObjId* idx);    // index
+                   CmiObjId* idx,    // index
+            void* obj);
   void endExecute(void);
   
   // begin/end idle time for this pe
index f0deb71c65304f5e81c5dc59cc9ac539efcc5a04..a5a60ce7a0822092fa73d01e6e94efe075022572 100644 (file)
@@ -679,7 +679,7 @@ void TraceSummary::beginExecute(CmiObjId *tid)
   beginExecute(-1,-1,_threadEP,-1);
 }
 
-void TraceSummary::beginExecute(envelope *e)
+void TraceSummary::beginExecute(envelope *e, void *obj)
 {
   // no message means thread execution
   if (e==NULL) {
@@ -703,7 +703,7 @@ void TraceSummary::beginExecute(char *msg)
 #endif
 }
 
-void TraceSummary::beginExecute(int event,int msgType,int ep,int srcPe, int mlen, CmiObjId *idx)
+void TraceSummary::beginExecute(int event,int msgType,int ep,int srcPe, int mlen, CmiObjId *idx, void *obj)
 {
   if (execEp == TRACEON_EP) {
     endExecute();
@@ -1306,7 +1306,7 @@ extern "C" void CombineSummary()
       sumProxy.traceSummaryParallelShutdown(-1);
   }
   else {
-    _TRACE_BEGIN_EXECUTE_DETAILED(-1, -1, _threadEP,CkMyPe(), 0, NULL);
+    _TRACE_BEGIN_EXECUTE_DETAILED(-1, -1, _threadEP,CkMyPe(), 0, NULL, NULL);
     CkExit();
   }
 #else
index 85533d330e58bdf9965376e35e2213ec9835a177..63c067c38a66702d680def0a8286746285a42f47 100644 (file)
@@ -263,10 +263,10 @@ class TraceSummary : public Trace {
     TraceSummary(char **argv);
     void creation(envelope *e, int epIdx, int num=1) {}
 
-    void beginExecute(envelope *e);
+    void beginExecute(envelope *e, void *obj);
     void beginExecute(char *msg);
     void beginExecute(CmiObjId  *tid);
-    void beginExecute(int event,int msgType,int ep,int srcPe, int mlen=0, CmiObjId *idx=NULL);
+    void beginExecute(int event,int msgType,int ep,int srcPe, int mlen=0, CmiObjId *idx=NULL, void *obj=NULL);
     void endExecute(void);
     void endExecute(char *msg);
     void beginIdle(double currT);
index 3b7b5b22a98d871fe88995f58259b3054d7b5e06..771becaacbbd0e41aaff4ea0eccb8ad5f7df5980 100644 (file)
@@ -50,7 +50,7 @@ void TraceUtilization::beginExecute(CmiObjId *tid)
   beginExecute(-1,-1,_threadEP,-1);
 }
 
-void TraceUtilization::beginExecute(envelope *e)
+void TraceUtilization::beginExecute(envelope *e, void *obj)
 {
   // no message means thread execution
   if (e==NULL) {
@@ -61,7 +61,7 @@ void TraceUtilization::beginExecute(envelope *e)
   }  
 }
 
-void TraceUtilization::beginExecute(int event,int msgType,int ep,int srcPe, int mlen, CmiObjId *idx)
+void TraceUtilization::beginExecute(int event,int msgType,int ep,int srcPe, int mlen, CmiObjId *idx, void *obj)
 {
   if (execEp != INVALIDEP) {
     TRACE_WARN("Warning: TraceUtilization two consecutive BEGIN_PROCESSING!\n");
index 9240bd2274604edabcde594b89d6d4c9d45b46a8..c45df27a78bc2d2701bffb2d5cb90813232032ee 100644 (file)
@@ -240,9 +240,9 @@ class TraceUtilization : public Trace {
 
   void creation(envelope *e, int epIdx, int num=1) {}
 
-  void beginExecute(envelope *e);
+  void beginExecute(envelope *e, void *obj);
   void beginExecute(CmiObjId  *tid);
-  void beginExecute(int event,int msgType,int ep,int srcPe, int mlen=0, CmiObjId *idx=NULL);
+  void beginExecute(int event,int msgType,int ep,int srcPe, int mlen=0, CmiObjId *idx=NULL, void *obj=NULL);
   void endExecute(void);
   void beginIdle(double currT) {}
   void endIdle(double currT) {}
index eb5bc06799b60c8741d0e3ca0dec07940e9ee37e..88ca37bab090906bb5cb0e81fa68c445075cc69a 100644 (file)
@@ -114,7 +114,7 @@ protected:
     // begin/end execution of a Charm++ entry point
     // NOTE: begin/endPack and begin/endUnpack can be called in between
     //       a beginExecute and its corresponding endExecute.
-    virtual void beginExecute(envelope *) {}
+    virtual void beginExecute(envelope *, void *) {}
     virtual void beginExecute(char *) {}
     virtual void beginExecute(CmiObjId *tid) {}
     virtual void beginExecute(
@@ -123,7 +123,8 @@ protected:
       int ep,      // Charm++ entry point (will correspond to sts file) 
       int srcPe,   // Which PE originated the call
       int ml,      // message size
-      CmiObjId* idx)    // index
+      CmiObjId* idx,    // index
+      void* obj)
     { }
     virtual void changeLastEntryTimestamp(double ts) {}
     virtual void endExecute(void) {}
@@ -234,10 +235,10 @@ public:
     inline void creationDone(int num=1) { ALLDO(creationDone(num)); }
     inline void beginSDAGBlock(int event,int msgType,int ep,int srcPe, int mlen,CmiObjId *idx=NULL) {ALLDO(beginSDAGBlock(event, msgType, ep, srcPe, mlen,idx));}
     inline void endSDAGBlock(void) {ALLREVERSEDO(endExecute());}
-    inline void beginExecute(envelope *env) {ALLDO(beginExecute(env));}
+    inline void beginExecute(envelope *env, void *obj) {ALLDO(beginExecute(env, obj));}
     inline void beginExecute(char *msg) {ALLDO(beginExecute(msg));}
     inline void beginExecute(CmiObjId *tid) {ALLDO(beginExecute(tid));}
-    inline void beginExecute(int event,int msgType,int ep,int srcPe, int mlen,CmiObjId *idx=NULL) {ALLDO(beginExecute(event, msgType, ep, srcPe, mlen,idx));}
+    inline void beginExecute(int event,int msgType,int ep,int srcPe, int mlen,CmiObjId *idx=NULL, void *obj=NULL) {ALLDO(beginExecute(event, msgType, ep, srcPe, mlen,idx, obj));}
     inline void endExecute(void) {ALLREVERSEDO(endExecute());}
     inline void endExecute(char *msg) {ALLREVERSEDO(endExecute(msg));}
     inline void changeLastEntryTimestamp(double ts) {ALLDO(changeLastEntryTimestamp(ts));}
@@ -329,8 +330,8 @@ extern "C" {
 #define _TRACE_CREATION_DONE(num) _TRACE_ONLY(CkpvAccess(_traces)->creationDone(num))
 #define _TRACE_BEGIN_SDAG(env) _TRACE_ONLY(CkpvAccess(_traces)->beginSDAGBlock(env))
 #define _TRACE_END_SDAG(env) _TRACE_ONLY(CkpvAccess(_traces)->endSDAGBlock(env))
-#define _TRACE_BEGIN_EXECUTE(env) _TRACE_ONLY(CkpvAccess(_traces)->beginExecute(env))
-#define _TRACE_BEGIN_EXECUTE_DETAILED(evt,typ,ep,src,mlen,idx) _TRACE_ONLY(CkpvAccess(_traces)->beginExecute(evt,typ,ep,src,mlen,idx))
+#define _TRACE_BEGIN_EXECUTE(env, obj) _TRACE_ONLY(CkpvAccess(_traces)->beginExecute(env, obj))
+#define _TRACE_BEGIN_EXECUTE_DETAILED(evt,typ,ep,src,mlen,idx, obj) _TRACE_ONLY(CkpvAccess(_traces)->beginExecute(evt,typ,ep,src,mlen,idx, obj))
 #define _TRACE_END_EXECUTE() _TRACE_ONLY(CkpvAccess(_traces)->endExecute())
 #define _TRACE_MESSAGE_RECV(env, pe) _TRACE_ONLY(CkpvAccess(_traces)->messageRecv(env, pe))
 #define _TRACE_BEGIN_PACK() _TRACE_ONLY(CkpvAccess(_traces)->beginPack())
index 76e42046b3c98c5dac1455aa5ff94b42d44756cd..a9efec7e01aa948ebdb2a6ee6d37f1fecd855d54 100644 (file)
@@ -518,7 +518,8 @@ void SingleHelperStealWork(ConverseNotifyMsg *msg) {
     }
     CurLoopInfo *loop = (CurLoopInfo *)msg->ptr;
 
-    _TRACE_BEGIN_EXECUTE_DETAILED(0, 4, _ckloopEP, CkNodeFirst(CkMyNode())+srcRank, sizeof(ConverseNotifyMsg), NULL);
+    _TRACE_BEGIN_EXECUTE_DETAILED(0, 4, _ckloopEP,
+      CkNodeFirst(CkMyNode())+srcRank, sizeof(ConverseNotifyMsg), NULL, NULL);
     loop->stealWork();
     _TRACE_END_EXECUTE();
 }
index a9f1e2ca27d32b83740c0fe7a3d1c0c2ea1bfb30..0fa971d5c899857c891e5d39cee2cd36ec19e026 100644 (file)
@@ -533,13 +533,13 @@ namespace xi {
   void SdagConstruct::generateTraceBeginCall(XStr& op, int indent) {
     if (traceName) {
       indentBy(op, indent);
-      op << "_TRACE_BEGIN_EXECUTE_DETAILED(-1, -1, (" << "_sdag_idx_" << traceName << "()), CkMyPe(), 0, NULL); \n";
+      op << "_TRACE_BEGIN_EXECUTE_DETAILED(-1, -1, (" << "_sdag_idx_" << traceName << "()), CkMyPe(), 0, NULL, NULL); \n";
     }
   }
 
   void SdagConstruct::generateDummyBeginExecute(XStr& op, int indent) {
     indentBy(op, indent);
-    op << "_TRACE_BEGIN_EXECUTE_DETAILED(-1, -1, _sdagEP, CkMyPe(), 0, NULL); \n";
+    op << "_TRACE_BEGIN_EXECUTE_DETAILED(-1, -1, _sdagEP, CkMyPe(), 0, NULL, NULL); \n";
   }
 
   void SdagConstruct::generateTraceEndCall(XStr& op, int indent) {
index 0b8b9d09f47a5a123ad8f931f1ac40c2c47b1858..dc3482d1a94e9c6ceaf47213980256dd8b3b4f3e 100644 (file)
@@ -441,7 +441,7 @@ void Entry::genArrayDefs(XStr& str)
       str << "#endif\n";
       if (!isNoTrace())
          str << "  _TRACE_BEGIN_EXECUTE_DETAILED(0,ForArrayEltMsg,(" << epIdx()
-             << "),CkMyPe(), 0, ((CkArrayIndex&)ckGetIndex()).getProjectionID(((CkGroupID)ckGetArrayID()).idx));\n";
+             << "),CkMyPe(), 0, ((CkArrayIndex&)ckGetIndex()).getProjectionID(((CkGroupID)ckGetArrayID()).idx), this);\n";
       if(isAppWork())
       str << " _TRACE_BEGIN_APPWORK();\n";    
       str << "#if CMK_LBDB_ON\n  objHandle = obj->timingBeforeCall(&objstopped);\n#endif\n";
@@ -665,7 +665,7 @@ void Entry::genGroupDefs(XStr& str)
       XStr unmarshallStr; param->unmarshall(unmarshallStr);
       str << "  "<<container->baseName()<<" *obj = ckLocalBranch();\n";
       str << "  CkAssert(obj);\n";
-      if (!isNoTrace()) str << "  _TRACE_BEGIN_EXECUTE_DETAILED(0,ForBocMsg,("<<epIdx()<<"),CkMyPe(),0,NULL);\n";
+      if (!isNoTrace()) str << "  _TRACE_BEGIN_EXECUTE_DETAILED(0,ForBocMsg,("<<epIdx()<<"),CkMyPe(),0,NULL, NULL);\n";
       if(isAppWork())
       str << " _TRACE_BEGIN_APPWORK();\n";    
       str << "#if CMK_LBDB_ON\n"