< prev index next >

src/share/vm/gc/g1/g1ConcurrentMark.cpp

Print this page

        

*** 1121,1131 **** // Clear the marking state because we will be restarting // marking due to overflowing the global mark stack. reset_marking_state(); } else { { ! GCTraceTime(Debug, gc) trace("Aggregate Data", g1h->gc_timer_cm()); // Aggregate the per-task counting data that we have accumulated // while marking. aggregate_count_data(); } --- 1121,1131 ---- // Clear the marking state because we will be restarting // marking due to overflowing the global mark stack. reset_marking_state(); } else { { ! GCTraceTime(Debug, gc, phases) trace("Aggregate Data", g1h->gc_timer_cm()); // Aggregate the per-task counting data that we have accumulated // while marking. aggregate_count_data(); }
*** 2042,2052 **** G1CMIsAliveClosure g1_is_alive(g1h); // Inner scope to exclude the cleaning of the string and symbol // tables from the displayed time. { ! GCTraceTime(Debug, gc) trace("Reference Processing", g1h->gc_timer_cm()); ReferenceProcessor* rp = g1h->ref_processor_cm(); // See the comment in G1CollectedHeap::ref_processing_init() // about how reference processing currently works in G1. --- 2042,2052 ---- G1CMIsAliveClosure g1_is_alive(g1h); // Inner scope to exclude the cleaning of the string and symbol // tables from the displayed time. { ! GCTraceTime(Debug, gc, phases) trace("Reference Processing", g1h->gc_timer_cm()); ReferenceProcessor* rp = g1h->ref_processor_cm(); // See the comment in G1CollectedHeap::ref_processing_init() // about how reference processing currently works in G1.
*** 2131,2162 **** } assert(_markStack.isEmpty(), "Marking should have completed"); // Unload Klasses, String, Symbols, Code Cache, etc. - { - GCTraceTime(Debug, gc) trace("Unloading", g1h->gc_timer_cm()); - if (ClassUnloadingWithConcurrentMark) { bool purged_classes; { ! GCTraceTime(Trace, gc) trace("System Dictionary Unloading", g1h->gc_timer_cm()); purged_classes = SystemDictionary::do_unloading(&g1_is_alive, false /* Defer klass cleaning */); } { ! GCTraceTime(Trace, gc) trace("Parallel Unloading", g1h->gc_timer_cm()); weakRefsWorkParallelPart(&g1_is_alive, purged_classes); } } if (G1StringDedup::is_enabled()) { ! GCTraceTime(Trace, gc) trace("String Deduplication Unlink", g1h->gc_timer_cm()); G1StringDedup::unlink(&g1_is_alive); } - } } void G1ConcurrentMark::swapMarkBitMaps() { G1CMBitMapRO* temp = _prevMarkBitMap; _prevMarkBitMap = (G1CMBitMapRO*)_nextMarkBitMap; --- 2131,2158 ---- } assert(_markStack.isEmpty(), "Marking should have completed"); // Unload Klasses, String, Symbols, Code Cache, etc. if (ClassUnloadingWithConcurrentMark) { bool purged_classes; { ! GCTraceTime(Debug, gc, phases) trace("System Dictionary Unloading", g1h->gc_timer_cm()); purged_classes = SystemDictionary::do_unloading(&g1_is_alive, false /* Defer klass cleaning */); } { ! GCTraceTime(Debug, gc, phases) trace("Parallel Unloading", g1h->gc_timer_cm()); weakRefsWorkParallelPart(&g1_is_alive, purged_classes); } } if (G1StringDedup::is_enabled()) { ! GCTraceTime(Debug, gc, phases) trace("String Deduplication Unlink", g1h->gc_timer_cm()); G1StringDedup::unlink(&g1_is_alive); } } void G1ConcurrentMark::swapMarkBitMaps() { G1CMBitMapRO* temp = _prevMarkBitMap; _prevMarkBitMap = (G1CMBitMapRO*)_nextMarkBitMap;
*** 2270,2280 **** void G1ConcurrentMark::checkpointRootsFinalWork() { ResourceMark rm; HandleMark hm; G1CollectedHeap* g1h = G1CollectedHeap::heap(); ! GCTraceTime(Debug, gc) trace("Finalize Marking", g1h->gc_timer_cm()); g1h->ensure_parsability(false); // this is remark, so we'll use up all active threads uint active_workers = g1h->workers()->active_workers(); --- 2266,2276 ---- void G1ConcurrentMark::checkpointRootsFinalWork() { ResourceMark rm; HandleMark hm; G1CollectedHeap* g1h = G1CollectedHeap::heap(); ! GCTraceTime(Debug, gc, phases) trace("Finalize Marking", g1h->gc_timer_cm()); g1h->ensure_parsability(false); // this is remark, so we'll use up all active threads uint active_workers = g1h->workers()->active_workers();
< prev index next >