RFR: 8048556: Unnecessary GCLocker-initiated young GCs

Fairoz Matte fairoz.matte at oracle.com
Thu Jul 25 12:32:38 UTC 2019


Hi Kim,

Thanks for looking into this.
What you have suggested is totally different approach.
I will investigate more.

Thanks,
Fairoz

> -----Original Message-----
> From: Kim Barrett
> Sent: Thursday, July 25, 2019 5:06 AM
> To: Fairoz Matte <fairoz.matte at oracle.com>
> Cc: Hotspot-Gc-Dev <hotspot-gc-dev at openjdk.java.net>
> Subject: Re: RFR: 8048556: Unnecessary GCLocker-initiated young GCs
> 
> > On Jul 24, 2019, at 7:12 PM, Kim Barrett <kim.barrett at oracle.com> wrote:
> > When G1 has an allocation failure that might require a GC, and it
> > can't satisfy the allocation in some other way (such as by allocating
> > more young regions), then if GCLocker::needs_gc() is true it will
> > stall and wait for the gc-locker gc request to be processed, and then
> > retry the allocation.
> 
> Looking at the history of the G1 code, the present behavior of deferring to a
> pending gc-locker gc request was introduced by
> 
> 7143858: G1: Back to back young GCs with the second GC having a minimally
> sized eden
> 
> Sound familiar?  There are even comments in that CR discussing exactly the
> race described by Tony in JDK-8048556.  Pity other GCs weren't examined for
> the same problem and similarly modified at the same time.
> 



More information about the hotspot-gc-dev mailing list