added new event MESSAGE_RECV to trace "message recv" and push to local queue.
authorGengbin Zheng <gzheng@illinois.edu>
Thu, 4 Apr 2002 23:14:52 +0000 (23:14 +0000)
committerGengbin Zheng <gzheng@illinois.edu>
Thu, 4 Apr 2002 23:14:52 +0000 (23:14 +0000)
src/ck-perf/trace-common.C
src/ck-perf/trace-common.h
src/ck-perf/trace-projections.C
src/ck-perf/trace-projections.h
src/ck-perf/trace-summary.C
src/ck-perf/trace-summary.h
src/ck-perf/trace.h

index c7dc9e1e95ad61eca2c2ecd348fdba94a464074e..417abc3d99ff05e46f7c28ac908efd10de58e61f 100644 (file)
@@ -118,6 +118,17 @@ extern "C" void traceCharmInit(char **argv)
 #endif
 }
 
+// CMK_OPTIMIZE is already guarded in convcore.c
+extern "C"
+void traceMessageRecv(char *msg, int pe)
+{
+#if ! CMK_TRACE_IN_CHARM
+  if (CkIsCharmMessage(msg))
+    CkpvAccessOther(_traces, CmiRankOf(pe))->messageRecv(msg, pe);
+#endif
+}
+
+// CMK_OPTIMIZE is already guarded in convcore.c
 extern "C"
 void traceResume(void)
 {
index 3246ae0d13f9694bf50d09abf4079c118e15b000..216037bb339cdaebf4e664b31ece4e6f4897b360 100644 (file)
@@ -22,6 +22,7 @@
 #define  END_COMPUTATION    7
 #define  BEGIN_INTERRUPT    8
 #define  END_INTERRUPT      9
+#define  MESSAGE_RECV       10
 #define  USER_EVENT         13
 #define  BEGIN_IDLE         14
 #define  END_IDLE           15
index 94de77000c271a239ee7a572befac91f7bd12281..e34a4150045b958fcd979be36d4ef8456da20dd0 100644 (file)
@@ -178,6 +178,7 @@ void LogEntry::write(FILE* fp)
     case CREATION:
     case BEGIN_PROCESSING:
     case END_PROCESSING:
+    case MESSAGE_RECV:
       fprintf(fp, "%d %d %u %d %d %d\n", mIdx, eIdx, (UInt) (time*1.0e6), event, pe, msglen);
       break;
 
@@ -373,6 +374,26 @@ void TraceProjections::endExecute(void)
   }
 }
 
+void TraceProjections::messageRecv(char *env, int pe)
+{
+#if 0
+  envelope *e = (envelope *)env;
+  int msgType = e->getMsgtype();
+  int ep = e->getEpIdx();
+#if 0
+  if (msgType==NewChareMsg || msgType==NewVChareMsg
+          || msgType==ForChareMsg || msgType==ForVidMsg
+          || msgType==BocInitMsg || msgType==NodeBocInitMsg
+          || msgType==ForBocMsg || msgType==ForNodeBocMsg)
+    ep = e->getEpIdx();
+  else
+    ep = _threadEP;
+#endif
+  _logPool->add(MESSAGE_RECV,msgType,ep,TraceTimer(),
+                             curevent++,e->getSrcPe(), e->getTotalsize());
+#endif
+}
+
 void TraceProjections::beginIdle(void)
 {
   if (isIdle == 0) {
index 60cb69a2e184c22a7b01580da47e9ec67d9d8917..edfe58330891df3e82129bb502006b3f140681bf 100644 (file)
@@ -85,6 +85,7 @@ class TraceProjections : public Trace {
     void beginExecute(envelope *e);
     void beginExecute(int event,int msgType,int ep,int srcPe,int ml);
     void endExecute(void);
+    void messageRecv(char *env, int pe);
     void beginIdle(void);
     void endIdle(void);
     void beginPack(void);
index 2af311e4338efbe05326040725e83c0fb5b24dd6..1e9140cd6b81007f7e6d8a0d7291b2eabdfccdd3 100644 (file)
@@ -268,22 +268,6 @@ void TraceSummary::traceClose(void)
   delete _logPool;
 }
 
-void TraceSummary::traceBegin(void)
-{
-}
-
-void TraceSummary::traceEnd(void)
-{
-}
-
-void TraceSummary::userEvent(int e)
-{
-}
-
-void TraceSummary::creation(envelope *e, int num)
-{
-}
-
 void TraceSummary::beginExecute(envelope *e)
 {
   // no message means thread execution
@@ -335,14 +319,6 @@ void TraceSummary::endExecute(void)
   bin += t - ts;
 }
 
-void TraceSummary::beginIdle(void)
-{
-}
-
-void TraceSummary::endIdle(void)
-{
-}
-
 void TraceSummary::beginPack(void)
 {
     packstart = CmiWallTimer();
@@ -363,14 +339,6 @@ void TraceSummary::endUnpack(void)
     _logPool->setEp(_unpackEP, CmiWallTimer()-unpackstart);
 }
 
-void TraceSummary::beginCharmInit(void) {}
-
-void TraceSummary::endCharmInit(void) {}
-
-void TraceSummary::enqueue(envelope *) {}
-
-void TraceSummary::dequeue(envelope *) {}
-
 void TraceSummary::beginComputation(void)
 {
   if(CmiMyRank()==0) {
index cdd77a34a826de3599e8aec9201b4edfa5ece2c6..5f07d869713884cca97803aec16ddda06df0e9f2 100644 (file)
@@ -179,21 +179,22 @@ class TraceSummary : public Trace {
     int msgNum;
   public:
     TraceSummary(char **argv);
-    void userEvent(int e);
-    void creation(envelope *e, int num=1);
+    void userEvent(int e) {}
+    void creation(envelope *e, int num=1) {}
     void beginExecute(envelope *e);
     void beginExecute(int event,int msgType,int ep,int srcPe, int mlen=0);
     void endExecute(void);
-    void beginIdle(void);
-    void endIdle(void);
+    void messageRecv(char *env, int pe) {}
+    void beginIdle(void) {}
+    void endIdle(void)   {}
     void beginPack(void);
     void endPack(void);
     void beginUnpack(void);
     void endUnpack(void);
-    void beginCharmInit(void);
-    void endCharmInit(void);
-    void enqueue(envelope *e);
-    void dequeue(envelope *e);
+    void beginCharmInit(void) {}
+    void endCharmInit(void) {}
+    void enqueue(envelope *e) {}
+    void dequeue(envelope *e) {}
     void beginComputation(void);
     void endComputation(void);
 
@@ -201,8 +202,8 @@ class TraceSummary : public Trace {
     void traceClearEps();
     void traceWriteSts();
     void traceClose();
-    void traceBegin();
-    void traceEnd();
+    void traceBegin() {}
+    void traceEnd()   {}
 
     /**
        for trace summary event mark
index 2b2dd4a556218532df0ce6294649ec48157208b9..2873065cdfe4d7665d146ec3f91885ed6b8ff682 100644 (file)
@@ -29,6 +29,7 @@ class Trace {
     virtual void beginExecute(int event,int msgType,int ep,int srcPe,int ml) {}
     virtual void endExecute(void) {}
     virtual void beginIdle(void) {}
+    virtual void messageRecv(char *env, int pe) {}
     virtual void endIdle(void) {}
     virtual void beginPack(void) {}
     virtual void endPack(void) {}
@@ -66,6 +67,7 @@ public:
     inline void beginExecute(envelope *env) {ALLDO(beginExecute(env));}
     inline void beginExecute(int event,int msgType,int ep,int srcPe, int mlen) {ALLDO(beginExecute(event, msgType, ep, srcPe, mlen));}
     inline void endExecute(void) {ALLDO(endExecute());}
+    inline void messageRecv(char *env, int pe) {ALLDO(messageRecv(env, pe));}
     inline void beginIdle(void) {ALLDO(beginIdle());}
     inline void endIdle(void) {ALLDO(endIdle());}
     inline void beginPack(void) {ALLDO(beginPack());}
@@ -112,6 +114,7 @@ extern "C" {
 #define _TRACE_BEGIN_EXECUTE_DETAILED(evt,typ,ep,src,mlen) \
        _TRACE_ONLY(CkpvAccess(_traces)->beginExecute(evt,typ,ep,src,mlen))
 #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_IDLE() _TRACE_ONLY(CkpvAccess(_traces)->beginIdle())
 #define _TRACE_END_IDLE() _TRACE_ONLY(CkpvAccess(_traces)->endIdle())
 #define _TRACE_BEGIN_PACK() _TRACE_ONLY(CkpvAccess(_traces)->beginPack())