RFR(S): 8005032: G1: Cleanup serial reference processing closures in concurrent marking
John Cuthbertson
john.cuthbertson at oracle.com
Tue Jan 8 18:59:28 UTC 2013
Hi Everyone,
Can I have a couple of volunteers review the changes for this CR - the
webrev can be found at: http://cr.openjdk.java.net/~johnc/8005032/webrev.0/
Summary:
The previous serial keep-alive and complete-gc reference processing oop
closures used during concurrent marking operated directly on the global
marking stack while the parallel closures used the local task queues
from the concurrent marking task objects (using the global marking stack
as a backing store). Additionally the parallel keep-alive closure also
drained the local task queue after processing a given number of references.
These changes make the serial reference processing code use the same oop
closures as the parallel code. This will reduce the likelihood of
hitting a marking stack overflow while processing the discovered
references during the remark phase.
Testing:
GC test suite with a low IHOP and marking verification.
Test case for 8004812 (Kitchensink) with a very low marking stack size
(4K entries) and heap verification, and both with and without
ParallelRefProcEnabled and ParallelGCThreads=0.
jprt.
Thanks,
JohnC
More information about the hotspot-gc-dev
mailing list