RFR: 8047818: G1 HeapRegions can no longer be ContiguousSpaces
Mikael Gerdin
mikael.gerdin at oracle.com
Mon Jun 23 14:26:03 UTC 2014
Hi!
When G1 is modified to unload classes without doing full collections the old
HeapRegions can contain unparseable objects. This makes ContiguousSpace
unsuitable as a base class for HeapRegion since it assumes that all objects
below _top are parseable.
Modify G1OffsetTableContigSpace to implement allocation with a separate _top
and reimplement some Space pure virtuals to make object iteration work as
expected.
This change is the last part of a set of 4 changes: 8047818, 8047819, 8047820,
8047821 which are needed to refactor the HeapRegion class and its superclasses
in order to simplify the G1 class unloading change which is coming.
This change depends on the 19, 20 and 21 changes.
Bug:
https://bugs.openjdk.java.net/browse/JDK-8047818
Webrev:
http://cr.openjdk.java.net/~mgerdin/8047818/webrev/
Notes:
The moving of set_offset_range is due to an introduced circular dependency
between g1BlockOffsetTable.inline.hpp and heapRegion.inline.hpp
Thanks
/Mikael
More information about the hotspot-gc-dev
mailing list