RFR (M): 8151126: Clean up duplicate code for clearing the mark bitmaps (original) (raw)

Jon Masamitsu jon.masamitsu at oracle.com
Thu Mar 10 18:42:37 UTC 2016


http://cr.openjdk.java.net/~tschatzl/8151126/webrev/src/share/vm/gc/g1/g1ConcurrentMark.cpp.frames.html

728 void G1ConcurrentMark::clear_prev_bitmap(WorkGang* workers) { 729 assert(SafepointSynchronize::is_at_safepoint(), "Should only clear the entire prev bitmap at a safepoint."); 730 clear_bitmap((G1CMBitMap*)_prevMarkBitMap, workers, false); 731 }

Would it be appropriate to move the assertion at 729 to

698 void G1ConcurrentMark::clear_bitmap(G1CMBitMap* bitmap, WorkGang* workers, bool may_yield) { assert(may_yield ||SafepointSynchronize::is_at_safepoint(), "Should only clear the entire bitmap at a safepoint."

699 G1ClearBitMapTask task(bitmap, this, workers->active_workers(), may_yield); 700 workers->run_task(&task); 701 guarantee(!may_yield || task.is_complete(), "Must have completed iteration when not yielding.");

702 }

Seems like you would get more coverage when needed for the assertion.

Otherwise, looks good.

Jon

On 03/10/2016 05:16 AM, Thomas Schatzl wrote:

Hi Tom,

I updated the current webrev with your suggestion. I also rebased it to tip. CR: https://bugs.openjdk.java.net/browse/JDK-8151126 Webrev: http://cr.openjdk.java.net/~tschatzl/8151126/webrev/ Testing: jprt Thanks, Thomas



More information about the hotspot-gc-dev mailing list