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,

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