JDK-8338444 : Shenandoah: Remove ShenandoahHumongousThreshold tunable
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 17,21,23,24
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2024-08-15
  • Updated: 2024-08-26
  • Resolved: 2024-08-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 24
24 b12Fixed
Related Reports
Relates :  
Description
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.
Comments
Changeset: ef54af39 Branch: master Author: Aleksey Shipilev <shade@openjdk.org> Date: 2024-08-15 16:45:43 +0000 URL: https://git.openjdk.org/jdk/commit/ef54af39883e76c80a3e012ed91b90973da51bb4
15-08-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/20593 Date: 2024-08-15 11:10:03 +0000
15-08-2024