< prev index next >

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

Print this page
rev 49670 : imported patch 8178105-switch-at-remark
rev 49671 : imported patch 8178105-stefanj-review
rev 49672 : imported patch 8178105-stefanj-review2
rev 49674 : imported patch 8154528-reclaim-at-remark
rev 49675 : imported patch 8154528-stefanj-review
rev 49678 : imported patch 8200426-sangheon-review
rev 49679 : imported patch 8200730-timing-in-remark-cleanup
rev 49680 : [mq]: 8200730-stefanj-review

*** 992,1002 **** G1HeapVerifier* verifier = _g1h->verifier(); verifier->verify_region_sets_optional(); if (VerifyDuringGC) { ! GCTraceTime(Debug, gc, phases) trace(caller, _gc_timer_cm); size_t const BufLen = 512; char buffer[BufLen]; jio_snprintf(buffer, BufLen, "During GC (%s)", caller); --- 992,1002 ---- G1HeapVerifier* verifier = _g1h->verifier(); verifier->verify_region_sets_optional(); if (VerifyDuringGC) { ! GCTraceTime(Debug, gc, phases) debug(caller, _gc_timer_cm); size_t const BufLen = 512; char buffer[BufLen]; jio_snprintf(buffer, BufLen, "During GC (%s)", caller);
*** 1107,1117 **** double start = os::elapsedTime(); verify_during_pause(G1HeapVerifier::G1VerifyRemark, VerifyOption_G1UsePrevMarking, "Remark before"); { ! GCTraceTime(Debug, gc, phases) trace("Finalize Marking", _gc_timer_cm); finalize_marking(); } double mark_work_end = os::elapsedTime(); --- 1107,1117 ---- double start = os::elapsedTime(); verify_during_pause(G1HeapVerifier::G1VerifyRemark, VerifyOption_G1UsePrevMarking, "Remark before"); { ! GCTraceTime(Debug, gc, phases) debug("Finalize Marking", _gc_timer_cm); finalize_marking(); } double mark_work_end = os::elapsedTime();
*** 1125,1155 **** // threads to have SATB queues with active set to true. satb_mq_set.set_active_all_threads(false, /* new active value */ true /* expected_active */); { ! GCTraceTime(Debug, gc, phases) trace("Flush Task Caches", _gc_timer_cm); flush_all_task_caches(); } // Install newly created mark bitmap as "prev". swap_mark_bitmaps(); { ! GCTraceTime(Debug, gc, phases) trace("Update Remembered Set Tracking Before Rebuild", _gc_timer_cm); G1UpdateRemSetTrackingBeforeRebuild cl(_g1h, this); _g1h->heap_region_iterate(&cl); log_debug(gc, remset, tracking)("Remembered Set Tracking update regions total %u, selected %u", _g1h->num_regions(), cl.num_selected_for_rebuild()); } { ! GCTraceTime(Debug, gc, phases) trace("Reclaim Empty Regions", _gc_timer_cm); reclaim_empty_regions(); } // Clean out dead classes if (ClassUnloadingWithConcurrentMark) { ! GCTraceTime(Debug, gc, phases) trace("Purge Metaspace", _gc_timer_cm); ClassLoaderDataGraph::purge(); } compute_new_sizes(); --- 1125,1155 ---- // threads to have SATB queues with active set to true. satb_mq_set.set_active_all_threads(false, /* new active value */ true /* expected_active */); { ! GCTraceTime(Debug, gc, phases) debug("Flush Task Caches", _gc_timer_cm); flush_all_task_caches(); } // Install newly created mark bitmap as "prev". swap_mark_bitmaps(); { ! GCTraceTime(Debug, gc, phases) debug("Update Remembered Set Tracking Before Rebuild", _gc_timer_cm); G1UpdateRemSetTrackingBeforeRebuild cl(_g1h, this); _g1h->heap_region_iterate(&cl); log_debug(gc, remset, tracking)("Remembered Set Tracking update regions total %u, selected %u", _g1h->num_regions(), cl.num_selected_for_rebuild()); } { ! GCTraceTime(Debug, gc, phases) debug("Reclaim Empty Regions", _gc_timer_cm); reclaim_empty_regions(); } // Clean out dead classes if (ClassUnloadingWithConcurrentMark) { ! GCTraceTime(Debug, gc, phases) debug("Purge Metaspace", _gc_timer_cm); ClassLoaderDataGraph::purge(); } compute_new_sizes();
*** 1168,1178 **** // marking due to overflowing the global mark stack. reset_marking_for_restart(); } { ! GCTraceTime(Debug, gc, phases) trace("Report Object Count", _gc_timer_cm); report_object_count(mark_finished); } // Statistics double now = os::elapsedTime(); --- 1168,1178 ---- // marking due to overflowing the global mark stack. reset_marking_for_restart(); } { ! GCTraceTime(Debug, gc, phases) debug("Report Object Count", _gc_timer_cm); report_object_count(mark_finished); } // Statistics double now = os::elapsedTime();
*** 1316,1326 **** double start = os::elapsedTime(); verify_during_pause(G1HeapVerifier::G1VerifyCleanup, VerifyOption_G1UsePrevMarking, "Cleanup before"); { ! GCTraceTime(Debug, gc, phases) trace("Update Remembered Set Tracking After Rebuild", _gc_timer_cm); G1UpdateRemSetTrackingAfterRebuild cl(_g1h); _g1h->heap_region_iterate(&cl); } if (log_is_enabled(Trace, gc, liveness)) { --- 1316,1326 ---- double start = os::elapsedTime(); verify_during_pause(G1HeapVerifier::G1VerifyCleanup, VerifyOption_G1UsePrevMarking, "Cleanup before"); { ! GCTraceTime(Debug, gc, phases) debug("Update Remembered Set Tracking After Rebuild", _gc_timer_cm); G1UpdateRemSetTrackingAfterRebuild cl(_g1h); _g1h->heap_region_iterate(&cl); } if (log_is_enabled(Trace, gc, liveness)) {
*** 1338,1348 **** double recent_cleanup_time = (os::elapsedTime() - start); _total_cleanup_time += recent_cleanup_time; _cleanup_times.add(recent_cleanup_time); { ! GCTraceTime(Debug, gc, phases) trace("Finalize Concurrent Mark Cleanup", _gc_timer_cm); _g1h->g1_policy()->record_concurrent_mark_cleanup_end(); } } // Supporting Object and Oop closures for reference discovery --- 1338,1348 ---- double recent_cleanup_time = (os::elapsedTime() - start); _total_cleanup_time += recent_cleanup_time; _cleanup_times.add(recent_cleanup_time); { ! GCTraceTime(Debug, gc, phases) debug("Finalize Concurrent Mark Cleanup", _gc_timer_cm); _g1h->g1_policy()->record_concurrent_mark_cleanup_end(); } } // Supporting Object and Oop closures for reference discovery
*** 1564,1574 **** 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", _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. --- 1564,1574 ---- 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) debug("Reference Processing", _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.
*** 1989,1999 **** } // Clear all marks in the next bitmap for the next marking cycle. This will allow us to skip the next // concurrent bitmap clearing. { ! GCTraceTime(Debug, gc)("Clear Next Bitmap"); clear_bitmap(_next_mark_bitmap, _g1h->workers(), false); } // Note we cannot clear the previous marking bitmap here // since VerifyDuringGC verifies the objects marked during // a full GC against the previous bitmap. --- 1989,1999 ---- } // Clear all marks in the next bitmap for the next marking cycle. This will allow us to skip the next // concurrent bitmap clearing. { ! GCTraceTime(Debug, gc) debug("Clear Next Bitmap"); clear_bitmap(_next_mark_bitmap, _g1h->workers(), false); } // Note we cannot clear the previous marking bitmap here // since VerifyDuringGC verifies the objects marked during // a full GC against the previous bitmap.
< prev index next >