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

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Feb 3 02:26:57 UTC 2017


This looks good.

Thanks,
Vladimir

On 2/2/17 6:09 PM, Jamsheed C m wrote:
> Hi Vladimir,
>
> revised webrev :
>
> 1) Changes to make cli tests to run on sameVM
>
> root part: http://cr.openjdk.java.net/~jcm/8173679/webrev.00.hs/
>
> 2) Changes for, disabling mdo trap count update on deopt, and to make
> +UseRTMLocking to exit.
>
> hotspot part: http://cr.openjdk.java.net/~jcm/8173679/webrev.02.hotspot/
>
> Best Regards,
>
> Jamsheed
>
> On 2/2/2017 10:59 AM, Jamsheed C m wrote:
>> Hi Vladimir,
>>
>> On 2/2/2017 9:20 AM, Vladimir Kozlov wrote:
>>>
>>>
>>> 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().
>> i meant normal client exits. emulated client prints warning only, it
>> doesn't exit or change flags.
>>>
>>>> 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.
>> Sure, i will do required code change , and send it for review.
>> Best Regards,
>> Jamsheed
>>>
>>> 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