RFR: 8047818: G1 HeapRegions can no longer be ContiguousSpaces
jon.masamitsu at oracle.com
Tue Jun 24 14:26:52 UTC 2014
Did you consider creating a base class for ContiguousSpace and
G1OffsetTableContigSpace that has a _top but does not assume
Could allocate_inner() have been called allocate_impl() as it is
in ContiguousSpace? I don't know what the "inner" in the name
is telling me.
I've just started on the review so more to come.
On 06/23/2014 07:26 AM, Mikael Gerdin wrote:
> 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
> 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.
> The moving of set_offset_range is due to an introduced circular dependency
> between g1BlockOffsetTable.inline.hpp and heapRegion.inline.hpp
More information about the hotspot-gc-dev