Changes to maintain the older scheme for isomalloc
authorNikhil Jain <nikhil@illinois.edu>
Wed, 11 Jan 2012 22:48:45 +0000 (16:48 -0600)
committerNikhil Jain <nikhil@illinois.edu>
Wed, 11 Jan 2012 22:48:45 +0000 (16:48 -0600)
examples/armci/putTest/put.c
src/conv-core/global-elfcopy.C
src/conv-core/global-elfgot.C
src/libs/ck-libs/armci/armci_vp.C

index bcb7a6995905b450bdce38cb41350e81e0bf87af..d1dba14ee5b44e714095117a642d1ddcc3f51863 100644 (file)
@@ -23,10 +23,11 @@ int main(int argc, char * argv[]) {
 
   // allocate data (collective operation)
   ARMCI_Malloc(baseAddress, MAX_BUF_SIZE*sizeof(char));
-  local = (char *)ARMCI_Malloc_local(MAX_BUF_SIZE*sizeof(char));
 
   ARMCI_Barrier();
   ARMCI_Migrate();
+
+  local = (char *)ARMCI_Malloc_local(MAX_BUF_SIZE*sizeof(char));
    
   if (thisImage == 0) {
     for(size = 1; size <= MAX_BUF_SIZE; size = size<<1){
@@ -45,6 +46,7 @@ int main(int argc, char * argv[]) {
 
   
   ARMCI_Free(baseAddress[thisImage]);
+  ARMCI_Free_local(local);
   // finalize
   ARMCI_Finalize();
   return 0;
index 09b51754323acbf495e041acf45a4fe9c003be8d..5d745aafea792d6b350c5c586189f724a4aee157 100644 (file)
@@ -252,7 +252,11 @@ void CtgGlobalStruct::pup(PUP::er &p) {
   p | seg_size;
   /* global data segment need to be isomalloc pupped */
   if (CmiMemoryIs(CMI_MEMORY_IS_ISOMALLOC))
+#if CMK_USE_MEMPOOL_ISOMALLOC
     pup_bytes(&p, &data_seg, sizeof(void*));
+#else
+    CmiIsomallocPup(&p, &data_seg);
+#endif
   else {
     if (p.isUnpacking()) allocate(seg_size, NULL);
     p((char *)data_seg, seg_size);
index 27df809ca8971ea6090da0fcf75c1295638694d6..8f50cce5b2ebedcaabaa58d180efc24d8702b3d1 100644 (file)
@@ -386,7 +386,11 @@ public:
     ~CtgGlobalStruct() {
       if (data_seg) {
         if (CmiMemoryIs(CMI_MEMORY_IS_ISOMALLOC))
-        { } //CmiIsomallocFree(data_seg);
+        {
+#if !CMK_USE_MEMPOOL_ISOMALLOC
+          CmiIsomallocFree(data_seg);
+#endif
+        }
         else
           free(data_seg);
         data_seg = NULL;
@@ -400,8 +404,12 @@ void CtgGlobalStruct::pup(PUP::er &p) {
     p | seg_size;
         /* global data segment need to be isomalloc pupped */
     if (CmiMemoryIs(CMI_MEMORY_IS_ISOMALLOC))
+#if CMK_USE_MEMPOOL_ISOMALLOC
       pup_bytes(&p, &data_seg, sizeof(void*));
-    else {
+#else
+      CmiIsomallocPup(&p, &data_seg);
+#endif
+      else {
       if (p.isUnpacking()) allocate(seg_size, NULL);
       p((char *)data_seg, seg_size);
     }
index 5887df6f5002b38b174d98484cc0dddbd14a2386..ac83a16d86519570a441b481f618937891ce2dad 100644 (file)
@@ -81,7 +81,9 @@ ArmciVirtualProcessor::ArmciVirtualProcessor(CkMigrateMessage *m)
 
 ArmciVirtualProcessor::~ArmciVirtualProcessor()
 {
-  //CmiIsomallocBlockListDelete(memBlock);
+#if !CMK_USE_MEMPOOL_ISOMALLOC
+  CmiIsomallocBlockListDelete(memBlock);
+#endif
   if (addressReply) {delete addressReply;}
 }
 
@@ -562,8 +564,11 @@ void ArmciVirtualProcessor::notify_wait(int proc){
 void ArmciVirtualProcessor::pup(PUP::er &p) {
   TCharmClient1D::pup(p);
   //Copying only address, the mempool will be pupped as part of the thread
-  //CmiIsomallocBlockListPup(&p, &memBlock, thread->getThread());
+#if CMK_USE_MEMPOOL_ISOMALLOC
   pup_bytes(&p, &memBlock, sizeof(CmiIsomallocBlockList*));
+#else
+  CmiIsomallocBlockListPup(&p, &memBlock, NULL);
+#endif
   p|thisProxy;
   p|hdlList;
   p|noteList;