RFR: 8263002 Remove CDS MiscCode region

Ioi Lam iklam at openjdk.java.net
Sun Mar 7 06:41:21 UTC 2021


The CDS MiscCode region is used for:
(a) C++ vtables
(b) Method trampolines

(a) can be moved to the ReadWrite region
(b) were introduced in JDK-8145221 so we can delay writing into Methods. This was intended to improve copy-on-write sharing to reduce memory footprint. However, this hasn't been shown to have any significant effect (footprint of metadata usually is much smaller than the Java heap), and introduces a lot of complexity in the HotSpot code.

Removing (b) will make it easier to implement JDK-8026297 (Generating AdapterHandlerEntry during CDS dump), which will further improve start-up time.

============
Other benefits of removing the MiscCode region:

- We no longer have a read/write/executable region. This address the concern in JDK-8262922.
- We can enable CDS on macOS/AArch64, which does not allow read/write/executable regions. (JDK-8253795)

-------------

Commit messages:
 - remove MC region
 - 8263002: Remove CDS MiscCode region

Changes: https://git.openjdk.java.net/jdk/pull/2861/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2861&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8263002
  Stats: 650 lines in 38 files changed: 11 ins; 541 del; 98 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2861.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2861/head:pull/2861

PR: https://git.openjdk.java.net/jdk/pull/2861


More information about the hotspot-dev mailing list