1532 "limiter (a number between 0-100)") \ |
1533 "limiter (a number between 0-100)") \ |
1533 range(0, 100) \ |
1534 range(0, 100) \ |
1534 \ |
1535 \ |
1535 product(uint, ParallelGCThreads, 0, \ |
1536 product(uint, ParallelGCThreads, 0, \ |
1536 "Number of parallel threads parallel gc will use") \ |
1537 "Number of parallel threads parallel gc will use") \ |
|
1538 constraint(ParallelGCThreadsConstraintFunc,AfterErgo) \ |
1537 \ |
1539 \ |
1538 diagnostic(bool, UseSemaphoreGCThreadsSynchronization, true, \ |
1540 diagnostic(bool, UseSemaphoreGCThreadsSynchronization, true, \ |
1539 "Use semaphore synchronization for the GC Threads, " \ |
1541 "Use semaphore synchronization for the GC Threads, " \ |
1540 "instead of synchronization based on mutexes") \ |
1542 "instead of synchronization based on mutexes") \ |
1541 \ |
1543 \ |
1563 "How often to provoke splitting a young gen space") \ |
1565 "How often to provoke splitting a young gen space") \ |
1564 range(0, max_uintx) \ |
1566 range(0, max_uintx) \ |
1565 \ |
1567 \ |
1566 product(uint, ConcGCThreads, 0, \ |
1568 product(uint, ConcGCThreads, 0, \ |
1567 "Number of threads concurrent gc will use") \ |
1569 "Number of threads concurrent gc will use") \ |
1568 \ |
1570 constraint(ConcGCThreadsConstraintFunc,AfterErgo) \ |
1569 product(size_t, YoungPLABSize, 4096, \ |
|
1570 "Size of young gen promotion LAB's (in HeapWords)") \ |
|
1571 constraint(YoungPLABSizeConstraintFunc,AfterMemoryInit) \ |
|
1572 \ |
|
1573 product(size_t, OldPLABSize, 1024, \ |
|
1574 "Size of old gen promotion LAB's (in HeapWords), or Number \ |
|
1575 of blocks to attempt to claim when refilling CMS LAB's") \ |
|
1576 \ |
1571 \ |
1577 product(uintx, GCTaskTimeStampEntries, 200, \ |
1572 product(uintx, GCTaskTimeStampEntries, 200, \ |
1578 "Number of time stamp entries per gc worker thread") \ |
1573 "Number of time stamp entries per gc worker thread") \ |
1579 range(1, max_uintx) \ |
1574 range(1, max_uintx) \ |
1580 \ |
1575 \ |
1678 \ |
1673 \ |
1679 diagnostic(uintx, ParGCStridesPerThread, 2, \ |
1674 diagnostic(uintx, ParGCStridesPerThread, 2, \ |
1680 "The number of strides per worker thread that we divide up the " \ |
1675 "The number of strides per worker thread that we divide up the " \ |
1681 "card table scanning work into") \ |
1676 "card table scanning work into") \ |
1682 range(1, max_uintx) \ |
1677 range(1, max_uintx) \ |
|
1678 constraint(ParGCStridesPerThreadConstraintFunc,AfterErgo) \ |
1683 \ |
1679 \ |
1684 diagnostic(intx, ParGCCardsPerStrideChunk, 256, \ |
1680 diagnostic(intx, ParGCCardsPerStrideChunk, 256, \ |
1685 "The number of cards in each chunk of the parallel chunks used " \ |
1681 "The number of cards in each chunk of the parallel chunks used " \ |
1686 "during card table scanning") \ |
1682 "during card table scanning") \ |
1687 range(1, max_intx) \ |
1683 range(1, max_intx) \ |
1700 \ |
1696 \ |
1701 product(size_t, CMSOldPLABMax, 1024, \ |
1697 product(size_t, CMSOldPLABMax, 1024, \ |
1702 "Maximum size of CMS gen promotion LAB caches per worker " \ |
1698 "Maximum size of CMS gen promotion LAB caches per worker " \ |
1703 "per block size") \ |
1699 "per block size") \ |
1704 range(1, max_uintx) \ |
1700 range(1, max_uintx) \ |
|
1701 constraint(CMSOldPLABMaxConstraintFunc,AfterMemoryInit) \ |
1705 \ |
1702 \ |
1706 product(size_t, CMSOldPLABMin, 16, \ |
1703 product(size_t, CMSOldPLABMin, 16, \ |
1707 "Minimum size of CMS gen promotion LAB caches per worker " \ |
1704 "Minimum size of CMS gen promotion LAB caches per worker " \ |
1708 "per block size") \ |
1705 "per block size") \ |
1709 range(1, max_uintx) \ |
1706 range(1, max_uintx) \ |
1710 constraint(CMSOldPLABMinConstraintFunc,AfterErgo) \ |
1707 constraint(CMSOldPLABMinConstraintFunc,AfterMemoryInit) \ |
1711 \ |
1708 \ |
1712 product(uintx, CMSOldPLABNumRefills, 4, \ |
1709 product(uintx, CMSOldPLABNumRefills, 4, \ |
1713 "Nominal number of refills of CMS gen promotion LAB cache " \ |
1710 "Nominal number of refills of CMS gen promotion LAB cache " \ |
1714 "per worker per block size") \ |
1711 "per worker per block size") \ |
1715 range(1, max_uintx) \ |
1712 range(1, max_uintx) \ |
1764 "CMS: larger free blocks are always available for coalescing") \ |
1761 "CMS: larger free blocks are always available for coalescing") \ |
1765 \ |
1762 \ |
1766 product(double, FLSLargestBlockCoalesceProximity, 0.99, \ |
1763 product(double, FLSLargestBlockCoalesceProximity, 0.99, \ |
1767 "CMS: the smaller the percentage the greater the coalescing " \ |
1764 "CMS: the smaller the percentage the greater the coalescing " \ |
1768 "force") \ |
1765 "force") \ |
|
1766 range(0.0, 1.0) \ |
1769 \ |
1767 \ |
1770 product(double, CMSSmallCoalSurplusPercent, 1.05, \ |
1768 product(double, CMSSmallCoalSurplusPercent, 1.05, \ |
1771 "CMS: the factor by which to inflate estimated demand of small " \ |
1769 "CMS: the factor by which to inflate estimated demand of small " \ |
1772 "block sizes to prevent coalescing with an adjoining block") \ |
1770 "block sizes to prevent coalescing with an adjoining block") \ |
|
1771 range(0.0, DBL_MAX) \ |
1773 \ |
1772 \ |
1774 product(double, CMSLargeCoalSurplusPercent, 0.95, \ |
1773 product(double, CMSLargeCoalSurplusPercent, 0.95, \ |
1775 "CMS: the factor by which to inflate estimated demand of large " \ |
1774 "CMS: the factor by which to inflate estimated demand of large " \ |
1776 "block sizes to prevent coalescing with an adjoining block") \ |
1775 "block sizes to prevent coalescing with an adjoining block") \ |
|
1776 range(0.0, DBL_MAX) \ |
1777 \ |
1777 \ |
1778 product(double, CMSSmallSplitSurplusPercent, 1.10, \ |
1778 product(double, CMSSmallSplitSurplusPercent, 1.10, \ |
1779 "CMS: the factor by which to inflate estimated demand of small " \ |
1779 "CMS: the factor by which to inflate estimated demand of small " \ |
1780 "block sizes to prevent splitting to supply demand for smaller " \ |
1780 "block sizes to prevent splitting to supply demand for smaller " \ |
1781 "blocks") \ |
1781 "blocks") \ |
|
1782 range(0.0, DBL_MAX) \ |
1782 \ |
1783 \ |
1783 product(double, CMSLargeSplitSurplusPercent, 1.00, \ |
1784 product(double, CMSLargeSplitSurplusPercent, 1.00, \ |
1784 "CMS: the factor by which to inflate estimated demand of large " \ |
1785 "CMS: the factor by which to inflate estimated demand of large " \ |
1785 "block sizes to prevent splitting to supply demand for smaller " \ |
1786 "block sizes to prevent splitting to supply demand for smaller " \ |
1786 "blocks") \ |
1787 "blocks") \ |
|
1788 range(0.0, DBL_MAX) \ |
1787 \ |
1789 \ |
1788 product(bool, CMSExtrapolateSweep, false, \ |
1790 product(bool, CMSExtrapolateSweep, false, \ |
1789 "CMS: cushion for block demand during sweep") \ |
1791 "CMS: cushion for block demand during sweep") \ |
1790 \ |
1792 \ |
1791 product(uintx, CMS_SweepWeight, 75, \ |
1793 product(uintx, CMS_SweepWeight, 75, \ |
1809 "When CMS class unloading is enabled, the maximum CMS cycle " \ |
1811 "When CMS class unloading is enabled, the maximum CMS cycle " \ |
1810 "count for which classes may not be unloaded") \ |
1812 "count for which classes may not be unloaded") \ |
1811 \ |
1813 \ |
1812 develop(intx, CMSDictionaryChoice, 0, \ |
1814 develop(intx, CMSDictionaryChoice, 0, \ |
1813 "Use BinaryTreeDictionary as default in the CMS generation") \ |
1815 "Use BinaryTreeDictionary as default in the CMS generation") \ |
|
1816 range(0, 2) \ |
1814 \ |
1817 \ |
1815 product(uintx, CMSIndexedFreeListReplenish, 4, \ |
1818 product(uintx, CMSIndexedFreeListReplenish, 4, \ |
1816 "Replenish an indexed free list with this number of chunks") \ |
1819 "Replenish an indexed free list with this number of chunks") \ |
|
1820 range(1, max_uintx) \ |
1817 \ |
1821 \ |
1818 product(bool, CMSReplenishIntermediate, true, \ |
1822 product(bool, CMSReplenishIntermediate, true, \ |
1819 "Replenish all intermediate free-list caches") \ |
1823 "Replenish all intermediate free-list caches") \ |
1820 \ |
1824 \ |
1821 product(bool, CMSSplitIndexedFreeListBlocks, true, \ |
1825 product(bool, CMSSplitIndexedFreeListBlocks, true, \ |
1825 product(bool, CMSLoopWarn, false, \ |
1829 product(bool, CMSLoopWarn, false, \ |
1826 "Warn in case of excessive CMS looping") \ |
1830 "Warn in case of excessive CMS looping") \ |
1827 \ |
1831 \ |
1828 develop(bool, CMSOverflowEarlyRestoration, false, \ |
1832 develop(bool, CMSOverflowEarlyRestoration, false, \ |
1829 "Restore preserved marks early") \ |
1833 "Restore preserved marks early") \ |
1830 \ |
|
1831 product(size_t, MarkStackSize, NOT_LP64(32*K) LP64_ONLY(4*M), \ |
|
1832 "Size of marking stack") \ |
|
1833 \ |
1834 \ |
1834 /* where does the range max value of (max_jint - 1) come from? */ \ |
1835 /* where does the range max value of (max_jint - 1) come from? */ \ |
1835 product(size_t, MarkStackSizeMax, NOT_LP64(4*M) LP64_ONLY(512*M), \ |
1836 product(size_t, MarkStackSizeMax, NOT_LP64(4*M) LP64_ONLY(512*M), \ |
1836 "Maximum size of marking stack") \ |
1837 "Maximum size of marking stack") \ |
1837 range(1, (max_jint - 1)) \ |
1838 range(1, (max_jint - 1)) \ |
1838 \ |
1839 \ |
|
1840 product(size_t, MarkStackSize, NOT_LP64(32*K) LP64_ONLY(4*M), \ |
|
1841 "Size of marking stack") \ |
|
1842 constraint(MarkStackSizeConstraintFunc,AfterErgo) \ |
|
1843 \ |
1839 notproduct(bool, CMSMarkStackOverflowALot, false, \ |
1844 notproduct(bool, CMSMarkStackOverflowALot, false, \ |
1840 "Simulate frequent marking stack / work queue overflow") \ |
1845 "Simulate frequent marking stack / work queue overflow") \ |
1841 \ |
1846 \ |
1842 notproduct(uintx, CMSMarkStackOverflowInterval, 1000, \ |
1847 notproduct(uintx, CMSMarkStackOverflowInterval, 1000, \ |
1843 "An \"interval\" counter that determines how frequently " \ |
1848 "An \"interval\" counter that determines how frequently " \ |
1846 product(uintx, CMSMaxAbortablePrecleanLoops, 0, \ |
1851 product(uintx, CMSMaxAbortablePrecleanLoops, 0, \ |
1847 "Maximum number of abortable preclean iterations, if > 0") \ |
1852 "Maximum number of abortable preclean iterations, if > 0") \ |
1848 \ |
1853 \ |
1849 product(intx, CMSMaxAbortablePrecleanTime, 5000, \ |
1854 product(intx, CMSMaxAbortablePrecleanTime, 5000, \ |
1850 "Maximum time in abortable preclean (in milliseconds)") \ |
1855 "Maximum time in abortable preclean (in milliseconds)") \ |
|
1856 range(0, max_intx) \ |
1851 \ |
1857 \ |
1852 product(uintx, CMSAbortablePrecleanMinWorkPerIteration, 100, \ |
1858 product(uintx, CMSAbortablePrecleanMinWorkPerIteration, 100, \ |
1853 "Nominal minimum work per abortable preclean iteration") \ |
1859 "Nominal minimum work per abortable preclean iteration") \ |
1854 \ |
1860 \ |
1855 manageable(intx, CMSAbortablePrecleanWaitMillis, 100, \ |
1861 manageable(intx, CMSAbortablePrecleanWaitMillis, 100, \ |
1856 "Time that we sleep between iterations when not given " \ |
1862 "Time that we sleep between iterations when not given " \ |
1857 "enough work per iteration") \ |
1863 "enough work per iteration") \ |
|
1864 range(0, max_intx) \ |
1858 \ |
1865 \ |
1859 product(size_t, CMSRescanMultiple, 32, \ |
1866 product(size_t, CMSRescanMultiple, 32, \ |
1860 "Size (in cards) of CMS parallel rescan task") \ |
1867 "Size (in cards) of CMS parallel rescan task") \ |
1861 range(1, max_uintx) \ |
1868 range(1, max_uintx) \ |
1862 \ |
1869 \ |
1959 develop(bool, CMSTraceSweeper, false, \ |
1966 develop(bool, CMSTraceSweeper, false, \ |
1960 "Trace some actions of the CMS sweeper") \ |
1967 "Trace some actions of the CMS sweeper") \ |
1961 \ |
1968 \ |
1962 product(uintx, CMSWorkQueueDrainThreshold, 10, \ |
1969 product(uintx, CMSWorkQueueDrainThreshold, 10, \ |
1963 "Don't drain below this size per parallel worker/thief") \ |
1970 "Don't drain below this size per parallel worker/thief") \ |
|
1971 range(1, max_juint) \ |
|
1972 constraint(CMSWorkQueueDrainThresholdConstraintFunc,AfterErgo) \ |
1964 \ |
1973 \ |
1965 manageable(intx, CMSWaitDuration, 2000, \ |
1974 manageable(intx, CMSWaitDuration, 2000, \ |
1966 "Time in milliseconds that CMS thread waits for young GC") \ |
1975 "Time in milliseconds that CMS thread waits for young GC") \ |
1967 \ |
1976 \ |
1968 develop(uintx, CMSCheckInterval, 1000, \ |
1977 develop(uintx, CMSCheckInterval, 1000, \ |
2210 develop(bool, TraceAdaptiveGCBoundary, false, \ |
2219 develop(bool, TraceAdaptiveGCBoundary, false, \ |
2211 "Trace young-old boundary moves") \ |
2220 "Trace young-old boundary moves") \ |
2212 \ |
2221 \ |
2213 develop(intx, PSAdaptiveSizePolicyResizeVirtualSpaceAlot, -1, \ |
2222 develop(intx, PSAdaptiveSizePolicyResizeVirtualSpaceAlot, -1, \ |
2214 "Resize the virtual spaces of the young or old generations") \ |
2223 "Resize the virtual spaces of the young or old generations") \ |
|
2224 range(-1, 1) \ |
2215 \ |
2225 \ |
2216 product(uintx, AdaptiveSizeThroughPutPolicy, 0, \ |
2226 product(uintx, AdaptiveSizeThroughPutPolicy, 0, \ |
2217 "Policy for changing generation size for throughput goals") \ |
2227 "Policy for changing generation size for throughput goals") \ |
|
2228 range(0, 1) \ |
2218 \ |
2229 \ |
2219 develop(bool, PSAdjustTenuredGenForMinorPause, false, \ |
2230 develop(bool, PSAdjustTenuredGenForMinorPause, false, \ |
2220 "Adjust tenured generation to achieve a minor pause goal") \ |
2231 "Adjust tenured generation to achieve a minor pause goal") \ |
2221 \ |
2232 \ |
2222 develop(bool, PSAdjustYoungGenForMajorPause, false, \ |
2233 develop(bool, PSAdjustYoungGenForMajorPause, false, \ |
2284 range(1, max_uintx) \ |
2295 range(1, max_uintx) \ |
2285 \ |
2296 \ |
2286 product(uintx, MaxGCPauseMillis, max_uintx, \ |
2297 product(uintx, MaxGCPauseMillis, max_uintx, \ |
2287 "Adaptive size policy maximum GC pause time goal in millisecond, "\ |
2298 "Adaptive size policy maximum GC pause time goal in millisecond, "\ |
2288 "or (G1 Only) the maximum GC time per MMU time slice") \ |
2299 "or (G1 Only) the maximum GC time per MMU time slice") \ |
|
2300 range(1, max_uintx) \ |
|
2301 constraint(MaxGCPauseMillisConstraintFunc,AfterMemoryInit) \ |
2289 \ |
2302 \ |
2290 product(uintx, GCPauseIntervalMillis, 0, \ |
2303 product(uintx, GCPauseIntervalMillis, 0, \ |
2291 "Time slice for MMU specification") \ |
2304 "Time slice for MMU specification") \ |
|
2305 constraint(GCPauseIntervalMillisConstraintFunc,AfterMemoryInit) \ |
2292 \ |
2306 \ |
2293 product(uintx, MaxGCMinorPauseMillis, max_uintx, \ |
2307 product(uintx, MaxGCMinorPauseMillis, max_uintx, \ |
2294 "Adaptive size policy maximum GC minor pause time goal " \ |
2308 "Adaptive size policy maximum GC minor pause time goal " \ |
2295 "in millisecond") \ |
2309 "in millisecond") \ |
2296 \ |
2310 \ |
2307 product(uintx, AdaptiveSizeMajorGCDecayTimeScale, 10, \ |
2321 product(uintx, AdaptiveSizeMajorGCDecayTimeScale, 10, \ |
2308 "Time scale over which major costs decay") \ |
2322 "Time scale over which major costs decay") \ |
2309 \ |
2323 \ |
2310 product(uintx, MinSurvivorRatio, 3, \ |
2324 product(uintx, MinSurvivorRatio, 3, \ |
2311 "Minimum ratio of young generation/survivor space size") \ |
2325 "Minimum ratio of young generation/survivor space size") \ |
|
2326 range(3, max_uintx) \ |
2312 \ |
2327 \ |
2313 product(uintx, InitialSurvivorRatio, 8, \ |
2328 product(uintx, InitialSurvivorRatio, 8, \ |
2314 "Initial ratio of young generation/survivor space size") \ |
2329 "Initial ratio of young generation/survivor space size") \ |
2315 \ |
2330 \ |
2316 product(size_t, BaseFootPrintEstimate, 256*M, \ |
2331 product(size_t, BaseFootPrintEstimate, 256*M, \ |
2330 "OutOfMemoryError is thrown (used with GCTimeLimit)") \ |
2345 "OutOfMemoryError is thrown (used with GCTimeLimit)") \ |
2331 range(0, 100) \ |
2346 range(0, 100) \ |
2332 \ |
2347 \ |
2333 develop(uintx, AdaptiveSizePolicyGCTimeLimitThreshold, 5, \ |
2348 develop(uintx, AdaptiveSizePolicyGCTimeLimitThreshold, 5, \ |
2334 "Number of consecutive collections before gc time limit fires") \ |
2349 "Number of consecutive collections before gc time limit fires") \ |
|
2350 range(1, max_uintx) \ |
2335 \ |
2351 \ |
2336 product(bool, PrintAdaptiveSizePolicy, false, \ |
2352 product(bool, PrintAdaptiveSizePolicy, false, \ |
2337 "Print information about AdaptiveSizePolicy") \ |
2353 "Print information about AdaptiveSizePolicy") \ |
2338 \ |
2354 \ |
2339 product(intx, PrefetchCopyIntervalInBytes, -1, \ |
2355 product(intx, PrefetchCopyIntervalInBytes, -1, \ |
2429 "Print timestamps for individual gc worker thread tasks") \ |
2445 "Print timestamps for individual gc worker thread tasks") \ |
2430 \ |
2446 \ |
2431 develop(intx, ConcGCYieldTimeout, 0, \ |
2447 develop(intx, ConcGCYieldTimeout, 0, \ |
2432 "If non-zero, assert that GC threads yield within this " \ |
2448 "If non-zero, assert that GC threads yield within this " \ |
2433 "number of milliseconds") \ |
2449 "number of milliseconds") \ |
|
2450 range(0, max_intx) \ |
2434 \ |
2451 \ |
2435 product(bool, PrintReferenceGC, false, \ |
2452 product(bool, PrintReferenceGC, false, \ |
2436 "Print times spent handling reference objects during GC " \ |
2453 "Print times spent handling reference objects during GC " \ |
2437 "(enabled only when PrintGCDetails)") \ |
2454 "(enabled only when PrintGCDetails)") \ |
2438 \ |
2455 \ |
2467 "Trace class loader loader_data lifetime") \ |
2484 "Trace class loader loader_data lifetime") \ |
2468 \ |
2485 \ |
2469 product(size_t, InitialBootClassLoaderMetaspaceSize, \ |
2486 product(size_t, InitialBootClassLoaderMetaspaceSize, \ |
2470 NOT_LP64(2200*K) LP64_ONLY(4*M), \ |
2487 NOT_LP64(2200*K) LP64_ONLY(4*M), \ |
2471 "Initial size of the boot class loader data metaspace") \ |
2488 "Initial size of the boot class loader data metaspace") \ |
|
2489 range(30*K, max_uintx/BytesPerWord) \ |
|
2490 constraint(InitialBootClassLoaderMetaspaceSizeConstraintFunc, AfterErgo)\ |
2472 \ |
2491 \ |
2473 product(bool, TraceYoungGenTime, false, \ |
2492 product(bool, TraceYoungGenTime, false, \ |
2474 "Trace accumulated time for young collection") \ |
2493 "Trace accumulated time for young collection") \ |
2475 \ |
2494 \ |
2476 product(bool, TraceOldGenTime, false, \ |
2495 product(bool, TraceOldGenTime, false, \ |
2543 "by JNI critical section") \ |
2562 "by JNI critical section") \ |
2544 \ |
2563 \ |
2545 experimental(double, ObjectCountCutOffPercent, 0.5, \ |
2564 experimental(double, ObjectCountCutOffPercent, 0.5, \ |
2546 "The percentage of the used heap that the instances of a class " \ |
2565 "The percentage of the used heap that the instances of a class " \ |
2547 "must occupy for the class to generate a trace event") \ |
2566 "must occupy for the class to generate a trace event") \ |
|
2567 range(0.0, 100.0) \ |
2548 \ |
2568 \ |
2549 /* GC log rotation setting */ \ |
2569 /* GC log rotation setting */ \ |
2550 \ |
2570 \ |
2551 product(bool, UseGCLogFileRotation, false, \ |
2571 product(bool, UseGCLogFileRotation, false, \ |
2552 "Rotate gclog files (for long running applications). It requires "\ |
2572 "Rotate gclog files (for long running applications). It requires "\ |
3253 "Size in K to allocate for the Profile Nodes of each thread") \ |
3273 "Size in K to allocate for the Profile Nodes of each thread") \ |
3254 \ |
3274 \ |
3255 /* gc parameters */ \ |
3275 /* gc parameters */ \ |
3256 product(size_t, InitialHeapSize, 0, \ |
3276 product(size_t, InitialHeapSize, 0, \ |
3257 "Initial heap size (in bytes); zero means use ergonomics") \ |
3277 "Initial heap size (in bytes); zero means use ergonomics") \ |
|
3278 constraint(InitialHeapSizeConstraintFunc,AfterErgo) \ |
3258 \ |
3279 \ |
3259 product(size_t, MaxHeapSize, ScaleForWordSize(96*M), \ |
3280 product(size_t, MaxHeapSize, ScaleForWordSize(96*M), \ |
3260 "Maximum heap size (in bytes)") \ |
3281 "Maximum heap size (in bytes)") \ |
|
3282 constraint(MaxHeapSizeConstraintFunc,AfterErgo) \ |
3261 \ |
3283 \ |
3262 product(size_t, OldSize, ScaleForWordSize(4*M), \ |
3284 product(size_t, OldSize, ScaleForWordSize(4*M), \ |
3263 "Initial tenured generation size (in bytes)") \ |
3285 "Initial tenured generation size (in bytes)") \ |
3264 \ |
3286 \ |
3265 product(size_t, NewSize, ScaleForWordSize(1*M), \ |
3287 product(size_t, NewSize, ScaleForWordSize(1*M), \ |
3266 "Initial new generation size (in bytes)") \ |
3288 "Initial new generation size (in bytes)") \ |
|
3289 constraint(NewSizeConstraintFunc,AfterErgo) \ |
3267 \ |
3290 \ |
3268 product(size_t, MaxNewSize, max_uintx, \ |
3291 product(size_t, MaxNewSize, max_uintx, \ |
3269 "Maximum new generation size (in bytes), max_uintx means set " \ |
3292 "Maximum new generation size (in bytes), max_uintx means set " \ |
3270 "ergonomically") \ |
3293 "ergonomically") \ |
3271 \ |
3294 \ |
3272 product(size_t, PretenureSizeThreshold, 0, \ |
3295 product(size_t, PretenureSizeThreshold, 0, \ |
3273 "Maximum size in bytes of objects allocated in DefNew " \ |
3296 "Maximum size in bytes of objects allocated in DefNew " \ |
3274 "generation; zero means no maximum") \ |
3297 "generation; zero means no maximum") \ |
3275 \ |
3298 \ |
3276 product(size_t, TLABSize, 0, \ |
|
3277 "Starting TLAB size (in bytes); zero means set ergonomically") \ |
|
3278 \ |
|
3279 product(size_t, MinTLABSize, 2*K, \ |
3299 product(size_t, MinTLABSize, 2*K, \ |
3280 "Minimum allowed TLAB size (in bytes)") \ |
3300 "Minimum allowed TLAB size (in bytes)") \ |
3281 range(1, max_uintx) \ |
3301 range(1, max_uintx) \ |
|
3302 constraint(MinTLABSizeConstraintFunc,AfterMemoryInit) \ |
|
3303 \ |
|
3304 product(size_t, TLABSize, 0, \ |
|
3305 "Starting TLAB size (in bytes); zero means set ergonomically") \ |
|
3306 constraint(TLABSizeConstraintFunc,AfterMemoryInit) \ |
|
3307 \ |
|
3308 product(size_t, YoungPLABSize, 4096, \ |
|
3309 "Size of young gen promotion LAB's (in HeapWords)") \ |
|
3310 constraint(YoungPLABSizeConstraintFunc,AfterMemoryInit) \ |
|
3311 \ |
|
3312 product(size_t, OldPLABSize, 1024, \ |
|
3313 "Size of old gen promotion LAB's (in HeapWords), or Number " \ |
|
3314 "of blocks to attempt to claim when refilling CMS LAB's") \ |
|
3315 constraint(OldPLABSizeConstraintFunc,AfterMemoryInit) \ |
3282 \ |
3316 \ |
3283 product(uintx, TLABAllocationWeight, 35, \ |
3317 product(uintx, TLABAllocationWeight, 35, \ |
3284 "Allocation averaging weight") \ |
3318 "Allocation averaging weight") \ |
3285 range(0, 100) \ |
3319 range(0, 100) \ |
3286 \ |
3320 \ |
3297 product(uintx, TLABWasteIncrement, 4, \ |
3331 product(uintx, TLABWasteIncrement, 4, \ |
3298 "Increment allowed waste at slow allocation") \ |
3332 "Increment allowed waste at slow allocation") \ |
3299 \ |
3333 \ |
3300 product(uintx, SurvivorRatio, 8, \ |
3334 product(uintx, SurvivorRatio, 8, \ |
3301 "Ratio of eden/survivor space size") \ |
3335 "Ratio of eden/survivor space size") \ |
|
3336 range(1, max_uintx-2) \ |
|
3337 constraint(SurvivorRatioConstraintFunc,AfterMemoryInit) \ |
3302 \ |
3338 \ |
3303 product(uintx, NewRatio, 2, \ |
3339 product(uintx, NewRatio, 2, \ |
3304 "Ratio of old/new generation sizes") \ |
3340 "Ratio of old/new generation sizes") \ |
|
3341 range(0, max_uintx-1) \ |
3305 \ |
3342 \ |
3306 product_pd(size_t, NewSizeThreadIncrease, \ |
3343 product_pd(size_t, NewSizeThreadIncrease, \ |
3307 "Additional size added to desired new generation size per " \ |
3344 "Additional size added to desired new generation size per " \ |
3308 "non-daemon thread (in bytes)") \ |
3345 "non-daemon thread (in bytes)") \ |
3309 \ |
3346 \ |
3310 product_pd(size_t, MetaspaceSize, \ |
3347 product_pd(size_t, MetaspaceSize, \ |
3311 "Initial size of Metaspaces (in bytes)") \ |
3348 "Initial size of Metaspaces (in bytes)") \ |
|
3349 constraint(MetaspaceSizeConstraintFunc,AfterErgo) \ |
3312 \ |
3350 \ |
3313 product(size_t, MaxMetaspaceSize, max_uintx, \ |
3351 product(size_t, MaxMetaspaceSize, max_uintx, \ |
3314 "Maximum size of Metaspaces (in bytes)") \ |
3352 "Maximum size of Metaspaces (in bytes)") \ |
|
3353 constraint(MaxMetaspaceSizeConstraintFunc,AfterErgo) \ |
3315 \ |
3354 \ |
3316 product(size_t, CompressedClassSpaceSize, 1*G, \ |
3355 product(size_t, CompressedClassSpaceSize, 1*G, \ |
3317 "Maximum size of class area in Metaspace when compressed " \ |
3356 "Maximum size of class area in Metaspace when compressed " \ |
3318 "class pointers are used") \ |
3357 "class pointers are used") \ |
3319 range(1*M, 3*G) \ |
3358 range(1*M, 3*G) \ |
3332 range(0, 100) \ |
3371 range(0, 100) \ |
3333 constraint(MaxHeapFreeRatioConstraintFunc,AfterErgo) \ |
3372 constraint(MaxHeapFreeRatioConstraintFunc,AfterErgo) \ |
3334 \ |
3373 \ |
3335 product(intx, SoftRefLRUPolicyMSPerMB, 1000, \ |
3374 product(intx, SoftRefLRUPolicyMSPerMB, 1000, \ |
3336 "Number of milliseconds per MB of free space in the heap") \ |
3375 "Number of milliseconds per MB of free space in the heap") \ |
|
3376 range(0, max_intx) \ |
|
3377 constraint(SoftRefLRUPolicyMSPerMBConstraintFunc,AfterMemoryInit) \ |
3337 \ |
3378 \ |
3338 product(size_t, MinHeapDeltaBytes, ScaleForWordSize(128*K), \ |
3379 product(size_t, MinHeapDeltaBytes, ScaleForWordSize(128*K), \ |
3339 "The minimum change in heap space due to GC (in bytes)") \ |
3380 "The minimum change in heap space due to GC (in bytes)") \ |
3340 \ |
3381 \ |
3341 product(size_t, MinMetaspaceExpansion, ScaleForWordSize(256*K), \ |
3382 product(size_t, MinMetaspaceExpansion, ScaleForWordSize(256*K), \ |
3363 diagnostic(uintx, VerifyGCStartAt, 0, \ |
3404 diagnostic(uintx, VerifyGCStartAt, 0, \ |
3364 "GC invoke count where +VerifyBefore/AfterGC kicks in") \ |
3405 "GC invoke count where +VerifyBefore/AfterGC kicks in") \ |
3365 \ |
3406 \ |
3366 diagnostic(intx, VerifyGCLevel, 0, \ |
3407 diagnostic(intx, VerifyGCLevel, 0, \ |
3367 "Generation level at which to start +VerifyBefore/AfterGC") \ |
3408 "Generation level at which to start +VerifyBefore/AfterGC") \ |
|
3409 range(0, 1) \ |
3368 \ |
3410 \ |
3369 product(uintx, MaxTenuringThreshold, 15, \ |
3411 product(uintx, MaxTenuringThreshold, 15, \ |
3370 "Maximum value for tenuring threshold") \ |
3412 "Maximum value for tenuring threshold") \ |
3371 range(0, markOopDesc::max_age + 1) \ |
3413 range(0, markOopDesc::max_age + 1) \ |
3372 constraint(MaxTenuringThresholdConstraintFunc,AfterErgo) \ |
3414 constraint(MaxTenuringThresholdConstraintFunc,AfterErgo) \ |
3421 product(intx, DeferPollingPageLoopCount, -1, \ |
3463 product(intx, DeferPollingPageLoopCount, -1, \ |
3422 "(Unsafe,Unstable) Number of iterations in safepoint loop " \ |
3464 "(Unsafe,Unstable) Number of iterations in safepoint loop " \ |
3423 "before changing safepoint polling page to RO ") \ |
3465 "before changing safepoint polling page to RO ") \ |
3424 \ |
3466 \ |
3425 product(intx, SafepointSpinBeforeYield, 2000, "(Unstable)") \ |
3467 product(intx, SafepointSpinBeforeYield, 2000, "(Unstable)") \ |
|
3468 range(0, max_intx) \ |
3426 \ |
3469 \ |
3427 product(bool, PSChunkLargeArrays, true, \ |
3470 product(bool, PSChunkLargeArrays, true, \ |
3428 "Process large arrays in chunks") \ |
3471 "Process large arrays in chunks") \ |
3429 \ |
3472 \ |
3430 product(uintx, GCDrainStackTargetSize, 64, \ |
3473 product(uintx, GCDrainStackTargetSize, 64, \ |