RFR: 8173679: Disable ProfileTrap code and UseRTMLocking in emulated client Win32
Jamsheed C m
jamsheed.c.m at oracle.com
Fri Feb 3 07:47:57 UTC 2017
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 ?
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
>>>>>>>>>>>>>>
>>>>>>>
>>>>>
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20170203/309ad61e/attachment-0001.html>
More information about the hotspot-compiler-dev
mailing list