<p>Hi John,</p>
<p>Just curious - why did you make the timestamp a uint* instead of uint?</p>
<p>Thanks,</p>
<p>Vitaly</p>
<div class="gmail_quote">On Dec 9, 2011 2:20 PM, "John Cuthbertson" <<a href="mailto:john.cuthbertson@oracle.com">john.cuthbertson@oracle.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<u></u>
<div text="#000000" bgcolor="#ffffff">
Hi Everyone,<br>
<br>
Can I have a couple of volunteers to review the changes for this CR?
The webrev can be found at:
<a href="http://cr.openjdk.java.net/~johnc/7119908/webrev.0/" target="_blank">http://cr.openjdk.java.net/~johnc/7119908/webrev.0/</a><br>
<br>
Summary:<br>
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.<br>
<br>
Testing:<br>
GC Test suite with a small marking threshold (10%) with and without
verification; the configuration of SPECjbb used to test 7117423;
Kitchensink.<br>
<br>
Thanks,<br>
<br>
JohnC<br>
<br>
<a href="http://monaco.sfbay.sun.com/detail.jsf?cr=7112743" target="_blank"></a>
</div>
</blockquote></div>