Simplifying the BarrierSet hierarchy
Roman Kennke
rkennke at redhat.com
Tue Nov 22 11:22:32 UTC 2016
While working on the GC interface prototype, I made a sketch of the
current BarrierSet hierarchy:
x BarrierSet
x ModRefBarrierSet
x CardTableModRefBS
x G1SATBCardTableModRefBS
g G1SATBCardTableLoggingModRefBS
p CardTableExtension
c CardTableModRefBSForCTRS
x - not used anywhere
g - used by G1
p - used by parallel
c - used by CMS
I've got a couple of questions:
- Is that correct and complete? Especially for CMS, is it only using
CardTableModRefBSForCTRS and is it the only user of that class? I am
asking, because I want to do the oop_store() refactoring as outlined in
the GC interface JEP, and if it's only used for CMS, I can move the
special oop_store() handling to there.
- Is there any reason against simplifying that hierarchy? In
particular, I would collapse unused classes like this:
x BarrierSet
x CardTableModRefBS
g G1SATBCardTableLoggingModRefBS
p CardTableExtension
c CardTableModRefBSForCTRS
I.e. merge ModRef with CardTableModRef and G1SATBCardTable with
G1SATBCardTableLogging.
Any opinions?
Cheers,
Roman
More information about the hotspot-gc-dev
mailing list