RFR(xs): 8205578: jtreg: Fix failing TestRTMAbortRatio on PPC64

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Jun 28 17:43:09 UTC 2018


Looks good.

Thanks,
Vladimir

On 6/28/18 6:13 AM, Gustavo Romero wrote:
> Hi Igor,
> 
> On 06/28/2018 03:26 AM, Igor Ignatyev wrote:
>> Hi Gustavo,
>>
>> looks fine to me.
> 
> Thanks!
> 
> Could I get a second review please?
> 
> 
> Regards,
> Gustavo
> 
>> Thanks,
>> -- Igor
>>
>>> On Jun 25, 2018, at 1:29 AM, Gustavo Romero 
>>> <gromero at linux.vnet.ibm.com> wrote:
>>>
>>> Hi,
>>>
>>> Could the following simple change be reviewed please?
>>>
>>> bug   : https://bugs.openjdk.java.net/browse/JDK-8205578
>>> webrev: http://cr.openjdk.java.net/~gromero/8205578/v1/
>>>
>>> Currently native method pageSize() is used to cause deliberate 
>>> transactional
>>> aborts. However in test TestRTMAbortRatio pageSize() is not marked to be
>>> compilable and as a consequence it's never called through the code 
>>> path of
>>> SharedRuntime::generate_native_wrapper(). As that code path is never 
>>> exercised
>>> no 'tabort' on JNI call is executed and the test fails on Power 
>>> because of fewer
>>> aborts than expected by the test.
>>>
>>> I can't say for sure why that test is getting the correct number of 
>>> aborts on
>>> x86. Nonetheless I can confirm that even on x86 the aborts do not 
>>> come from the
>>> native wrapper, i.e. from 'xabort' in 
>>> SharedRuntime::generate_native_wrapper().
>>> I suspect the aborts on x86 are occurring a bit latter when the 
>>> native function
>>> is called and a "Far Call" is executed in the native method by chance 
>>> and not in
>>> a controlled way. As far as I know there is no way to inspect the 
>>> exact address
>>> when a transaction failed on Intel as it's possible on Power.
>>>
>>> Anyway, marking pageSize() as compilable does not cause any 
>>> regression on Intel
>>> (at the same time it starts to exercise the generate_native_wrapper 
>>> code path)
>>> and makes the test pass on Power as expected.
>>>
>>> So it fixes the following test on Power:
>>>
>>> +Passed: compiler/rtm/locking/TestRTMAbortRatio.java
>>>
>>>
>>> Thank you and best regards,
>>> Gustavo
>>>
>>
> 


More information about the ppc-aix-port-dev mailing list