RFR: 8298601: Refactor archiving of java.lang.Module objects [v3]
Coleen Phillimore
coleenp at openjdk.org
Tue Jan 3 20:11:52 UTC 2023
On Tue, 3 Jan 2023 20:07:05 GMT, Ioi Lam <iklam at openjdk.org> wrote:
>> This RFE is a prerequisite for [JDK-8296344: Remove dependency on G1 for writing the CDS archive heap](https://bugs.openjdk.org/browse/JDK-8296344).
>>
>> The main change of this RFE is in `HeapShared::archive_reachable_objects_from()`. We avoid the use of "archived objects" in the interface between CDS and the module system, and use integer "root indices" instead. (See note [1] in [JDK-8298600](https://bugs.openjdk.org/browse/JDK-8298600).)
>>
>> Also, for better encapsulation, the module-specific code has been moved from `HeapShared::check_module_oop()` to the three new functions in modules.cpp.
>>
>> ----
>>
>> Besides the refactoring, this RFE also tightens up the code that deals with `java.lang.Module` oops and the corresponding C++ `ModuleEntry` objects.
>>
>> As this is admittedly an obscured area of the CDS archive heap, I've added the following:
>>
>> - Assertions to make sure that when an oop is archived, the corresponding C++ object is also archived, and vice-versa.
>> - More comments
>
> Ioi Lam has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
>
> - Merge branch 'master' into 8298601-refactor-archiving-of-java-lang-Module-oops
> - review from @coleenp and @calvinccheung
> - 8298601: Refactor archiving of java.lang.Module objects
Looks good.
-------------
Marked as reviewed by coleenp (Reviewer).
PR: https://git.openjdk.org/jdk/pull/11715
More information about the hotspot-runtime-dev
mailing list