RFR (M): JDK-8030177: G1: Enable TLAB resizing (original) (raw)

Bengt Rutisson bengt.rutisson at oracle.com
Thu Jan 23 09:27:03 UTC 2014


Hi all,

I went through this change with Stefan Karlsson. Here is an updated webrev based on his suggestions:

http://cr.openjdk.java.net/~brutisso/8030177/webrev.01/

Here is a webrev with just the changes that Stefan suggested:

http://cr.openjdk.java.net/~brutisso/8030177/webrev.01_delta/

Thanks, Bengt

On 2014-01-13 14:09, Bengt Rutisson wrote:

Hi Thomas, On 1/13/14 1:14 PM, Thomas Schatzl wrote: Hi,

On Thu, 2014-01-09 at 20:32 +0100, Bengt Rutisson wrote: Hi everyone,

Can I have a couple of reviews for this change? http://cr.openjdk.java.net/~brutisso/8030177/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8030177 Unlike the other collectors G1 did not use dynamic sizes for the TLABs that the Java threads use for allocation. That means that the TLABs when using G1 were all fixed size and very small. This patch adds dynamic sizing of TLABs to G1 too. In performance testing this has shown a 2-3% improvement across a range of benchmarks. One difference compared to other collectors is that the maximum TLAB size in G1 has to be limited by the region size and not by the eden size. Also, for the other collectors the used space for TLAB allocation was deducted from the maximum TLAB size because this was essentially what was left in eden. That is an assumption that happened to work out, but it kind of breaks the abstraction. So, the method CollectedHeap:: tlabused() has been added to be more consistent about the TLAB abstraction and to make it more straight forward to implement in G1. threadLocalAllocBuffer.cpp: line 83: typo: allcoation -> allocation // These allcoation should ideally not be counted but since it is not possible Looks good. It's okay for me to just fix this without a re-review ;-) Thanks! I fixed the typo. :) Bengt Thomas



More information about the hotspot-gc-dev mailing list