send statistics msgs only when it is required 28/128/6
authorYanhua Sun <sun51@illinois.edu>
Wed, 5 Mar 2014 23:47:03 +0000 (17:47 -0600)
committerGerrit Code Review <gerrit2@charm.cs.uiuc.edu>
Mon, 10 Mar 2014 19:09:56 +0000 (14:09 -0500)
Change-Id: I225e0d52612a9f345a11f2c5a6516a221f330b62

src/ck-core/init.C

index 0aec780fd99f7b4f65b4e76b599f0944d8e70885..d6e47fc9fbd8d2c62e8f5cb516fdd54d1cf666f1 100644 (file)
@@ -426,11 +426,7 @@ static inline void _printStats(void) {}
 static inline void _sendStats(void)
 {
   DEBUGF(("[%d] _sendStats\n", CkMyPe()));
 static inline void _sendStats(void)
 {
   DEBUGF(("[%d] _sendStats\n", CkMyPe()));
-#if CMK_WITH_STATS
   envelope *env = UsrToEnv(CkpvAccess(_myStats));
   envelope *env = UsrToEnv(CkpvAccess(_myStats));
-#else
-  envelope *env = _allocEnv(StatMsg);
-#endif
   env->setSrcPe(CkMyPe());
   CmiSetHandler(env, _exitHandlerIdx);
   CmiSyncSendAndFree(0, env->getTotalsize(), (char *)env);
   env->setSrcPe(CkMyPe());
   CmiSetHandler(env, _exitHandlerIdx);
   CmiSyncSendAndFree(0, env->getTotalsize(), (char *)env);
@@ -508,7 +504,9 @@ static void _exitHandler(envelope *env)
       CkNumberHandler(_bocHandlerIdx, (CmiHandler)_discardHandler);
       /*FAULT_EVAC*/
       if(CmiNodeAlive(CkMyPe())){
       CkNumberHandler(_bocHandlerIdx, (CmiHandler)_discardHandler);
       /*FAULT_EVAC*/
       if(CmiNodeAlive(CkMyPe())){
+#if CMK_WITH_STATS
          _sendStats();
          _sendStats();
+#endif
       _mainDone = 1; // This is needed because the destructors for
                      // readonly variables will be called when the program
                     // exits. If the destructor is called while _mainDone
       _mainDone = 1; // This is needed because the destructors for
                      // readonly variables will be called when the program
                     // exits. If the destructor is called while _mainDone
@@ -530,18 +528,20 @@ static void _exitHandler(envelope *env)
       else
         CmiFree(env);
       //everyone exits here - there may be issues with leftover messages in the queue
       else
         CmiFree(env);
       //everyone exits here - there may be issues with leftover messages in the queue
-      if(CkMyPe()){
+#if CMK_WITH_STATS
+      if(CkMyPe())
+#endif
+      {
         DEBUGF(("[%d] Calling converse exit \n",CkMyPe()));
         ConverseExit();
         if(CharmLibInterOperate)
           CpvAccess(interopExitFlag) = 1;
       }
       break;
         DEBUGF(("[%d] Calling converse exit \n",CkMyPe()));
         ConverseExit();
         if(CharmLibInterOperate)
           CpvAccess(interopExitFlag) = 1;
       }
       break;
+#if CMK_WITH_STATS
     case StatMsg:
       CkAssert(CkMyPe()==0);
     case StatMsg:
       CkAssert(CkMyPe()==0);
-#if CMK_WITH_STATS
       _allStats[env->getSrcPe()] = (Stats*) EnvToUsr(env);
       _allStats[env->getSrcPe()] = (Stats*) EnvToUsr(env);
-#endif
       _numStatsRecd++;
       DEBUGF(("StatMsg on %d with %d\n", CkMyPe(), _numStatsRecd));
                        /*FAULT_EVAC*/
       _numStatsRecd++;
       DEBUGF(("StatMsg on %d with %d\n", CkMyPe(), _numStatsRecd));
                        /*FAULT_EVAC*/
@@ -553,6 +553,7 @@ static void _exitHandler(envelope *env)
           CpvAccess(interopExitFlag) = 1;
       }
       break;
           CpvAccess(interopExitFlag) = 1;
       }
       break;
+#endif
     default:
       CmiAbort("Internal Error(_exitHandler): Unknown-msg-type. Contact Developers.\n");
   }
     default:
       CmiAbort("Internal Error(_exitHandler): Unknown-msg-type. Contact Developers.\n");
   }