fix for smp
authorGengbin Zheng <gzheng@illinois.edu>
Fri, 16 Mar 2012 06:45:56 +0000 (23:45 -0700)
committerGengbin Zheng <gzheng@illinois.edu>
Fri, 16 Mar 2012 06:45:56 +0000 (23:45 -0700)
src/arch/util/machine-pxshm.c

index e698e6fe57010a525fe69604be51c01ce5d5fbe1..d3d33795c18f7536c94a3f898e16385e0d2e5c88 100644 (file)
@@ -239,7 +239,7 @@ void CmiInitPxshm(char **argv){
         SENDQSTARTSIZE = 32 * pxshmContext->nodesize;
 
         if (_Cmi_mynode == 0)
-            CmiPrintf("Charm++> pxshm enabled: %d cores per node, buffer size: %.1fMB\n", pxshmContext->nodesize, SHMBUFLEN/1024.0/1024.0);
+            printf("Charm++> pxshm enabled: %d cores per node, buffer size: %.1fMB\n", pxshmContext->nodesize, SHMBUFLEN/1024.0/1024.0);
 
 #if CMK_CRAYXE
         srand(getpid());
@@ -561,10 +561,13 @@ void setupSharedBuffers(){
                }
        }
 
-        if (CmiBarrier() == 0) {
-            freeSharedBuffers();
-            pxshm_freed = 1;
-        }
+#if CMK_SMP && CMK_CRAYXE
+        if (PMI_Barrier() != GNI_RC_SUCCESS) return;
+#else
+        if (CmiBarrier() != 0) return;
+#endif
+        freeSharedBuffers();
+        pxshm_freed = 1;
 }
 
 void allocBufNameStrings(char ***bufName){