RFR:8206009: Move java heap object archiving code to heapShared.hpp and heapShared.cpp
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 INCLUDE_CDS_JAVA_HEAP
> // The mirrors are NULL if HeapShared::is_heap_object_archiving_allowed
> // is false.
> f->do_oop(&_int_mirror);
> f->do_oop(&_float_mirror);
>
> 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 is_archive_object() APIs are renamed to
>> is_archived_object() for naming consistency:
>> - Renamed MetaspaceShared::is_archive_object() to
>> HeapShared::is_archived_object().
>> - Renamed oopDesc::is_archive_object() to
>> oopDesc::is_archived_object().
>> - Renamed G1ArchiveAllocator::is_archive_object() to
>> G1ArchiveAllocator::is_archived_object().
>> - Changed to use G1ArchiveAllocator::is_archived_object() in
>> G1CollectedHeap::materialize_archived_object(). Removed #include
>> "memory/metaspaceShared.inline.hpp” from g1CollectedHeap.cpp.
>> - Renamed HeapShared::archive_static_fields() to
>> HeapShared::archive_object_subgraphs().
>>
>> 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