mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8253081: G1 fails on stale objects in archived module graph in Open Archive regions
Change the handling of Open Archive areas, instead of assuming that everything in there is live always, a root containing references to all live root objects is provided. Adapt G1 to handle Open Archive regions as any other old region apart from never compacting or evacuating them. Co-authored-by: Ioi Lam <iklam@openjdk.org> Reviewed-by: kbarrett, sjohanss, redestad
This commit is contained in:
parent
c08921487b
commit
d30956055b
32 changed files with 584 additions and 230 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -417,7 +417,7 @@ class ConstantPoolCache: public MetaspaceObj {
|
|||
Array<u2>* _reference_map;
|
||||
// The narrowOop pointer to the archived resolved_references. Set at CDS dump
|
||||
// time when caching java heap object is supported.
|
||||
CDS_JAVA_HEAP_ONLY(narrowOop _archived_references;)
|
||||
CDS_JAVA_HEAP_ONLY(int _archived_references_index;)
|
||||
|
||||
// Sizing
|
||||
debug_only(friend class ClassVerifier;)
|
||||
|
@ -444,6 +444,7 @@ class ConstantPoolCache: public MetaspaceObj {
|
|||
|
||||
oop archived_references() NOT_CDS_JAVA_HEAP_RETURN_(NULL);
|
||||
void set_archived_references(oop o) NOT_CDS_JAVA_HEAP_RETURN;
|
||||
void clear_archived_references() NOT_CDS_JAVA_HEAP_RETURN;
|
||||
|
||||
inline oop resolved_references();
|
||||
void set_resolved_references(OopHandle s) { _resolved_references = s; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue