CDS has a G1-dependent code block:
// The minimum region size of all collectors that are supported by CDS in
// ArchiveHeapLoader::can_map() mode. Currently only G1 is supported. G1's region size
// depends on -Xmx, but can never be smaller than 1 * M.
// (TODO: Perhaps change to 256K to be compatible with Shenandoah)
static constexpr int MIN_GC_REGION_ALIGNMENT = 1 * M;
For Shenandoah, it would be indeed convenient to have that alignment to be trimmed to 256K. This would improveJDK-8293650.
Trimming down the min region alignment has impact on the size of the objects we can store in CDS archive. We need to explore if we hit a new threshold anywhere.
// The minimum region size of all collectors that are supported by CDS in
// ArchiveHeapLoader::can_map() mode. Currently only G1 is supported. G1's region size
// depends on -Xmx, but can never be smaller than 1 * M.
// (TODO: Perhaps change to 256K to be compatible with Shenandoah)
static constexpr int MIN_GC_REGION_ALIGNMENT = 1 * M;
For Shenandoah, it would be indeed convenient to have that alignment to be trimmed to 256K. This would improve
Trimming down the min region alignment has impact on the size of the objects we can store in CDS archive. We need to explore if we hit a new threshold anywhere.
- relates to
-
JDK-8338912 CDS: Segmented roots array
-
- Resolved
-
-
JDK-8338753 LotsOfClasses.java fails with fatal error: VM thread could block on lock that may be held by a JavaThread during safepoint: Heap_lock
-
- Closed
-
-
JDK-8293650 Shenandoah: Support archived heap objects
-
- Resolved
-
-
JDK-8340166 [REDO] CDS: Trim down minimum GC region alignment
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/59816975
-
Review(master) openjdk/jdk/20469
(1 links to)