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

Tony Printezis tony.printezis at oracle.com
Thu Jan 26 19:52:39 UTC 2012


Hi all,

Can I please have a couple of code reviews for the following change?

http://cr.openjdk.java.net/~tonyp/7129892/webrev.1/

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