JDK-8275056 : Virtualize G1CardSet containers over heap region
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 18
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2021-10-11
  • Updated: 2022-05-18
  • Resolved: 2021-11-15
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 18
18 b24Fixed
Related Reports
Blocks :  
Blocks :  
Blocks :  
CSR :  
Duplicate :  
Relates :  
Relates :  
Relates :  
Sub Tasks
JDK-8276929 :  
Description
Currently there is a 1:1 mapping between the area G1CardSet can cover and the size of a heap region.
This in effect limits heap region size to the maximum any container can cover, i.e. 2^16 cards, i.e. 2^25 bytes = 32MB.

This is an unnecessary restriction since introduction of JDK-8017163. G1CardSet may as well use "virtual" regions, i.e. subdivide the heap region size in chunks of the size of the maximum any container can cover.

This change also allows arbitrary combinations of the card table size with any heap region size (unless otherwise limited) currently investigated in JDK-8272773.
Comments
Changeset: 1830b8da Author: Thomas Schatzl <tschatzl@openjdk.org> Date: 2021-11-15 18:09:32 +0000 URL: https://git.openjdk.java.net/jdk/commit/1830b8da9028af430ee4791f310b5fc9cb1ff37d
15-11-2021