RFR: 8047818: G1 HeapRegions can no longer be ContiguousSpaces

Jon Masamitsu jon.masamitsu at oracle.com
Wed Jun 25 14:04:13 UTC 2014


On 6/24/2014 11:56 PM, Mikael Gerdin wrote:
> [...]
> Similar to block_is_obj this is currently the same as the ContiguousSpace
> variant. When G1 class unloading is integrated the implementation will change.
>
> The other declarations of block_size are not that clearly specified, can you
> elaborate on what kind of specification you are looking for?

The specification you put in was fine.   I just wanted it clearer about the
action when p >= top (in which case, to me, "block_size" is not a
particularly descriptive name, never has been).

Thanks.

Jon

>
> /Mikael
>
>> Jon
>>
>>>> I've just started on the review so more to come.
>>> Great!
>>>
>>> Thanks
>>> /Mikael
>>>
>>>> Jon
>>>>
>>>> On 06/23/2014 07:26 AM, Mikael Gerdin wrote:
>>>>> 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