comparison src/share/vm/runtime/globals.hpp @ 1837:c99c53f07c14

6692906: CMS: parallel concurrent marking may be prone to hanging or stalling mutators for periods of time Summary: Inserted missing yield(check)s in closures used during the work-stealing phase of parallel concurrent marking, a missing synchronous yield-request in the cms perm gen allocation path, and a terminator-terminator for the offer_termination invocation that monitors the yield status of the concurrent marking task. Elaborated some documentation comments and made some task queue termination loop flags configurable at start-up to aid debugging in the field. Reviewed-by: jmasa, johnc, poonam
author ysr
date Wed, 29 Sep 2010 16:17:02 -0700
parents 894b1d7c7e01
children 0715f0cf171d
comparison
equal deleted inserted replaced
1836:894b1d7c7e01 1837:c99c53f07c14
277 // be able to build a fully supported product that nonetheless also 277 // be able to build a fully supported product that nonetheless also
278 // ships with some unsupported, lightly tested, experimental features. 278 // ships with some unsupported, lightly tested, experimental features.
279 // Like the UnlockDiagnosticVMOptions flag above, there is a corresponding 279 // Like the UnlockDiagnosticVMOptions flag above, there is a corresponding
280 // UnlockExperimentalVMOptions flag, which allows the control and 280 // UnlockExperimentalVMOptions flag, which allows the control and
281 // modification of the experimental flags. 281 // modification of the experimental flags.
282 //
283 // Nota bene: neither diagnostic nor experimental options should be used casually,
284 // and they are not supported on production loads, except under explicit
285 // direction from support engineers.
282 // 286 //
283 // manageable flags are writeable external product flags. 287 // manageable flags are writeable external product flags.
284 // They are dynamically writeable through the JDK management interface 288 // They are dynamically writeable through the JDK management interface
285 // (com.sun.management.HotSpotDiagnosticMXBean API) and also through JConsole. 289 // (com.sun.management.HotSpotDiagnosticMXBean API) and also through JConsole.
286 // These flags are external exported interface (see CCC). The list of 290 // These flags are external exported interface (see CCC). The list of
1807 "(other young collectors) ") \ 1811 "(other young collectors) ") \
1808 \ 1812 \
1809 develop(uintx, PromotionFailureALotInterval, 5, \ 1813 develop(uintx, PromotionFailureALotInterval, 5, \
1810 "Total collections between promotion failures alot") \ 1814 "Total collections between promotion failures alot") \
1811 \ 1815 \
1812 develop(intx, WorkStealingSleepMillis, 1, \ 1816 experimental(intx, WorkStealingSleepMillis, 1, \
1813 "Sleep time when sleep is used for yields") \ 1817 "Sleep time when sleep is used for yields") \
1814 \ 1818 \
1815 develop(uintx, WorkStealingYieldsBeforeSleep, 1000, \ 1819 experimental(uintx, WorkStealingYieldsBeforeSleep, 1000, \
1816 "Number of yields before a sleep is done during workstealing") \ 1820 "Number of yields before a sleep is done during workstealing") \
1817 \ 1821 \
1818 develop(uintx, WorkStealingHardSpins, 4096, \ 1822 experimental(uintx, WorkStealingHardSpins, 4096, \
1819 "Number of iterations in a spin loop between checks on " \ 1823 "Number of iterations in a spin loop between checks on " \
1820 "time out of hard spin") \ 1824 "time out of hard spin") \
1821 \ 1825 \
1822 develop(uintx, WorkStealingSpinToYieldRatio, 10, \ 1826 experimental(uintx, WorkStealingSpinToYieldRatio, 10, \
1823 "Ratio of hard spins to calls to yield") \ 1827 "Ratio of hard spins to calls to yield") \
1824 \ 1828 \
1825 product(uintx, PreserveMarkStackSize, 1024, \ 1829 product(uintx, PreserveMarkStackSize, 1024, \
1826 "Size for stack used in promotion failure handling") \ 1830 "Size for stack used in promotion failure handling") \
1827 \ 1831 \