Hi John, Brandon --<br><br>This looks good to me.<br><br>One improvement that could be made (but which predates any of these changes) is that the ParGCAllocBuffer's min_size() and max_size()<br>just return the lower and upper bounds set for TLAB's. Rather these should be set (perhaps statically if that is possible) by the containing heap or generation.<br>
The PLAB sizing calculation already does the requisite clipping, so if the min and max sizes were properly configured you would likely not need to do the clipping from<br>above that you now have to do to keep G1's ergonomic PLAB sizes from becoming humongous.<br>
<br>But that can be a separate reorg sice it will touch a bit more code.<br><br>Otherwise this looks great!<br><br>thanks.<br>-- ramki<br><br><div class="gmail_quote">On Wed, Aug 1, 2012 at 2:11 PM, John Cuthbertson <span dir="ltr"><<a href="mailto:john.cuthbertson@oracle.com" target="_blank">john.cuthbertson@oracle.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Everyone,<br>
<br>
Can I have a couple of volunteers review the changes for this CR? The webrev can be found at: <a href="http://cr.openjdk.java.net/%7Ejohnc/6818524/webrev.0/" target="_blank">http://cr.openjdk.java.net/~<u></u>johnc/6818524/webrev.0/</a>. These changes have been contributed by Brandon Mitchell (at Twitter).<br>
<br>
Summary:<br>
PLABStats instances are now employed in G1 to record information about old and young PLABs, and they are then used to adjust the PLAB sizes for the next GC. As a result the ResizePLAB flag is now being observed by G1. The previous behavior (and PLAB sizes) can be obtained by specifying -XX:-ResizePLAB.<br>
<br>
With these changes I see just over a net 1% performance gain, on our reference workload, when running with G1.<br>
<br>
Testing:<br>
GC test suite with and without ResizePLAB and PrintPLAB enabled to observe the changes in PLAB sizes; reference workload on multiple platforms; jprt.<br>
<br>
Thanks,<br>
<br>
JohnC<br>
</blockquote></div><br>