RFR: 8331087: Move immutable nmethod data from CodeCache [v2]

Vladimir Kozlov kvn at openjdk.org
Sun Apr 28 23:37:22 UTC 2024


> Move immutable nmethod's data from CodeCache to C heap. It includes `dependencies, nul_chk_table, handler_table, scopes_pcs, scopes_data, speculations, jvmci_data`. It amounts for about 30% (optimized VM) of space in CodeCache.
> 
> Use HotSpot's `os::malloc()` to allocate memory in C heap for immutable nmethod's data. Bail out compilation if allocation failed.
> 
> Shuffle fields order and change some fields size from 4 to 2 bytes to avoid nmethod's header size increase.
> 
> Tested tier1-5, stress,xcomp
> 
> Our performance testing does not show difference.
> 
> Example of updated `-XX:+PrintNMethodStatistics` output is in JBS comment.

Vladimir Kozlov has updated the pull request incrementally with one additional commit since the last revision:

  Address comments. Moved jvmci_data back to mutable data section.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/18984/files
  - new: https://git.openjdk.org/jdk/pull/18984/files/6b1f69d9..1824f46c

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=18984&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=18984&range=00-01

  Stats: 98 lines in 5 files changed: 39 ins; 36 del; 23 mod
  Patch: https://git.openjdk.org/jdk/pull/18984.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18984/head:pull/18984

PR: https://git.openjdk.org/jdk/pull/18984


More information about the serviceability-dev mailing list