JDK-8269304 : Regression ~5% in 2005 in b27
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8u311,11.0.13-oracle,17,18
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2021-06-24
  • Updated: 2021-07-15
  • Resolved: 2021-06-28
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.

To download the current JDK release, click here.
JDK 11 JDK 17 JDK 18 JDK 8
11.0.13-oracleFixed 17 b29Fixed 18Fixed 8u311Fixed
Related Reports
Relates :  
Description
Seems to be related to JDK-8268347.
Comments
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.
15-07-2021

Changeset: 8d09596f Author: Vladimir Kozlov <kvn@openjdk.org> Date: 2021-06-28 15:52:09 +0000 URL: https://git.openjdk.java.net/jdk17/commit/8d09596f270c822b867d38a5462ec62c613f1d0e
28-06-2021

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
24-06-2021