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

classic Classic list List threaded Threaded
16 messages Options
Reply | Threaded
Open this post in threaded view
|

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

Jamsheed C m
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

Reply | Threaded
Open this post in threaded view
|

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

Vladimir Kozlov
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
>
Reply | Threaded
Open this post in threaded view
|

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

Jamsheed C m
Hi Vladimir,

ProfileTraps is develop_pd flag, should i be changing flag type ?

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 will disable RTM completely in win32(both emulated client and server).

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
>>

Reply | Threaded
Open this post in threaded view
|

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

Vladimir Kozlov
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?

>
> 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?

>
> 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
>>>
>
Reply | Threaded
Open this post in threaded view
|

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

Jamsheed C m
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
>>>>
>>

Reply | Threaded
Open this post in threaded view
|

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

Jamsheed C m
Hi Vladimir,

revised webrev : http://cr.openjdk.java.net/~jcm/8173679/webrev.01/

1) -XX:+UseRTMLocking displays informative warning in emulate client mode.

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
>>>>>
>>>
>

Reply | Threaded
Open this post in threaded view
|

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

Vladimir Kozlov


Sent from my iPhone

> On Feb 1, 2017, at 5:20 AM, Jamsheed C m <[hidden email]> 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?

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
>>>>>>
>>>>
>>
>

Reply | Threaded
Open this post in threaded view
|

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

Jamsheed C m

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 [hidden email] 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.
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


            

        

      

    

Reply | Threaded
Open this post in threaded view
|

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

Vladimir Kozlov
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 <[hidden email]> 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?

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
>>>>>>>>
>
Reply | Threaded
Open this post in threaded view
|

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

Jamsheed C m
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 <[hidden email]>
>>>> 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 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.
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
>>>>>>>>>
>>

Reply | Threaded
Open this post in threaded view
|

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

Vladimir Kozlov


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 <[hidden email]> 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
>>>>>>>>>>
>>>
>
Reply | Threaded
Open this post in threaded view
|

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

Jamsheed C m
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
>>>>>> <[hidden email]> 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
>>>>>>>>>>>
>>>>
>>

Reply | Threaded
Open this post in threaded view
|

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

Jamsheed C m
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
>>>>>>> <[hidden email]> 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
>>>>>>>>>>>>
>>>>>
>>>
>

Reply | Threaded
Open this post in threaded view
|

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

Vladimir Kozlov
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
>>>>>>>> <[hidden email]> 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
>>>>>>>>>>>>>
>>>>>>
>>>>
>>
>
Reply | Threaded
Open this post in threaded view
|

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

Jamsheed C m

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
[hidden email] 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






Reply | Threaded
Open this post in threaded view
|

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

Vladimir Kozlov
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
>>>>>>>>>> <[hidden email]> 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
>>>>>>>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>
>>>
>