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

Zoltán Majó zoltan.majo at oracle.com
Fri Jan 8 11:06:58 UTC 2016


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