[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