RFR: 8173679: Disable ProfileTrap code and UseRTMLocking in emulated client Win32
Vladimir Kozlov
vladimir.kozlov at oracle.com
Fri Feb 3 18:39:42 UTC 2017
On 2/2/17 11:47 PM, Jamsheed C m wrote:
> Thank you for the review, Vladimir
>
> while testing i found that i missed adding @requires !vm.emulatedClient
> in compiler/types/correctness/OffTest.java. i will be adding that with
> this push? is that Ok ?
Yes, no need to send an other RFR.
Thanks,
Vladimir
>
> Best Regards,
>
> Jamsheed
>
> On 2/3/2017 7:56 AM, Vladimir Kozlov wrote:
>> 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