RFR: 8202639: Use concrete Generation classes in SerialHeap and CMSHeap

Stefan Karlsson stefan.karlsson at oracle.com
Mon May 7 11:49:07 UTC 2018


Thanks, Erik.

StefanK

On 2018-05-07 13:29, Erik Helin wrote:
> On 05/04/2018 12:20 PM, Stefan Karlsson wrote:
>> Hi Erik,
>>
>> On 2018-05-04 12:18, Erik Österlund wrote:
>>> Hi Stefan,
>>>
>>> Nice!!
>>>
>>> Just a small nit... when downcasting the heaps and generations, could 
>>> you please use static_cast instead of C-style cast, and have an 
>>> assert that checks that the kind is indeed the expected one?
>>
>> Sure.
>>
>> http://cr.openjdk.java.net/~stefank/8202639/webrev.02/
>> http://cr.openjdk.java.net/~stefank/8202639/webrev.02.delta/
> 
> Nice cleanup, looks good, Reviewed!
> 
> Thanks,
> Erik
> 
>>>
>>> Otherwise, this looks very nice indeed.
>>
>> Thanks for reviewing!
>>
>> StefanK
>>
>>>
>>> Thanks,
>>> /Erik
>>>
>>> On 2018-05-04 11:56, Stefan Karlsson wrote:
>>>> Hi all,
>>>>
>>>> Please review this patch to add and use young_gen() and old_gen() 
>>>> functions that add returns the concrete Generation classes.
>>>>
>>>> http://cr.openjdk.java.net/~stefank/8202639/webrev.01/
>>>> https://bugs.openjdk.java.net/browse/JDK-8202639
>>>>
>>>> GenCollectedHeap contains fields for the _young_gen and _old_gen, 
>>>> with associated young_gen() and old_gen() accessors. These accessors 
>>>> return Generation*s.
>>>>
>>>> These Generations are always DefNewGeneration and TenuredGeneration 
>>>> for the Serial GC, and ParNewGeneration and 
>>>> ConcurrentMarkSweepGeneration for CMS.
>>>>
>>>> I propose that we expose two new accessors that return the concrete 
>>>> Generation classes in SerialHeap and CMSHeap.
>>>>
>>>> Working with these concrete classes will allow us to easier split 
>>>> the Serial and CMS code. Specifically, this makes it possible to 
>>>> remove ALL_SINCE_SAVE_MARKS_CLOSURES and associated macros. See:
>>>> https://bugs.openjdk.java.net/browse/JDK-8202641
>>>>
>>>> Thanks,
>>>> StefanK
>>>


More information about the hotspot-gc-dev mailing list