RFR: 8173679: Disable ProfileTrap code and UseRTMLocking in emulated client Win32

Jamsheed C m jamsheed.c.m at oracle.com
Wed Feb 1 13:20:48 UTC 2017


Hi Vladimir,

revised webrev : http://cr.openjdk.java.net/~jcm/8173679/webrev.01/

1) -XX:+UseRTMLocking displays informative warning in emulate client mode.

2)  Disabled mdo update code in deopt.

Best Regards,

Jamsheed


On 2/1/2017 11:04 AM, Jamsheed C m wrote:
> Hi Vladimir,
>
> On 2/1/2017 1:39 AM, Vladimir Kozlov wrote:
>> On 1/31/17 10:37 AM, Jamsheed C m wrote:
>>> Hi Vladimir,
>>>
>>> ProfileTraps is develop_pd flag, should i be changing flag type ?
>>
>> No. Thinking more about this. The code guarded by ProfileTraps should 
>> be only executed when ProfileInterpreter is true. And you set 
>> ProfileInterpreter to false in client mode. Why you need these 
>> changes then? Did you hit some ProfileTraps code which is not guarded 
>> by ProfileInterpreter?
> with ProfileTraps ON may be the trap count updation in deopt pollute 
> Runtime1::predicate_failed_trap trap count and may influence the 
> recompilation time optimization decision? also create some more 
> mdos(empty ones) in exceptions ?
> other than that i don't find any issues.
>
> just disabling ProfileTraps[1] in deoptimization should solve first 
> problem. second problem of creation of mdos(empty ones) for exception 
> is harmless i believe.
> [1] if (ProfileTraps && update_trap_state && trap_mdo != NULL) {
>
>>>
>>> RTM test code doesn't pass VM options to  spawned  process, So 
>>> predicate checking process and spawned process can be in
>>> different modes. spawned test process is always in emulated client 
>>> mode in win32.
>>>
>>> the predicate checking process will be in emulated client or server 
>>> based on passed  -XX:+|-TieredCompilation option.
>>> as a fix i disabled RTM testing completely in win32.
>>
>> I still do not understand why you can't use 
>> Platform.isEmulatedClient() instead of Platform.isWindows() && 
>> Platform.is32bit().
>>
>> And why changes in SupportedOS.java is not enough?
> Some tests doesn't pass vmoption to child process(cli tests). so same 
> vm tests will be running in different modes ( i.e child will always 
> run in emulated client mode, while predicate checking parent process 
> will run in server or emulated client depending on option passed). so 
> these tests require change if i am changing VM behavior with respect 
> to options.
>
> //I would suggest to disable RTM only in client mode. //
>
> as per this discussion, i decided to not disable tests or vm behavior, 
> just print some harmless warning in emulated client mode.
>
> Best Regards,
> Jamsheed
>
>>
>>>
>>> i will disable RTM completely in win32(both emulated client and 
>>> server).
>>
>> I would suggest to disable RTM only in client mode.
>>
>> Thanks,
>> Vladimir
>>
>>>
>>> Best Regards,
>>>
>>> Jamsheed
>>>
>>> On 1/31/2017 11:15 PM, Vladimir Kozlov wrote:
>>>> Jamsheed
>>>>
>>>> Instead of adding check && !is_client_compilation_mode_vm() I think 
>>>> we should set ProfileTraps to false in client mode.
>>>>
>>>> Why you not using Platform.isEmulatedClient() in tests changes?
>>>>
>>>> Thanks,
>>>> Vladimir
>>>>
>>>> On 1/31/17 2:44 AM, Jamsheed C m wrote:
>>>>> Hi,
>>>>>
>>>>> Code change to disable ProfileTrap and UseRTMLocking in Win32 
>>>>> emulated client .
>>>>>
>>>>> 1) ProfileTrap is code is disabled
>>>>>
>>>>> 2) -XX:+ UseRTMLocking in win32 emulated client not supported.
>>>>>
>>>>> 3) All Supported and Unsupported  testcases related RTM is 
>>>>> disabled in win32.
>>>>>
>>>>> webrev: http://cr.openjdk.java.net/~jcm/8173679/webrev.00/
>>>>>
>>>>> bug id: https://bugs.openjdk.java.net/browse/JDK-8173679
>>>>>
>>>>> Best Regards,
>>>>>
>>>>> Jamsheed
>>>>>
>>>
>



More information about the hotspot-compiler-dev mailing list