JDK-8247775 : Code cache sweeper heuristics is broken
  • Type: Backport
  • Backport of: JDK-8244660
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 11,12,13,14,15
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2020-06-17
  • Updated: 2020-10-08
  • Resolved: 2020-10-08
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 15
11-poolResolved 15Fixed
Comments
Closing as duplicate of JDK-8254185.
08-10-2020

The patch doesn't apply cleanly. I will suggest a minimal fix for 11.
07-10-2020

I have confirmed this is a problem. Will backport.
07-10-2020

Our internal JDK 11 (based on 11.0.8) has JDK-8244278 in it, and it has the problem of "no sweep at all" mentioned in JDK-8244660. Sweep only happens when code cache is 90% full. I see JDK-8244278 is in 11.0.10-oracle. Didn't it cause notable increase in code cache usage in 11.0.10-oracle?
21-09-2020

Hi [~manc] Not at the moment. In my experiments, the old sweeper heuristic works in 11 (Probably because 11 doesn't have many of the safepoints replaced by handshakes). Changing the heuristic, which might change behavior in unexpected ways and introduce new bugs, isn't something that users expect of a old release (and an LTS). If you have data that shows it's a real problem in 11 - I might reconsider.
21-09-2020

Hi Nils, Is it still planned to backport this to JDK 11? Were there some challenges that made this "Won't Fix". We asked because JDK-8244278 was requested for 11u.
21-09-2020