<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi Sangheon,<br>
This looks fine to me except for a couple of trivial points in
commandLineFlagConstraintsGC.cpp comments.<br>
<br>
Typo in "should" :<br>
<pre><span class="new">+ // ParGCCardsPerStrideChunk shoule be
</span></pre>
<pre><span class="new">I think the "However," in this line is not needed, and confusing:</span>
</pre>
<span class="new"></span><span class="new">+ // from
CardTableModRefBSForCTRS::process_stride(). However,
ParGCStridesPerThread is already checked<br>
<br>
I'd probably say "Note that ParGCStridesPerThread ..." instead.<br>
<br>
Tom<br>
</span><br>
<br>
<div class="moz-cite-prefix">On 3/29/2016 6:42 PM, sangheon wrote:<br>
</div>
<blockquote cite="mid:56FB04CA.1000305@oracle.com" type="cite">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
Thanks, Jon.<br>
<br>
Sangheon<br>
<br>
<br>
<div class="moz-cite-prefix">On 03/29/2016 02:13 PM, Jon Masamitsu
wrote:<br>
</div>
<blockquote cite="mid:56FAEFEE.5030705@oracle.com" type="cite">
<meta content="text/html; charset=utf-8"
http-equiv="Content-Type">
<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>
</blockquote>
<br>
</blockquote>
<br>
</body>
</html>