JDK-8252043 : Move inner class metaspace cleaning out of safepoint cleanup tasks
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 16
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2020-08-19
  • Updated: 2020-08-27
  • Resolved: 2020-08-21
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 16
16 b13Fixed
Related Reports
Relates :  
Relates :  
Description
The inner class metaspace cleaning was moved out of do_unloading() so that we could support concurrent class unloading.  The place chosen for this cleaning was safepoint cleanup tasks, with a couple of flags to enable it only for full GCs.

Move it instead to ClassLoaderDataGraph::purge, where we know we have full GC, and trigger the cleanup in the ServiceThread if concurrent class unloading.  The inner metaspace cleanup still requires a safepoint because it has MetadataOnStackMark and cannot have intervening class redefinition.


Comments
URL: https://hg.openjdk.java.net/jdk/jdk/rev/d7c4e028363e User: coleenp Date: 2020-08-21 14:01:57 +0000
21-08-2020