From: jzhou Date: Thu, 14 Jul 2011 19:32:47 +0000 (+0000) Subject: fix profile code X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=b0e32de17a5aeb038b30214824260c0864f40f20;hp=abce04f951b03de05f4030f53d10fdba3d20bc93;p=IRC.git fix profile code --- diff --git a/Robust/src/Runtime/bamboo/multicoregarbage.c b/Robust/src/Runtime/bamboo/multicoregarbage.c index 3e79be10..058c92b8 100644 --- a/Robust/src/Runtime/bamboo/multicoregarbage.c +++ b/Robust/src/Runtime/bamboo/multicoregarbage.c @@ -296,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(); @@ -342,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"); @@ -397,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); @@ -454,10 +450,10 @@ void gc_master(struct garbagelist * stackptr) { 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(); //tprintf("finish mark phase\n"); // get large objects from all cores master_getlargeobjs(); @@ -548,8 +544,8 @@ bool gc(struct garbagelist * stackptr) { while(!gc_checkCoreStatus()) ; - GCPROFILE_START(); pregccheck(); + GCPROFILE_START(); GC_PRINTF("start gc! \n"); pregcprocessing(); gc_master(stackptr); diff --git a/Robust/src/Runtime/bamboo/multicoregccompact.c b/Robust/src/Runtime/bamboo/multicoregccompact.c index b3969011..89385215 100644 --- a/Robust/src/Runtime/bamboo/multicoregccompact.c +++ b/Robust/src/Runtime/bamboo/multicoregccompact.c @@ -606,6 +606,8 @@ void master_compact() { if (allocationinfo.lowestfreeblock==NOFREEBLOCK) allocationinfo.lowestfreeblock=numblockspercore*NUMCORES4GC; + // compute live object space + GCPROFILE_RECORD_SPACE(); GC_PRINTF("compact phase finished \n"); } diff --git a/Robust/src/Runtime/bamboo/multicoregcmark.c b/Robust/src/Runtime/bamboo/multicoregcmark.c index ea542af9..3ec50d80 100644 --- a/Robust/src/Runtime/bamboo/multicoregcmark.c +++ b/Robust/src/Runtime/bamboo/multicoregcmark.c @@ -271,6 +271,7 @@ void mark(struct garbagelist * stackptr) { } else { // ptr is an unmarked active object on this core unsigned int isize=iunits<status==BS_FREE) { \ + gc_num_freespace+=block->freespace&~BAMBOO_CACHE_LINE_MASK; \ + } \ } \ - gc_num_freespace = (BAMBOO_SHARED_MEM_SIZE) - gc_num_livespace; \ + gc_num_livespace = (BAMBOO_SHARED_MEM_SIZE) - gc_num_freespace; \ } \ } // record forward obj info