<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 3/18/16 4:04 PM, Tom Benson wrote:<br>
    </div>
    <blockquote cite="mid:56EC5F6B.2090605@oracle.com" type="cite">
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      Hi,<br>
      Please review this G1 change to consider available space before
      adding old gen regions for mixed GCs.  The live_bytes per region
      are accumulated as the cset is built and checked before adding old
      regions.  The 'safety_factor' computation previously used only for
      young regions is split out to be shared. <br>
      <br>
      JBS: <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://bugs.openjdk.java.net/browse/JDK-8131734">https://bugs.openjdk.java.net/browse/JDK-</a><a
        moz-do-not-send="true" class="issue-link"
        data-issue-key="JDK-8142935"
        href="https://bugs.openjdk.java.net/browse/JDK-8142935"
        id="key-val" rel="4854204">8142935</a> <br>
      Webrev: <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="http://cr.openjdk.java.net/%7Etbenson/8131734/webrev/">http://cr.openjdk.java.net/~tbenson/</a><a
        moz-do-not-send="true" class="issue-link"
        data-issue-key="JDK-8142935"
        href="https://bugs.openjdk.java.net/browse/JDK-8142935"
        id="key-val" rel="4854204">8142935</a><a moz-do-not-send="true"
        class="moz-txt-link-freetext"
        href="http://cr.openjdk.java.net/%7Etbenson/8131734/webrev/">/webrev/</a><br>
      Testing: JPRT and hotspot and gc tests.  A targeted test that
      showed evacuation failures due to too many old regions in the cset
      no longer gets them. Some SPECjvm tests with stressful heap/thread
      settings showed better behavior as well.  Normal Perf testing
      showed no significant difference.<br>
      <br>
      Thanks,<br>
      Tom<br>
    </blockquote>
    Hi Tom,<br>
    <br>
    My main question is that it looks like the accounting:<br>
    <blockquote>_inc_bytes_used_before<br>
      _inc_bytes_live_before<br>
      _bytes_used_before<br>
      _bytes_lived_before<br>
    </blockquote>
    are a summary of the bytes used and live in the young regions.<br>
    <br>
    In the new test in
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    G1CollectionSet::finalize_old_part(), I don't see that it's
    accounting for the live bytes of the old regions it already added to
    the cset. For example if the young regions had no live data, then we
    might still add too many old regions to the cset?<br>
    <br>
    The rest of it looks good.<br>
    <br>
     - Derek<br>
  </body>
</html>