Minor change in mempool
authorNikhil Jain <nikhil@illinois.edu>
Tue, 6 Mar 2012 00:58:08 +0000 (18:58 -0600)
committerNikhil Jain <nikhil@illinois.edu>
Tue, 6 Mar 2012 00:58:08 +0000 (18:58 -0600)
src/arch/util/mempool.c
src/arch/util/mempool.h

index 1d3e279c0a557f3b4d4fe0aa0c35695cd3ca9245..298449812c46c89125dc65ac5987e61e4e26e393 100644 (file)
@@ -268,6 +268,10 @@ void*  mempool_malloc(mempool_type *mptr, int size, int expand)
 
     bestfit_size = size + sizeof(used_header);
     power = which_pow2(bestfit_size);
+    if(power == cutOffNum) {
+      CmiAbort("Mempool-requested slot is more than what mempool can provide as\
+      one chunk, increase cutOffNum and cutoffPoints in mempool\n");
+    }
     bestfit_size = cutOffPoints[power];
 #if MEMPOOL_DEBUG
     CmiPrintf("Request size is %d, power value is %d, size is %d\n",size,power,cutOffPoints[power]);
@@ -365,9 +369,8 @@ void mempool_free_thread( void *ptr_free)
 
 void mempool_free(mempool_type *mptr, void *ptr_free)
 {
-    int           i,size;
-    int           left,power;
-    size_t        prev,loc;
+    int           i,power;
+    size_t        prev,loc,size,left;
     block_header  *block_head;
     slot_header   *to_free, *first, *current;
     slot_header   *used_next,*temp;
@@ -377,7 +380,6 @@ void mempool_free(mempool_type *mptr, void *ptr_free)
               ((char*)ptr_free - (char*)mptr - sizeof(used_header)));
 #endif
 
-
     to_free = (slot_header *)((char*)ptr_free - sizeof(used_header));
     to_free->status = 1;
     block_head = to_free->block_ptr;
index b8c94c9911196267b7ad12c0b5014d64f70eb568..4aaa9d059d5b35080ea24fe1fe9b5f491ea3fd3d 100644 (file)
@@ -10,8 +10,8 @@
 #include "pmi.h"
 typedef gni_mem_handle_t    mem_handle_t;
 #else
-  // in uGNI, it is memory handler, other versions, this is an integer
-  // a unique integer to represent the memory block
+// in uGNI, it is memory handler, other versions, this is an integer
+// a unique integer to represent the memory block
 typedef CmiInt8   mem_handle_t;
 #endif
 
@@ -46,15 +46,15 @@ typedef used_header mempool_header;
 // multiple mempool for different size allocation
 typedef struct block_header
 {
-    mem_handle_t        mem_hndl;
-    size_t              size, used;
-    size_t              block_prev,block_next;   // offset to next memblock
-    size_t              freelists[cutOffNum];
-    struct mempool_type  *mptr;               // mempool_type
-    size_t              padding;              // fix for 32 bit machines
+  mem_handle_t        mem_hndl;
+  size_t              size, used;
+  size_t              block_prev,block_next;   // offset to next memblock
+  size_t              freelists[cutOffNum];
+  struct mempool_type  *mptr;               // mempool_type
+  size_t              padding;              // fix for 32 bit machines
 #if CMK_CONVERSE_GEMINI_UGNI
-    int                 msgs_in_send;
-    int                 msgs_in_recv;
+  int                 msgs_in_send;
+  int                 msgs_in_recv;
 #endif
 } block_header;