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

Erik Österlund erik.osterlund at oracle.com
Fri May 4 10:18:19 UTC 2018

Hi Stefan,


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?

Otherwise, this looks very nice indeed.


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