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