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

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