RFR:8206009: Move java heap object archiving code to heapShared.hpp and heapShared.cpp (original) (raw)

Jiangli Zhou jiangli.zhou at oracle.com
Thu Oct 4 18:00:33 UTC 2018


Hi Ioi,

Thanks for the review.

On 10/4/18 8:51 AM, Ioi Lam wrote:

Hi Jiangli,

The fix looks good. #if INCLUDECDSJAVAHEAP // The mirrors are NULL if HeapShared::isheapobjectarchivingallowed // is false. f->dooop(&intmirror); f->dooop(&floatmirror); Maybe the comment should be turned into an assert? There are existing asserts in Universe::initialize_basic_type_mirrors() already that verify the primitive type mirrors are not NULL when HeapShared::is_heap_object_archiving_allowed is true.

    if (UseSharedSpaces &&         HeapShared::open_archive_heap_region_mapped() &&         _int_mirror != NULL) {       assert(HeapShared::is_heap_object_archiving_allowed(), "Sanity");       assert(_float_mirror != NULL && _double_mirror != NULL &&              _byte_mirror  != NULL && _byte_mirror   != NULL &&              _bool_mirror  != NULL && _char_mirror   != NULL &&              _long_mirror  != NULL && _short_mirror  != NULL &&              _void_mirror  != NULL, "Sanity");

Also, have you tested with configure --disable-precompiled-headers? Build with --disable-precompiled-headers works without failure on linux-x64.

I will queue my change after your subgraph info hash table change for 8210388 and resolve conflicts.

Thanks, Jiangli

Thanks - Ioi

On 10/3/18 3:23 PM, Jiangli Zhou wrote: Please review the restructuring and cleanup of java heap object archiving code. The java object archiving code has grown in the past year and metaspaceShared.* files are not the suitable place. The restructuring and cleanup include: - Moved java heap object archiving implementation from metaspaceShared.* to heapShared.*. - Various isarchiveobject() APIs are renamed to isarchivedobject() for naming consistency: - Renamed MetaspaceShared::isarchiveobject() to HeapShared::isarchivedobject(). - Renamed oopDesc::isarchiveobject() to oopDesc::isarchivedobject(). - Renamed G1ArchiveAllocator::isarchiveobject() to G1ArchiveAllocator::isarchivedobject(). - Changed to use G1ArchiveAllocator::isarchivedobject() in G1CollectedHeap::materializearchivedobject(). Removed #include "memory/metaspaceShared.inline.hpp” from g1CollectedHeap.cpp. - Renamed HeapShared::archivestaticfields() to HeapShared::archiveobjectsubgraphs(). webrev: http://cr.openjdk.java.net/~jiangli/8206009/webrev.00/ RFE: https://bugs.openjdk.java.net/browse/JDK-8206009 Tested with tier1-tier3. Tier4 and tier5 are in progress. Thanks, Jiangli



More information about the hotspot-runtime-dev mailing list