RFR: 8173679: Disable ProfileTrap code and UseRTMLocking in emulated client Win32
Vladimir Kozlov
vladimir.kozlov at oracle.com
Wed Feb 1 16:55:08 UTC 2017
Sent from my iPhone
> On Feb 1, 2017, at 5:20 AM, Jamsheed C m <jamsheed.c.m at oracle.com> wrote:
>
> Hi Vladimir,
>
> revised webrev : http://cr.openjdk.java.net/~jcm/8173679/webrev.01/
>
> 1) -XX:+UseRTMLocking displays informative warning in emulate client mode.
Warning doesn't switch off RTM.
where you are switching it off?
Vladimir
>
> 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