#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);
WAITFORGCPHASE(MARKPHASE);
GC_PRINTF("Start mark phase\n");
- GCPROFILE_ITEM();
-
mark(stackptr);
GC_PRINTF("Finish mark phase, start compact phase\n");
compact();
WAITFORGCPHASE(MARKPHASE);
GC_PRINTF("Start mark phase\n");
- GCPROFILE_ITEM();
mark(stackptr);
GC_PRINTF("Finish mark phase, wait for update\n");
//spin until we have all responses
while(numconfirm!=0) ;
- GCPROFILE_ITEM();
+ GCPROFILE_ITEM_MASTER();
GC_PRINTF("prepare to cache large objs \n");
}
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);
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);
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();
while(!gc_checkCoreStatus())
;
- GCPROFILE_START();
pregccheck();
+ GCPROFILE_START_MASTER();
GC_PRINTF("start gc! \n");
pregcprocessing();
gc_master(stackptr);