RFR: 8173679: Disable ProfileTrap code and UseRTMLocking in emulated client Win32
Vladimir Kozlov
vladimir.kozlov at oracle.com
Thu Feb 2 03:50:03 UTC 2017
On 2/1/17 6:19 PM, Jamsheed C m wrote:
> Hi Vladimir,
>
> On 2/2/2017 7:07 AM, Vladimir Kozlov wrote:
>> On 2/1/17 9:07 AM, Jamsheed C m wrote:
>>> Hi Vladimir,
>>>
>>>
>>> On 2/1/2017 10:25 PM, Vladimir Kozlov wrote:
>>>>
>>>> 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?
>>> i am not switching it off, i am just printing warning, User should explicitly remove option.
>>
>> Then it should be not warning but error. We can't run in Client mode with RTM on. Or I am missing something?
> RTM "ON" state is always user specified action. RTM is default OFF. from the code it says it disables BiasedLocking when
> RTM is ON and exit in client(lose both rtm + biased locking feature with -XX:+UseRTMLocking), i made it warning for
Where it exits? It does not in VM_Version::use_biased_locking().
> emulated client. as it is User specified action, User can see warning that Biased lock get switched off with an
> unsupported option, and remove it from his commandline.
No, you have to explicitly call vm_exit_during_initialization() as it was done in preceding code (!supports_rtm() &&
UseRTMLocking). Note, users may ignores warnings because usually output is stored in log files.
thanks,
Vladimir
> Best Regards,
> Jamsheed
>>
>> Thanks,
>> Vladimir
>>
>>>
>>> Best Regards, Jamsheed
>>>
>>>>
>>>> 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