RFR (M): 8066780, 8066781, 8066782: Cleanup of duplicated code in TenuredGeneration and ConcurrentMarkSweepGeneration
bengt.rutisson at oracle.com
Fri Dec 5 15:18:31 UTC 2014
I was looking at the duplicated code in TenuredGeneration and
ConcurrentMarkSweepGeneration and wanted to clean it up. I decided to
split the cleanup into three parts (thanks Kim for suggesting that in a
pre-review). The parts are closely related so I think it is a good idea
to review them together. Thus, I'm asking for reviews for all three
changes in this same email.
Here are the three changes:
Split CardGeneration out to its own file
Just moving code from generations.cpp/hpp to cardGeneration.cpp/hpp.
Minor cleanups to TenuredGeneration
Removing some dead code and making sure that the include guard in the
inline file is correctly named. The _last_gc variable was exported to
the SA agent but the SA agent never referenced it.
Move common code from CMSGeneration and TenuredGeneration to CardGeneration
This is the actual move of common code from TenuredGeneration and
ConcurrentMarkSweepGeneration to CardGeneration. Both subclasses use a
single Space instance and by allowing CardGeneration to find that space
instance it was possible to move many of the methods that work on the
Space instance up to the CardGeneration too.
One of the changes is to rename the expand() method in
ConcurrentMarkSweepGeneration that took three paramteres to
expand_for_gc_reason(). I did this to avoid that anyone thinks that
ConcurrentMarkSweepGeneration overrides the CardGeneration::expand()
method. This change is included in the webrev above, but if it makes
things easier I also split it out to a separate webrev:
More information about the hotspot-gc-dev