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

Tobias Hartmann tobias.hartmann at oracle.com
Tue Jan 12 08:20:26 UTC 2016


Hi Zoltan,

looks good to me.

Best,
Tobias

On 12.01.2016 09:00, Zoltán Majó wrote:
> Hi Vladimir,
> 
> 
> On 01/11/2016 08:26 PM, Vladimir Kozlov wrote:
>> Don't use GC flags in the test. They will conflict with flags passed by testing infra and the test will fail. The was bug fixed by removing GC flags from all our tests.
>> Note, Nightly testing does GC flags rotation so you don't need to do that.
> 
> OK, I removed all GC flags from the test. Here is the updated webrev:
> http://cr.openjdk.java.net/~zmajo/8086053/webrev.03/
> 
>> Otherwise looks good.
> 
> Thank you for the review! I'll push webrev.03 today as it addresses all issues that were brought up.
> 
> Thank you and best regards,
> 
> 
> Zoltan
> 
>>
>> Thanks,
>> Vladimir
>>
>> On 1/11/16 5:37 AM, Zoltán Majó wrote:
>>> Hi,
>>>
>>>
>>>
>>> On 01/11/2016 02:11 PM, Zoltán Majó wrote:
>>>> [...]
>>>> Yes, that is a good idea. I added a test that launches the VM with all flag combinations and also with different GCs.
>>>> I did the same what the test does to reproduce the original failure.
>>>>
>>>> Here is the updated webrev:
>>>> http://cr.openjdk.java.net/~zmajo/8086053/webrev.01/
>>>
>>> The test contains and unnecessary @library tag and package import. The year in the copyright statement must be changed
>>> as well (to 2016).
>>>
>>> Here is the webrev with those changes:
>>> http://cr.openjdk.java.net/~zmajo/8086053/webrev.02/
>>>
>>> Sorry for the noise.
>>>
>>> Thank you and best regards,
>>>
>>>
>>> Zoltan
>>>
>>>
>>>>
>>>> The newly added test passes on all supported platforms.
>>>>
>>>> Thank you and best regards,
>>>>
>>>>
>>>> Zoltan
>>>>
>>>>>
>>>>> Best,
>>>>> Tobias
>>>>>
>>>>>
>>>>> On 08.01.2016 12:06, 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