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

Jamsheed C m jamsheed.c.m at oracle.com
Wed Feb 1 05:34:33 UTC 2017


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