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