[10] RFR (M/L): 8137099: G1 needs to "upgrade" GC within the safepoint if it can't allocate during that safepoint to avoid OoME

Erik Helin erik.helin at oracle.com
Wed Jan 10 15:50:03 UTC 2018

Hi Thomas,

thanks for taking on this work and cleaning this up!

On 01/09/2018 10:52 AM, Thomas Schatzl wrote:
> Hi all,
>    Erik Duveblad had some offline comments:
> New webrevs:
> http://cr.openjdk.java.net/~tschatzl/8137099/webrev.2_to_3/ (diff)
> http://cr.openjdk.java.net/~tschatzl/8137099/webrev.3/ (full)

this looks good to me now, pending one small comment: please rename 
G1CollectedHeap::no_more_regions_left_for_allocation to 
G1CollectedHeap::has_regions_left_for_allocation (and of course change 
the method). This way you can use the ! operator in the if condition, 
which reads a bit easier.

And thanks for putting this into 11, it is the right decision IMO.


> - inverting some conditions in the clauses to read better
> - extract out the condition to do the maximally compacting full gc
> added in this change into a separate method.
> Erik Duveblad also noted that this change contains some slight
> behavioral change in when a collection is started. I.e. previously TLAB
> allocation by itself could not cause a GC. Since this change is already
> quite big, he suggested to fix this in a follow-up, and push them
> together.
> Thanks,
>    Thomas

More information about the hotspot-gc-dev mailing list