JDK-8142341 : GC: current flags need ranges to be implemented
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2015-11-09
  • Updated: 2015-12-24
  • Resolved: 2015-12-07
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 9
9 b99Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
This is new requirement to fill 'range' for current all GC flags.

And these flags can be found by below command.

$java -XX:+PrintFlagsRanges -version | grep "\[  "

Un-implemented flags are: 

GC uintx AdaptiveSizeMajorGCDecayTimeScale [ ... ] {product} 
GC uintx AdaptiveSizePolicyCollectionCostMargin [ ... ] {product} 
GC uintx AdaptiveSizePolicyInitializingSteps [ ... ] {product} 
GC uintx AdaptiveSizePolicyOutputInterval [ ... ] {product} 
GC uintx AutoGCSelectPauseMillis [ ... ] {product} 
GC size_t BaseFootPrintEstimate [ ... ] {product} 
GC uintx CMSAbortablePrecleanMinWorkPerIteration [ ... ] {product} 
GC uintx CMSClassUnloadingMaxInterval [ ... ] {product} 
GC uintx CMSCoordinatorYieldSleepCount [ ... ] {product} 
GC uintx CMSMaxAbortablePrecleanLoops [ ... ] {product} 
GC uintx CMSOldPLABReactivityFactor [ ... ] {product} 
GC size_t CMSScheduleRemarkEdenSizeThreshold [ ... ] {product} 
GC intx CMSWaitDuration [ ... ] {manageable} 
GC uintx CMSYieldSleepCount [ ... ] {product} 
GC uintx CMS_FLSPadding [ ... ] {product} 
GC uintx CMS_SweepPadding [ ... ] {product} 
GC uintx CMS_SweepTimerThresholdMillis [ ... ] {product} 
GC uintx CPUForCMSThread [ ... ] {diagnostic} 
GC uint ConcGCThreads [ ... ] {product} 
GC size_t ErgoHeapSizeLimit [ ... ] {product} 
GC intx G1ConcRefinementThresholdStep [ ... ] {product} 
GC uintx G1MixedGCCountTarget [ ... ] {product} 
GC uintx GCDrainStackTargetSize [ ... ] {product} 
GC uintx GCLockerRetryAllocationCount [ ... ] {diagnostic} 
GC size_t GCLogFileSize [ ... ] {product} 
GC uintx GCPauseIntervalMillis [ ... ] {product} 
GC uintx GCTimeRatio [ ... ] {product} 
GC size_t HeapBaseMinAddress [ ... ] {pd product} 
GC uintx HeapFirstMaximumCompactionCount [ ... ] {product} 
GC uintx HeapMaximumCompactionInterval [ ... ] {product} 
GC size_t InitialHeapSize [ ... ] {product} 
GC uintx InitialSurvivorRatio [ ... ] {product} 
GC size_t LargePageHeapSizeThreshold [ ... ] {product} 
GC size_t LargePageSizeInBytes [ ... ] {product} 
GC size_t MarkStackSize [ ... ] {product} 
GC uintx MaxGCMinorPauseMillis [ ... ] {product} 
GC size_t MaxHeapSize [ ... ] {product} 
GC size_t MaxMetaspaceExpansion [ ... ] {product} 
GC size_t MaxMetaspaceSize [ ... ] {product} 
GC size_t MaxNewSize [ ... ] {product} 
GC size_t MetaspaceSize [ ... ] {pd product} 
GC size_t MinHeapDeltaBytes [ ... ] {product} 
GC size_t MinMetaspaceExpansion [ ... ] {product} 
GC size_t NewSize [ ... ] {product} 
GC size_t NewSizeThreadIncrease [ ... ] {pd product} 
GC size_t NUMAInterleaveGranularity [ ... ] {product} 
GC uintx NUMAPageScanRate [ ... ] {product} 
GC size_t NUMASpaceResizeRate [ ... ] {product} 
GC uintx NumberOfGCLogFiles [ ... ] {product} 
GC size_t OldPLABSize [ ... ] {product} 
GC size_t OldSize [ ... ] {product} 
GC uintx ParGCDesiredObjsFromOverflowList [ ... ] {product} 
GC uint ParallelGCThreads [ ... ] {product} 
GC uintx PausePadding [ ... ] {product} 
GC intx PrefetchCopyIntervalInBytes [ ... ] {product} 
GC intx PrefetchFieldsAhead [ ... ] {product} 
GC intx PrefetchScanIntervalInBytes [ ... ] {product} 
GC size_t PretenureSizeThreshold [ ... ] {product} 
GC intx PrintCMSStatistics [ ... ] {product} 
GC intx PrintFLSCensus [ ... ] {product} 
GC intx PrintFLSStatistics [ ... ] {product} 
GC uintx ProcessDistributionStride [ ... ] {product}
GC uintx PromotedPadding [ ... ] {product} 
GC uintx QueuedAllocationWarningCount [ ... ] {product} 
GC uintx SurvivorPadding [ ... ] {product} 
GC size_t TLABSize [ ... ] {product} 
GC uintx TLABWasteIncrement [ ... ] {product} 
GC uintx VerifyGCStartAt [ ... ] {diagnostic} 
GC size_t YoungPLABSize [ ... ] {product}
Comments
All GC flags should have 'range' or 'constraint' (new requirement).
13-11-2015

Here is what I think the ranges for the following flags should be: size_t NUMAInterleaveGranularity [ 1*K ... 128*M ] {product} uintx NUMAPageScanRate [ 32 ... 1024 ] {product} size_t NUMASpaceResizeRate [ 1*M ... 8*G ] {product} uintx ProcessDistributionStride [ 1 ... 4096 ] {product} (according to Gerald Thornbrugh)
10-11-2015

Added the following NUMA related flags to GC: GC size_t NUMAInterleaveGranularity [ ... ] {product} GC uintx NUMAPageScanRate [ ... ] {product} GC size_t NUMASpaceResizeRate [ ... ] {product} and this one: GC uintx ProcessDistributionStride [ ... ] {product}
10-11-2015

Added the following Heap related flags to GC: GC size_t ErgoHeapSizeLimit [ ... ] {product} GC size_t HeapBaseMinAddress [ ... ] {pd product} GC size_t LargePageHeapSizeThreshold [ ... ] {product} GC size_t LargePageSizeInBytes [ ... ] {product} GC size_t MaxHeapSize [ ... ] {product}
10-11-2015

The flags with just constraint, but no range, if any should have a default(MIN, MAX) range specified.
09-11-2015