RFR: 8331087: Move immutable nmethod data from CodeCache

Vladimir Kozlov kvn at openjdk.org
Sun Apr 28 02:28:10 UTC 2024


On Sat, 27 Apr 2024 20:48:38 GMT, Doug Simon <dnsimon at openjdk.org> wrote:

>> 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.
>
> src/hotspot/share/code/nmethod.hpp line 476:
> 
>> 474:     passed,
>> 475:     code_cache_full,
>> 476:     out_of_memory
> 
> Maybe `out_of_c_heap_memory` would be clearer? Or `out_of_immutable_data_memory` if immutable data may not always be malloc'ed.

May be `no_space_for_immutable_data`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/18984#discussion_r1581998799


More information about the serviceability-dev mailing list