JDK-8234534 : Simplify CardTable code after CMS removal
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 14
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2019-11-20
  • Updated: 2025-01-16
  • Resolved: 2021-02-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 17
17 b09Fixed
Related Reports
Blocks :  
Relates :  
Relates :  
Description
Now that CMS is gone, there is a bunch of CardTable code that does different things depending on whether it is scanned concurrently or not. To a large extent, the complexity in this code was driven by the fact that you could run CMS with precleaning. That code is now gone, and this can be simplified a lot.
Comments
Changeset: 78b0d327 Author: Thomas Schatzl <tschatzl@openjdk.org> Date: 2021-02-05 08:33:32 +0000 URL: https://git.openjdk.java.net/jdk/commit/78b0d327
05-02-2021

CardTable::precleaned_card is no longer needed, since CMS has been removed. CardTableRS::prepare_for_younger_refs_iterate is no longer ever called with a true value for the parallel argument. This also means private find_unused_youngergenP_card_value is no longer ever called. So the CardTableRS::youngergenP{1,2,3}_card are no longer needed. The stuff around CardTableRS::is_prev_youngergen_card_val() may also be dead. The youngergenP stuff is also releated to / covered by JDK-8064876.
30-12-2019