RFR(S) 8236236 Eliminate CDS md region and consolidate c++ vtable patching code
Ioi Lam
ioi.lam at oracle.com
Thu Dec 19 23:51:21 UTC 2019
https://bugs.openjdk.java.net/browse/JDK-8236236
http://cr.openjdk.java.net/~iklam/jdk15/8236236_remove_cds_md_section.v01/
This is the first step of:
JDK-8234693 - Consolidate CDS static and dynamic archive dumping code
My plan is to first make the two archives structurally alike, and then
merge the code that generates them.
---
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 uses MetaspaceShared::patch_cpp_vtable_pointers()
dynamic archive uses
MetaspaceShared::fix_cpp_vtable_for_dynamic_archive().
We should consolidate the code to just use the latter.
Thanks
- Ioi
More information about the hotspot-runtime-dev
mailing list