gets rid of crashes...
authorbdemsky <bdemsky>
Sat, 16 Jul 2011 07:00:59 +0000 (07:00 +0000)
committerbdemsky <bdemsky>
Sat, 16 Jul 2011 07:00:59 +0000 (07:00 +0000)
Robust/src/Runtime/bamboo/multicoremem.h
Robust/src/Runtime/bamboo/pmc_forward.c

index 585a2d9303de286088d240a28ec181a22c4325f5..03720c9086c7746679dba8ef662fa257fffb4732 100644 (file)
@@ -68,5 +68,7 @@ void * globalmalloc_I(int coren, unsigned INTPTR memcheck, unsigned INTPTR * all
 void * smemalloc(int coren, unsigned INTPTR isize, unsigned INTPTR * allocsize);
 void * smemalloc_I(int coren, unsigned INTPTR isize, unsigned INTPTR * allocsize);
 
+#warning Block size is BAMBOO_SMEM_SIZE
+#warning Numblocks is BAMBOO_NUM_BLOCKS
 
 #endif // BAMBOO_MULTICORE_MEM_H
index c60d7ce5c4060770d4893c89559eaaaedf316910..746d947f910ffb58288e912fa1555781c28c2bb6 100644 (file)
@@ -69,9 +69,11 @@ void pmc_processunits() {
       pmc_heapptr->regions[regionnum].highunit=i;
       pmc_heapptr->regions[regionnum].endptr=pmc_heapptr->units[i-1].endptr;
 
-      pmc_heapptr->regions[regionnum+1].startptr=pmc_heapptr->units[i-1].endptr;
-      pmc_heapptr->regions[regionnum+1].lowunit=i;
-      regionnum++;
+      if((regionnum+1)<NUMCORES4GC) {
+       pmc_heapptr->regions[regionnum+1].startptr=pmc_heapptr->units[i-1].endptr;
+       pmc_heapptr->regions[regionnum+1].lowunit=i;
+       regionnum++;
+      }
       totalbytes-=livebytespercore;
       numregions=0;
     }
@@ -80,9 +82,7 @@ void pmc_processunits() {
     tmc_spin_mutex_init(&pmc_heapptr->units[i].lock);
     totalbytes+=pmc_heapptr->units[i].numbytes;
   }
-  pmc_heapptr->regions[regionnum].highunit=NUMPMCUNITS;
-  pmc_heapptr->regions[regionnum].endptr=pmc_heapptr->units[NUMPMCUNITS-1].endptr;
-  regionnum++;
+
   for(;regionnum<NUMCORES4GC;regionnum++) {
     pmc_heapptr->regions[regionnum].highunit=NUMPMCUNITS;
     pmc_heapptr->regions[regionnum].endptr=pmc_heapptr->units[NUMPMCUNITS-1].endptr;