fix a bug that machine.c uses wrong thread_level variable.
authorGengbin Zheng <gzheng@illinois.edu>
Fri, 14 Oct 2011 01:50:06 +0000 (18:50 -0700)
committerGengbin Zheng <gzheng@illinois.edu>
Fri, 14 Oct 2011 01:50:06 +0000 (18:50 -0700)
src/arch/mpi/machine.c
src/arch/util/machine-common-core.c

index 61d4889dcf28dac6797c32ce4c4f9e0b40851708..b6ede634a6b691b741a53d46d615a0f2e24b83ca 100644 (file)
@@ -160,8 +160,6 @@ static int checksum_flag = 0;
 #endif
 /* =====End of Definitions of Message-Corruption Related Macros=====*/
 
-static int thread_level;
-
 /* =====Beginning of Declarations of Machine Specific Variables===== */
 #include <signal.h>
 void (*signal_int)(int);
@@ -377,7 +375,7 @@ static CmiCommHandle MachineSpecificSendForMPI(int destNode, int size, char *msg
 
     CmiAssert(destNode != CmiMyNode());
 #if CMK_SMP
-    if (thread_level != MPI_THREAD_MULTIPLE) {
+    if (_thread_provided != MPI_THREAD_MULTIPLE) {
       EnqueueMsg(msg, size, destNode, mode);
       return 0;
     }
@@ -849,7 +847,7 @@ static void MachinePostNonLocalForMPI() {
     }
 #endif
 #else
-  if (thread_level == MPI_THREAD_MULTIPLE) {
+  if (_thread_provided == MPI_THREAD_MULTIPLE) {
         CmiReleaseSentMessages();
         SendMsgBuf();
   }
@@ -1024,6 +1022,7 @@ static void MachineInitForMPI(int *argc, char ***argv, int *numNodes, int *myNod
     int n,i;
     int ver, subver;
     int provided;
+    int thread_level;
     int myNID;
     int largc=*argc;
     char** largv=*argv;
@@ -1227,7 +1226,7 @@ static void MachinePostCommonInitForMPI(int everReturn) {
 #if CMK_SMP
     CcdCallOnConditionKeep(CcdPROCESSOR_BEGIN_IDLE,(CcdVoidFn)CmiNotifyBeginIdle,(void *)s);
     CcdCallOnConditionKeep(CcdPROCESSOR_STILL_IDLE,(CcdVoidFn)CmiNotifyStillIdle,(void *)s);
-    if (thread_level == MPI_THREAD_MULTIPLE)
+    if (_thread_provided == MPI_THREAD_MULTIPLE)
       CcdCallOnConditionKeep(CcdPERIODIC,(CcdVoidFn)LrtsPostNonLocal,NULL);
 #else
     CcdCallOnConditionKeep(CcdPROCESSOR_STILL_IDLE,(CcdVoidFn)CmiNotifyIdleForMPI,NULL);
index a4ec286b65bf9b8976334486a90dd42f1d02e2d3..7179d8dbfb1248121730172e146c03a444a54d8e 100644 (file)
@@ -608,7 +608,7 @@ if (_Cmi_mynode==0)
 #if !CMK_SMP 
     printf("Charm++> Running on Non-smp mode\n");
 #else
-    printf("Charm++> Running on Smp mode, %d worker threads per process\n", _Cmi_mynodesize);
+    printf("Charm++> Running on SMP mode, %d worker threads per process\n", _Cmi_mynodesize);
 #endif
 
     _Cmi_numpes = _Cmi_numnodes * _Cmi_mynodesize;