Mercurial > hg > truffle
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 \ |