RFR: 8298610: Refactor archiving of ConstantPool::resolved_references()

David Holmes dholmes at openjdk.org
Wed Jan 18 02:42:25 UTC 2023


On Tue, 17 Jan 2023 05:39:13 GMT, Ioi Lam <iklam at openjdk.org> wrote:

> This is another prerequisite for [JDK-8296344](https://bugs.openjdk.org/browse/JDK-8296344).
> 
> Before this PR, when archiving the objArray of `ConstantPool::resolved_references()` 
> - We call `HeapShared::find_archived_heap_object()` to look up archived copies of the Strings.
> - We allocate a copy of the objArray inside a safepoint.
> 
> This violates the requirements [1] and [2] as stated in [JDK-8298600](https://bugs.openjdk.org/browse/JDK-8298600). 
> 
> After this PR, we no longer do the above.

src/hotspot/share/cds/heapShared.cpp line 298:

> 296:   assert(UseG1GC, "implementation limitation");
> 297:   size_t sz = align_up(o->size() * HeapWordSize, ObjectAlignmentInBytes);
> 298:   size_t max = /*G1*/HeapRegion::min_region_size_in_words() * HeapWordSize;

This code needs to be inside an `INCLUDE_G1GC` guard does it not?

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

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


More information about the hotspot-runtime-dev mailing list