<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi everybody,<br>
    Could I get reviews for this bug 8133349. <br>
    This is assert is happening because the _survivor_chunk_array size
    is based on a calculation from ThreadLocalAllocBuffer::min_size(),
    but during a GC the PLAB::min_size() is used as the lower limit.<br>
    <br>
    These are different because the TLAB alignment_reserve() == 40
    words, but the PLAB AlignmentReserve == 2 words which is from
    oopDesc::header_size().<br>
    <br>
    So that means the _survivor_chunk_array is a little bit smaller than
    will fit all the PLABs that could be allocated during a GC. <br>
    <br>
    Before the fix for <a
      href="https://bugs.openjdk.java.net/browse/JDK-8078904"
      title="CMS: Assert failed: Ctl pt invariant"><strike>JDK-8078904</strike></a>,
    the _survivor_chunk_array was padded by 2x, not sure why, so this
    situation never caused a problem. With the fix for <a
      href="https://bugs.openjdk.java.net/browse/JDK-8078904"
      title="CMS: Assert failed: Ctl pt invariant"><strike>JDK-8078904</strike></a>,
    the _survivor_chunk_array is exactly sized to hold the PLABs.<br>
    <br>
    Bug:<br>
    <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8133349">https://bugs.openjdk.java.net/browse/JDK-8133349</a><br>
    Webrev:<br>
    <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~ecaspole/JDK-8133349/01/webrev/">http://cr.openjdk.java.net/~ecaspole/JDK-8133349/01/webrev/</a><br>
    <br>
    Passes JPRT and many  counts of PGC threads in the failing test,
    which only was exposed in a certain Solaris situation.<br>
    Thanks,<br>
    Eric<br>
    <br>
  </body>
</html>