CRR (S): 7129892: G1: explicit marking cycle initiation might fail to initiate a marking cycle

John Cuthbertson john.cuthbertson at
Tue Feb 7 10:24:42 PST 2012

Hi Tony,

I forgot that you had this out for review.

Anyway - this looks good to me.


On 01/26/12 11:52, Tony Printezis wrote:
> Hi all,
> Can I please have a couple of code reviews for the following change?
> The issue is that a GC attempt that's supposed to explicitly start a 
> concurrent marking cycle might be unsuccessful (as another GC might 
> get scheduled first) which will prevent the cycle from starting. The 
> idea is to retry such unsuccessful attempts.
> I also changed should_do_concurrent_full_gc() from an if-statement to 
> a switch statement. I discussed it with Bengt (the last person to 
> modify that method) and we both think that the switch statement is 
> more readable.
> BTW, I did a couple of iterations of this fix to address the slightly 
> different approach Bengt took in the cycle initiation after hum 
> allocation code  (i.e., start the cycle before the allocation, not 
> after). In the end the current version of 
> retry_unsuccessful_concurrent_full_gc(), a new method I added, always 
> returns true for all causes. I'm inclined to leave the switch in, even 
> just for the comments per cause. I could be persuaded to replace it 
> with return true; statement though.
> Tony

More information about the hotspot-gc-dev mailing list