Add gcprofile to PMC garbage collector and compute the size of allocated obj instead...
[IRC.git] / Robust / src / Runtime / bamboo / multicoregarbage.c
index 1840d85527bd8d85fac223ffdb878baaf5555f24..4518fed89c10057533a9a19906e331d67af6d4b0 100644 (file)
@@ -117,9 +117,6 @@ void initmulticoregcdata() {
 #ifdef MGC_SPEC
   gc_profile_flag = false;
 #endif
-#ifdef GC_CACHE_ADAPT
-  gccachestage = false;
-#endif 
 
   if(STARTUPCORE == BAMBOO_NUM_OF_CORE) {
     allocationinfo.blocktable=RUNMALLOC(sizeof(struct blockrecord)*GCNUMBLOCK);
@@ -299,8 +296,6 @@ void gc_collect(struct garbagelist * stackptr) {
   WAITFORGCPHASE(MARKPHASE);
 
   GC_PRINTF("Start mark phase\n");
-  GCPROFILE_ITEM();
-
   mark(stackptr);
   GC_PRINTF("Finish mark phase, start compact phase\n");
   compact();
@@ -345,7 +340,6 @@ void gc_nocollect(struct garbagelist * stackptr) {
   WAITFORGCPHASE(MARKPHASE);
 
   GC_PRINTF("Start mark phase\n"); 
-  GCPROFILE_ITEM();
   mark(stackptr);
   GC_PRINTF("Finish mark phase, wait for update\n");
 
@@ -391,7 +385,7 @@ void master_getlargeobjs() {
   //spin until we have all responses
   while(numconfirm!=0) ;
 
-  GCPROFILE_ITEM();
+  GCPROFILE_ITEM_MASTER();
   GC_PRINTF("prepare to cache large objs \n");
 
 }
@@ -400,7 +394,6 @@ void master_getlargeobjs() {
 void master_updaterefs(struct garbagelist * stackptr) {
   gc_status_info.gcphase = UPDATEPHASE;
   GC_SEND_MSG_1_TO_CLIENT(GCSTARTUPDATE);
-  GCPROFILE_ITEM();
   GC_PRINTF("Start update phase \n");
   // update phase
   update(stackptr);
@@ -419,7 +412,7 @@ void master_finish() {
   bamboo_smem_size = 0;
   bamboo_smem_zero_top = NULL;
   
-  GCPROFILE_END();
+  GCPROFILE_END_MASTER();
   unsigned long long tmpt = BAMBOO_GET_EXE_TIME();
   CACHEADAPT_OUTPUT_CACHE_POLICY();
   gc_output_cache_policy_time += (BAMBOO_GET_EXE_TIME()-tmpt);
@@ -453,14 +446,14 @@ void gc_master(struct garbagelist * stackptr) {
   CACHEADAPT_GC(true);
   //tprintf("Check core status \n");
   GC_CHECK_ALL_CORE_STATUS();
-  GCPROFILE_ITEM();
+  GCPROFILE_ITEM_MASTER();
   unsigned long long tmpt = BAMBOO_GET_EXE_TIME();
   CACHEADAPT_OUTPUT_CACHE_SAMPLING();
   gc_output_cache_policy_time += (BAMBOO_GET_EXE_TIME()-tmpt);
-  GCPROFILE_ITEM();
   //tprintf("start mark phase\n");
   // do mark phase
   master_mark(stackptr);
+  GCPROFILE_ITEM_MASTER();
   //tprintf("finish mark phase\n");
   // get large objects from all cores
   master_getlargeobjs();
@@ -551,8 +544,8 @@ bool gc(struct garbagelist * stackptr) {
     while(!gc_checkCoreStatus())
       ;
 
-    GCPROFILE_START();
     pregccheck();
+    GCPROFILE_START_MASTER();
     GC_PRINTF("start gc! \n");
     pregcprocessing();
     gc_master(stackptr);