JDK-8236236 : Eliminate CDS md region and consolidate c++ vtable patching code
  • Type: Sub-task
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 15
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2019-12-19
  • Updated: 2020-01-30
  • Resolved: 2020-01-22
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 15
15 b08Fixed
Related Reports
Relates :  
Description
This is the first step of JDK-8234693 Consolidate CDS static and dynamic archive dumping code

Currently the static archive has 4 regions, in the order of MC,RW,RO,MD, but the dynamic archive has 3 regions, in the order of RW,RO,MC

The difference in the number and ordering causes special handling code, e.g.,
http://hg.openjdk.java.net/jdk/jdk/file/f33197adda9a/src/hotspot/share/memory/metaspaceShared.cpp#l2303

The MD region is used only for the cloned CPP vtables. It's safe to move these into the MC region.

Also, for c++ vtable patching, static archive MetaspaceShared::patch_cpp_vtable_pointers(), but dynamic archive uses MetaspaceShared::fix_cpp_vtable_for_dynamic_archive(). We should consolidate the code to just use the latter.


Comments
URL: https://hg.openjdk.java.net/jdk/jdk/rev/ee29fd484961 User: iklam Date: 2020-01-22 19:59:12 +0000
22-01-2020

http://cr.openjdk.java.net/~iklam/jdk15/8236236_remove_cds_md_section.v01/
19-12-2019