[9] RFR (M): 8086053: Address inconsistencies regarding ZeroTLAB

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Jan 8 20:46:59 UTC 2016

Looks good to me.


On 1/8/16 3:06 AM, Zoltán Majó wrote:
> Hi,
> please review the patch for 8086053.
> https://bugs.openjdk.java.net/browse/JDK-8086053
> Problem: With ZeroTLAB enabled, the GC is supposed to zero-fill newly allocated TLAB regions. With ZeroTLAB disabled,
> the interpreter and compiled code should assume the responsibility to zero-fill newly allocated regions.
> Currently, the handling of the ZeroTLAB flag shows some inconsistencies between the GC and the compilers. These
> inconsistencies lead to newly allocated regions not being filled with zeros.
> Solution: Address the following:
> - With -XX:+FastTLABRefill, C1-compiled code refills the TLAB without notifying the GC. As a result, the newly allocated
> TLAB is not initialized with zero. Add TLAB initialization code to C1.
> - With -XX:+ZeroTLAB, the C2 compiler skips zero-initialization of newly allocated objects/arrays even if TLAB
> allocation is disabled. Add stricter conditions to C2 on when to skip filling objects/arrays with zero.
> Webrev:
> http://cr.openjdk.java.net/~zmajo/8086053/webrev.00/
> Testing:
> - local testing (linux_x86_64) of failing test case with -XX:+UseG1GC and -XX:+UseSerialGC;
> - JPRT;
> - all hotspot tests on all platforms affected by the change using all combinations of +/-UseTLAB and +/-ZeroTLAB.
> Thank you and best regards,
> Zoltan

More information about the hotspot-compiler-dev mailing list