[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-hotspot-runtime-dev
Subject:    RFR(S) 8236236 Eliminate CDS md region and consolidate c++ vtable patching code
From:       Ioi Lam <ioi.lam () oracle ! com>
Date:       2019-12-19 23:51:21
Message-ID: 82e96104-4458-8b10-7963-b76685177714 () oracle ! com
[Download RAW message or body]

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
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic