The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
11u Fix Request
Backporting this patch fixes a regression introduced by JDK-8268347 for which I requested backport approval. Patch applies cleanly to 11u once JDK-8268347 is applied. tier1 tests pass with the patch.
All Java versions which have JDK-8268347 fix are affected.
26-06-2021
Suggested fix:
src/hotspot/share/opto/compile.cpp
@@ -4514,7 +4514,9 @@ bool Compile::coarsened_locks_consistent() {
bool modified = false; // track locks kind modifications
Lock_List* locks_list = (Lock_List*)_coarsened_locks.at(i);
uint size = locks_list->size();
- if (size != locks_list->origin_cnt()) {
+ if (size == 0) {
+ unbalanced = false; // All locks were eliminated - good.
+ } else if (size != locks_list->origin_cnt()) {
unbalanced = true; // Some locks were removed from list
} else {
for (uint j = 0; j < size; j++) {
26-06-2021
Looks like I forgot to check when all coarsened lock/unlock in group were eliminated as normal case which does not require recompilation.
26-06-2021
Yes, I see several recompilations introduced by JDK-8268347. I will investigate.
=== unbalanced coarsened locks ===
*********************************************************
** Bailout: Recompile without locks coarsening **
*********************************************************
790s spec.jbb.Orderline::validateAndProcess (63 bytes)
26-06-2021
ILW = benchmark regression, no workaround = MMH = P3