RFR(S): 7119908: G1: Cache CSet start region for each worker for subsequent reuse

John Cuthbertson john.cuthbertson at oracle.com
Fri Dec 9 19:18:22 UTC 2011


Hi Everyone,

Can I have a couple of volunteers to review the changes for this CR? The 
webrev can be found at: http://cr.openjdk.java.net/~johnc/7119908/webrev.0/

Summary:
As part of the code review comments for 7112743 (G1: Reduce overhead of 
marking closure during evacuation pauses) it was suggested that instead 
of recalculating the starting heap region for each worker thread, we 
reuse the values calculated during RSet scanning. These changes address 
that review comment. In these changes I maintain a cache that is used 
and updated by G1CollectedHeap::start_cset_region_for_worker(). The 
first time this routine is called by a worker thread during an 
evacuation pause (currently during RSet scanning) the cached value for 
the worker gets set; when the routine is called subsequently the region 
that was cached for the worker is returned. I employ a simple stamp 
mechanism based upon the number of GCs that ensures the validity of the 
regions in the cache and makes clearing the cache unnecessary.

Testing:
GC Test suite with a small marking threshold (10%) with and without 
verification; the configuration of SPECjbb used to test 7117423; 
Kitchensink.

Thanks,

JohnC

<http://monaco.sfbay.sun.com/detail.jsf?cr=7112743>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20111209/463d4ef0/attachment.htm>


More information about the hotspot-gc-dev mailing list