Going back to lab machine
authorNikhil Jain <nikhil@illinois.edu>
Sat, 8 Oct 2011 06:19:07 +0000 (01:19 -0500)
committerNikhil Jain <nikhil@illinois.edu>
Sat, 8 Oct 2011 06:19:07 +0000 (01:19 -0500)
src/arch/util/mempool.h
src/conv-core/converse.h
src/conv-core/isomalloc.c

index 614083e152dedbfe3c0254bfadefc4c20a6d0826..94c689a6f91c62cb78f3ee0e87ac7c3c6d800c07 100644 (file)
@@ -10,7 +10,7 @@
 #else
   // in uGNI, it is memory handler, other versions, this is an integer
   // a unique integer to represent the memory block
-typedef int    gni_mem_handle_t;
+typedef CmiInt8   gni_mem_handle_t;
 #endif
 
 // multiple mempool for different size allocation
index 2fc734f1ccc8657569a180fa4c8d66cb9f0d480a..a9d8e9682e8644629e1f2473dae4d86fa774e93c 100644 (file)
@@ -55,7 +55,7 @@
 /* Tag variable y as being from unit x: */
 #define CMK_TAG(x,y) x##y##_
 
-#define USE_MEMPOOL_ISOMALLOC 1
+#define USE_MEMPOOL_ISOMALLOC 0
 
 #include "pup_c.h"
 
index e60c5cfb02311723e7cc4f5b01d97fd5bf01fbb8..11ffbc0b4da11bef227ff58be890e0b1040cc594 100644 (file)
@@ -1674,12 +1674,14 @@ void * isomallocfn (size_t *size, gni_mem_handle_t *mem_hndl)
   if (!newaddr) map_failed(s,n);
   *mem_hndl = s;
   *size = n*slotsize;
+  printf("Alloc slot long %lld from %p to %p\n",s,newaddr,newaddr+*size);
   return newaddr;
 }
 
 //free function to be used by mempool
 void isofreefn(void *ptr, gni_mem_handle_t mem_hndl)
 {
+  printf("Free slots at %p for slot %lld\n", ptr, mem_hndl); 
   call_munmap(ptr, ((mempool_block *)ptr)->size);
 }
 #endif
@@ -2296,6 +2298,7 @@ void *CmiIsomalloc(int size)
 {
   CmiInt8 s,n,i;
   CmiIsomallocBlock *blk;
+  printf("[%d] isomalloc request for %d\n",CmiMyPe(),size);
   if (isomallocStart==NULL) return disabled_map(size);
   if(CtvAccess(threadpool) == NULL) {
     CtvAccess(threadpool) = mempool_init(size+sizeof(CmiIsomallocBlock), 
@@ -2304,6 +2307,7 @@ void *CmiIsomalloc(int size)
   blk = (CmiIsomallocBlock*)mempool_malloc(CtvAccess(threadpool),size+sizeof(CmiIsomallocBlock),1);
   blk->slot=-1;
   blk->length=size;
+  printf("[%d] isomalloc request done for %d\n",CmiMyPe(),size);
   return block2pointer(blk);
 }
 #else
@@ -2525,7 +2529,7 @@ void CmiIsomallocBlockListPup(pup_er p,CmiIsomallocBlockList **lp)
 {
   mempool_block *current, *mempools_head;
   void *newblock;
-  int slot;
+  CmiInt8 slot;
   CmiInt8 size;
 
   if(!pup_isUnpacking(p)) {
@@ -2533,22 +2537,25 @@ void CmiIsomallocBlockListPup(pup_er p,CmiIsomallocBlockList **lp)
     current = &(CtvAccess(threadpool)->mempools_head);
     while(current != NULL) {
       pup_int8(p,&current->size);
-      pup_int(p,&current->mem_hndl);
+      pup_int8(p,&current->mem_hndl);
       pup_bytes(p,current->mempool_ptr,current->size);
+      printf("[%d] Packing slot %lld size %lld at %p to %p\n",CmiMyPe(),current->mem_hndl,current->size,current->mempool_ptr,current->mempool_ptr+current->size);
       current = current->next;
     }
-    mempool_destroy(CtvAccess(threadpool));
   }
 
   if(pup_isUnpacking(p)) {
     pup_int8(p,&size);
-    pup_int(p,&slot);
+    pup_int8(p,&slot);
     newblock = map_slots(slot,size/slotsize);
     pup_bytes(p,newblock,size);
+    printf("[%d] slot %lld size %lld at %p to %p\n",CmiMyPe(),slot,size,newblock,newblock+size);
   }
   pup_bytes(p,lp,sizeof(int*));
-  if (pup_isDeleting(p))
+  if(pup_isDeleting(p)) {
+    mempool_destroy(CtvAccess(threadpool));
     *lp=NULL;
+  }
 }
 #else
 void CmiIsomallocBlockListPup(pup_er p,CmiIsomallocBlockList **lp)