Some clean up
authorNikhil Jain <nikhil@illinois.edu>
Mon, 28 Nov 2011 17:52:29 +0000 (11:52 -0600)
committerNikhil Jain <nikhil@illinois.edu>
Mon, 28 Nov 2011 17:52:29 +0000 (11:52 -0600)
src/arch/util/mempool.c
src/arch/util/mempool.h
src/conv-core/isomalloc.c

index 7eb70cad7aa103402161e8513b2866b8847683fd..94e44b8b1dbee115e8982e1c6bad34ff3f272aa9 100644 (file)
@@ -5,7 +5,7 @@ Memory pool implementation , It is only good for Charm++ usage. The first 64 byt
 
 Written by Yanhua Sun 08-27-2011
 Generalized by Gengbin Zheng  10/5/2011
-Heavily modified by Nikhil Jain
+Heavily modified by Nikhil Jain 11/28/2011
 */
 
 #define MEMPOOL_DEBUG   0
@@ -206,7 +206,7 @@ void*  mempool_malloc(mempool_type *mptr, int size, int expand)
     void          *pool;
     int           i;
     size_t        expand_size;
-    int           power, bestfit_size; //most close power of cutoffpoint 
+    int           power, bestfit_size; //closest power of cutoffpoint 
     block_header  *current,*tail;
     slot_header   *head_free,*head_next;
     mem_handle_t  mem_hndl;
@@ -218,8 +218,6 @@ void*  mempool_malloc(mempool_type *mptr, int size, int expand)
     bestfit_size = size + sizeof(used_header);
     power = which_pow2(bestfit_size);
     bestfit_size = cutOffPoints[power];
-    //if(CmiMyPe() == 0)
-    //  printf("malloc for %lld, %lld, %lld\n",size,bestfit_size,power);
 #if MEMPOOL_DEBUG
     CmiPrintf("Request size is %d, power value is %d, size is %d\n",size,power,cutOffPoints[power]);
 #endif
@@ -237,8 +235,6 @@ void*  mempool_malloc(mempool_type *mptr, int size, int expand)
 
     //no space in current blocks, get a new one
     if(head_free==NULL) {
-      //if(CmiMyPe() == 0)
-       //printf("Will attempt to expand now\n");
       if (!expand) return NULL;
 
 #if MEMPOOL_DEBUG
@@ -246,7 +242,7 @@ void*  mempool_malloc(mempool_type *mptr, int size, int expand)
 #endif
 
       tail = (block_header*)((char*)mptr+mptr->block_tail);
-      expand_size = 2*bestfit_size; 
+      expand_size = 2*bestfit_size + sizeof(block_header)
       pool = mptr->newblockfn(&expand_size, &mem_hndl, 1);
       if(pool==NULL) {
         CmiPrintf("Mempool-Did not get memory while expanding\n");
@@ -286,7 +282,7 @@ void*  mempool_malloc(mempool_type *mptr, int size, int expand)
       return (char*)head_free + sizeof(used_header);
     }
     
-    CmiPrintf("Mempool - Reached a location which I should never have reached\n");
+    CmiPrintf("Mempool-Reached a location which I should never have reached\n");
     return NULL;
 }
 
@@ -387,9 +383,12 @@ void mempool_free(mempool_type *mptr, void *ptr_free)
     }
     left = size;
 
-    //if(CmiMyPe() == 0)
-    //  printf("free was for %lld, merging for %lld, power %lld\n",to_free->size,size,power);
-     loc = (char*)first - (char*)mptr;
+#if MEMPOOL_DEBUG
+    if(CmiMyPe() == 0)
+      printf("free was for %lld, merging for %lld, power %lld\n",to_free->size,size,power);
+#endif
+
+    loc = (char*)first - (char*)mptr;
     for(i=power; i>=0; i--) {
       if(left>=cutOffPoints[i]) {
         current = (slot_header*)((char*)mptr+loc);
index ae735e09ab83b9079f397f85d9ce7143dabf814d..025092a74fbdee601911885f9d8800f1617fc268 100644 (file)
@@ -5,7 +5,6 @@
 #include "conv-config.h"
 #include "converse.h"
 
-#define USE_MEMPOOL_ISOMALLOC  1
 #if CMK_CONVERSE_GEMINI_UGNI
 #include "gni_pub.h"
 #include "pmi.h"
@@ -32,7 +31,7 @@ typedef struct slot_header_
 #endif
   int                  size,status;  //status is 1 for free, 0 for used
   size_t               gprev,gnext;  //global slot list within a block
-  size_t               prev,next;    //link list for either freelists slots
+  size_t               prev,next;    //link list for freelists slots
 } slot_header;
 
 typedef struct used_header_
index 93fa35534f81cd7d997ae6ee76314ea504dac04b..ac4bfcc662f9d9a689f0479be3c875ac3ab1e369 100644 (file)
@@ -140,7 +140,7 @@ static CmiInt8 pe2slot(int pe) {
 /* Return the number of slots in a block with n user data bytes */
 #if USE_MEMPOOL_ISOMALLOC
 static int length2slots(int nBytes) {
-  return (sizeof(CmiIsomallocBlock)+sizeof(mempool_type)+ sizeof(mempool_header)+nBytes+slotsize-1)/slotsize;
+  return (nBytes+slotsize-1)/slotsize;
 }
 #else
 static int length2slots(int nBytes) {
@@ -2584,7 +2584,7 @@ void CmiIsomallocBlockListPup(pup_er p,CmiIsomallocBlockList **lp, CthThread tid
 #if ISOMALLOC_DEBUG
       printf("[%d] slot %lld size %d at %p to %p\n",CmiMyPe(),slot,size,newblock,newblock+size);
 #endif
-      }
+    }
   }
   pup_bytes(p,lp,sizeof(int*));
   if(pup_isDeleting(p)) {