RFR: 8293187: Store initialized Enum classes in AOTCache [v10]

Ioi Lam iklam at openjdk.org
Tue Oct 1 06:17:39 UTC 2024


On Mon, 30 Sep 2024 13:02:16 GMT, Andrew Dinn <adinn at openjdk.org> wrote:

>> Ioi Lam has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 109 commits:
>> 
>>  - Merge branch 'jep-483-step-03-8329706-implement-xx-aot-class-linking' of /jdk3/yak/open into jep-483-step-04-8293187-support-sun-invoke-util-wrapper-in-cds-archive-heap
>>  - Merge branch 'jep-483-step-02-8338018-rename-class-prelinker-to-aot-cp-resolver' into jep-483-step-03-8329706-implement-xx-aot-class-linking
>>  - Merge branch 'jep-483-step-01-8338017-add-aot-command-line-aliases' into jep-483-step-02-8338018-rename-class-prelinker-to-aot-cp-resolver
>>  - Merge branch 'master' of https://github.com/openjdk/jdk into jep-483-step-01-8338017-add-aot-command-line-aliases
>>  - 8340864: Remove unused lines related to vmClasses
>>    
>>    Reviewed-by: shade, kvn
>>  - 8340831: Simplify simple validation for class definition in MethodHandles.Lookup
>>    
>>    Reviewed-by: redestad
>>  - 8340838: Clean up MutableCallSite to use explicit release fence instead of AtomicInteger
>>    
>>    Reviewed-by: jrose, redestad, shade
>>  - 8340956: ProblemList 4 java/nio/channels/DatagramChannel tests on macosx-all
>>    
>>    Reviewed-by: liach, alanb, darcy, dfuchs
>>  - 8340228: Open source couple more miscellaneous AWT tests
>>    
>>    Reviewed-by: prr
>>  - 8340684: Reading from an input stream backed by a closed ZipFile has no test coverage
>>    
>>    Reviewed-by: lancea
>>  - ... and 99 more: https://git.openjdk.org/jdk/compare/6029b35f...563bccb3
>
> src/hotspot/share/cds/heapShared.cpp line 1009:
> 
>> 1007: //
>> 1008: // The set of classes that are required to be initialized for the archived
>> 1009: // java mirrors are recorded in _runtime_default_subgraph_info (which probably
> 
> _runtime_default_subgraph_info is derived from _default_subgraph_info, the latter being the subgraph associated with class java.lang.Object. Perhaps using the prefix `root` or `jlobject` would make this clearer i.e. `_root_subgraph_info` and `_runtime_root_subgraph_info` or `_jlobject_subgraph_info` and `_runtime_jlobject_subgraph_info`.

`root` may be a little over-loaded, because we have `HeapShared::get_root(int)` to get an arbitrary object with an integer index.

I renamed the various field/functions to `special_subgraph`, and added a comment about what this subgraph contains. What do you think?

Also, the two `subgraph_info` fields are renamed to the following:


  static KlassSubGraphInfo* _dumptime_special_subgraph;              // for collecting info during dump time
  static ArchivedKlassSubGraphInfoRecord* _runtime_special_subgraph; // for initializing classes during run time.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20958#discussion_r1782171252


More information about the hotspot-dev mailing list