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