<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Nov 22, 2013 at 11:01 PM, Jon Masamitsu <span dir="ltr"><<a href="mailto:jon.masamitsu@oracle.com" target="_blank">jon.masamitsu@oracle.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm withdrawing this review request until further notice.</blockquote><div><br><br></div><div>Jon, I know you withdrew to give this further thought, but IIRC, the thing to do here might be<br>
to record the return as a split birth, rather than to fix up the split death.<br></div><div>At least that was my mental model for the demand tracking.<br><br></div><div>Will look at yr changes when you provide a new webrev. At this time I only read yr descripition below, but<br>
did not look at the webrev.<br><br></div><div>thanks!<br></div><div>-- ramki<br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
<br>
<br>
On 11/22/2013 5:54 PM, Jon Masamitsu wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
8026303: CMS: JVM intermittently crashes with "FreeList of size 258 violates Con<br>
servation Principle" assert<br>
<br>
CompactibleFreeListSpace:: par_get_chunk_of_blocks() replenishes<br>
the free list of a given size by splitting a larger chunk. The code<br>
searched for a block that was large enough to split. If a large enough<br>
chunk was found it was removed from the dictionary and a split death<br>
was recorded. If the remainder after splitting would be too small, that<br>
block was returned to the dictionary but forgot to fix the split death<br>
accounting<br>
<br>
The fix was to move the split death accounting to the point where<br>
it was known that the chunk would not be put back into the dictionary.<br>
There was also code moved which did the accounting for the<br>
_unallocated_block (updated it to account for the allocation which<br>
could change _unallocated_block).<br>
<br>
The fix<br>
<br>
<a href="http://cr.openjdk.java.net/~jmasa/8026303/webrev.00/" target="_blank">http://cr.openjdk.java.net/~<u></u>jmasa/8026303/webrev.00/</a><br>
<br>
A small amount of code refactoring was done and is in<br>
a second webrev (along with the fix above).  Both changes<br>
will be put back together.<br>
<br>
<a href="http://cr.openjdk.java.net/~jmasa/8026303/webrev_cleanup.00/" target="_blank">http://cr.openjdk.java.net/~<u></u>jmasa/8026303/webrev_cleanup.<u></u>00/</a><br>
<br>
Thanks.<br>
<br>
Jon<br>
<br>
<br>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br></div></div>