< prev index next >

src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp

Print this page

        

*** 2906,2915 **** --- 2906,2916 ---- // "inconsistent argument?"); // However that wouldn't be right, because it's possible that // a safepoint is indeed in progress as a young generation // stop-the-world GC happens even as we mark in this generation. assert(_collectorState == Marking, "inconsistent state?"); + _gc_timer_cm->register_gc_concurrent_start("Concurrent Mark"); check_correct_thread_executing(); verify_overflow_empty(); // Weak ref discovery note: We may be discovering weak // refs in this generation concurrent (but interleaved) with
*** 2925,2934 **** --- 2926,2936 ---- assert(_foregroundGCIsActive, "internal state inconsistency"); assert(_restart_addr == NULL, "foreground will restart from scratch"); log_debug(gc)("bailing out to foreground collection"); } verify_overflow_empty(); + _gc_timer_cm->register_gc_concurrent_end(); return res; } bool CMSCollector::markFromRootsWork() { // iterate over marked bits in bit map, doing a full scan and mark
*** 5291,5300 **** --- 5293,5303 ---- } #endif void CMSCollector::sweep() { assert(_collectorState == Sweeping, "just checking"); + _gc_timer_cm->register_gc_concurrent_start("Concurrent Sweep"); check_correct_thread_executing(); verify_work_stacks_empty(); verify_overflow_empty(); increment_sweep_count(); TraceCMSMemoryManagerStats tms(_collectorState,GenCollectedHeap::heap()->gc_cause());
*** 5371,5380 **** --- 5374,5384 ---- // the flag will be set again when a young collection is // attempted. GenCollectedHeap* gch = GenCollectedHeap::heap(); gch->clear_incremental_collection_failed(); // Worth retrying as fresh space may have been freed up gch->update_full_collections_completed(_collection_count_start); + _gc_timer_cm->register_gc_concurrent_end(); } // FIX ME!!! Looks like this belongs in CFLSpace, with // CMSGen merely delegating to it. void ConcurrentMarkSweepGeneration::setNearLargestChunk() {
< prev index next >