RFR: 8173679: Disable ProfileTrap code and UseRTMLocking in emulated client Win32
Jamsheed C m
jamsheed.c.m at oracle.com
Fri Feb 3 02:09:50 UTC 2017
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