-
Enhancement
-
Resolution: Fixed
-
P4
-
17, 21, 23, 24
-
b12
We introduced this experimental tunable a long time ago. The original intent, IIRC, was to allow users to have object allocations as humongous, even if they are smaller than a heap region size. For example, if one has the array that is half the region size. This might not be useful in practice, see for example a discussion in JDK-8327097.
Having a ShenandoahHumongousThreshold less than a region size gets problematic when CDS loads the heap bypassing normal allocation paths,JDK-8293650. If CDS allocates the object that is larger than our humongous threshold, that new code would effectively allow a "humongous" object to reside in regular region. CDS would not know about this, because it thinks the largest possible object is of `MIN_GC_REGION_ALIGNMENT` size.
Thus, I think it is safer to remove this tunable altogether. There are no usage hits either externally or internally. G1 does not have a similar tunable, and instead relies on region size. Therefore, I believe this tunable is safe to remove.
Having a ShenandoahHumongousThreshold less than a region size gets problematic when CDS loads the heap bypassing normal allocation paths,
Thus, I think it is safer to remove this tunable altogether. There are no usage hits either externally or internally. G1 does not have a similar tunable, and instead relies on region size. Therefore, I believe this tunable is safe to remove.
- relates to
-
JDK-8293650 Shenandoah: Support archived heap objects
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/ef54af39
-
Commit(master) openjdk/shenandoah-jdk21u/63b4bc1a
-
Review(master) openjdk/jdk/20593
-
Review(master) openjdk/shenandoah-jdk21u/121