JDK-8368948 : G1: Investigate not initializing the second card table in case of no refinement
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2025-09-30
  • Updated: 2025-10-03
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.
Other
tbdUnresolved
Related Reports
Relates :  
Relates :  
Description
With JDK-8342382 G1 uses two card tables that are used alternatively as the actual card table, and the "refinement" table.

In a fairly large amount of applications, the refinement never kicks in, so the second card table is kind of wasted memory a lot of times.

Investigate whether the second card table could not be initialized if not needed.

Currently, during GC, we use the second card table to store evacuation failure results and the next cards for simplicity. I think the cards generated during gc are disjunct from the cards scanned during gc, so probably this is not a problem.

Could save the extra memory in a lot of cases.