<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <br>
    <div class="moz-cite-prefix">On 3/29/2016 12:07 PM, sangheon wrote:<br>
    </div>
    <blockquote cite="mid:56FAD254.8040909@oracle.com" type="cite">
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      Hi Jon,<br>
      <br>
      Thank you for reviewing this.<br>
      <br>
      <div class="moz-cite-prefix">On 03/29/2016 10:49 AM, Jon Masamitsu
        wrote:<br>
      </div>
      <blockquote cite="mid:56FAC01E.20303@oracle.com" type="cite">
        <meta content="text/html; charset=utf-8"
          http-equiv="Content-Type">
        Sangheon,<br>
        <br>
        I agree that we don't want to expose <span class="new">CardTableModRefBS::_last_valid_index<br>
          but I'd consider making </span><span class="new"><span
            class="new">CardTableModRefBS::</span>cards_required()
          public.<br>
          That would remove the need to duplicate the calculation and it
          seems<br>
          a reasonable question to ask the card table implementation how
          many<br>
          cards it is going to require.  I'll let other disagree if they
          like.<br>
        </span></blockquote>
      Good idea and changed to 'public'.<br>
      <br>
      <blockquote cite="mid:56FAC01E.20303@oracle.com" type="cite"><span
          class="new"> <br>
          Add in the message a little more about why the value is too
          large.<br>
          <br>
        </span><br>
        <pre><span class="new"> 396       CommandLineError::print(verbose,</span>
<span class="new"> 397                               "ParGCCardsPerStrideChunk (" INTX_FORMAT ") 
<font color="#ff0000">                                   "is too large for the heap size and "</font>
                                   "must be "</span>
<span class="new"> 398                               "less than or equal to card table size (" SIZE_FORMAT ")\n",</span>
<span class="new"> 399                               value, card_table_size);
</span></pre>
      </blockquote>
      Fixed.<br>
      <br>
      <blockquote cite="mid:56FAC01E.20303@oracle.com" type="cite">
        <pre><span class="new">

</span></pre>
        <pre><span class="new">I think a little more information here would help future maintainers so</span>
<span class="new">instead of </span>
<span class="new"></span></pre>
        <span class="new"></span>
        <pre><span class="new">403     // If n_strides which is used with ParGCCardsPerStrideChunk is really large, we would face an overflow.</span></pre>
        <span class="new"><br>
        </span></blockquote>
      I updated the comment.<br>
      <br>
      <blockquote cite="mid:56FAC01E.20303@oracle.com" type="cite"><span
          class="new"> This statement can overflow?<br>
        </span><br>
        <pre><span class="new"> 404     uintx n_strides = ParallelGCThreads * ParGCStridesPerThread;</span></pre>
      </blockquote>
      No.<br>
      Because above statement is checked not to overflow from
      ParGCStridesPerThreadConstraintFunc() which is called before this
      constraint function. (added this explanation as well)<br>
    </blockquote>
    <br>
    Ok.<br>
    <br>
    <blockquote cite="mid:56FAD254.8040909@oracle.com" type="cite"> <br>
      Updated webrev:<br>
      <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="http://cr.openjdk.java.net/%7Esangheki/8152176/webrev.01/">http://cr.openjdk.java.net/~sangheki/8152176/webrev.01/</a><br>
      <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="http://cr.openjdk.java.net/%7Esangheki/8152176/webrev.01_to_00/">http://cr.openjdk.java.net/~sangheki/8152176/webrev.01_to_00/</a><br>
    </blockquote>
    <br>
    Looks good.<br>
    <br>
    Jon<br>
    <br>
    <blockquote cite="mid:56FAD254.8040909@oracle.com" type="cite"> <br>
      Thanks,<br>
      Sangheon<br>
      <br>
      <br>
      <blockquote cite="mid:56FAC01E.20303@oracle.com" type="cite"> <span
          class="new"><br>
          Jon<br>
          <br>
        </span>
        <div class="moz-cite-prefix">On 3/28/2016 3:50 PM, sangheon
          wrote:<br>
        </div>
        <blockquote cite="mid:56F9B548.3000504@oracle.com" type="cite">Hi

          all, <br>
          <br>
          Could I have some reviews for this change? <br>
          <br>
          As very large value of ParGCCardsPerStrideChunk flag would
          result in an overflow, we need a constraint function after
          memory initialization. And the function will check the flag to
          be less than of equal to the size of card table and not to
          make an overflow with other stride factors(ParallelGCThreads
          and ParGCStridesPerThread). <br>
          <br>
          CR: <a moz-do-not-send="true" class="moz-txt-link-freetext"
            href="https://bugs.openjdk.java.net/browse/JDK-8152176">https://bugs.openjdk.java.net/browse/JDK-8152176</a>
          <br>
          Webrev: <a moz-do-not-send="true"
            class="moz-txt-link-freetext"
            href="http://cr.openjdk.java.net/%7Esangheki/8152176/webrev.00">http://cr.openjdk.java.net/~sangheki/8152176/webrev.00</a>
          <br>
          Testing: JPRT, all runtime/commandline JTREG tests on all
          platforms <br>
          <br>
          Thanks, <br>
          Sangheon <br>
          <br>
        </blockquote>
        <br>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>