<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>