Today, both Parallel, CMS and Serial share the same code for its card marking barrier. However, they have different requirements how to manage its card tables. And as the card table is embedded as a part of the CardTableModRefBS barrier set, this has led to an unnecessary inheritance hierarchy for CardTableModRefBS, where for example CardTableModRefBSForCTRS and CardTableExtension are subclasses that do not change anything to do with the barriers.
To clean up the code, there should really be a separate CardTable hierarchy that contains the differences how to manage the card table, and simply let CardTableModRefBS have a CardTable. This would allow removing CardTableModRefBSForCTRS and CardTableExtension and their references from shared code.
To clean up the code, there should really be a separate CardTable hierarchy that contains the differences how to manage the card table, and simply let CardTableModRefBS have a CardTable. This would allow removing CardTableModRefBSForCTRS and CardTableExtension and their references from shared code.
- blocks
-
JDK-8195148 Collapse G1SATBCardTableModRefBS and G1SATBCardTableLoggingModRefBS into a single G1BarrierSet
- Resolved
- relates to
-
JDK-8198750 [s390+x86_32+aarch64] Fix build after jdk-8195142
- Closed