[9] RFR (XS): 8148758: Compilation fails with "this call site should not be polymorphic"

Zoltán Majó zoltan.majo at oracle.com
Fri Feb 5 09:25:23 UTC 2016


Hi,


please review the patch for 8148758.

https://bugs.openjdk.java.net/browse/JDK-8148758


Problem: Compilation fails because the C2 compiler encounters 
inconsistent profiling information.

The reason for the failure is that the test changes the 
OnStackReplacePercentage flag's value at runtime. Several other values 
are computed based on the value of the OnStackReplacePercentage flag 
(e.g., InvocationCounter::InterpreterBackwardBranchLimit, 
MethodCounters::_interpreter_backward_branch_limit).

As a result, changing the flag's value at runtime can put the VM into an 
inconsistent state. Also, the WB API changes the value of the flag 
without synchronization possibly leaving the flag in an inconsistent state.


Solution: The goal of IntxTest.java is to verify that getting/setting 
flag values through the WB API works properly. The test changes the 
flags OnStackReplacePercentage and InlineFrequencyCount. Both flags are 
related only to compilation. Running the test in interpreter-only 
guarantees that the VM is not put into an inconsistent state (because 
the flag values are not used by the VM).

Webrev:
http://cr.openjdk.java.net/~zmajo/8148758/webrev.00/

Testing:
- JPRT with failing test;
- local testing with the failing test on a linux-x86_64 system.

Thank you and best regards,


Zoltan



More information about the hotspot-compiler-dev mailing list