Request for reviews (S): 6987703 iCMS: Intermittent hang with gc/gctests/CallGC/CallGC01 and +ExplicitGCInvokesConcurrent
Y. Srinivas Ramakrishna
y.s.ramakrishna at oracle.com
Mon Mar 14 01:08:42 PDT 2011
Summary: In the existing implementation of ExplicitGCInvokesConcurrent
two concurrent System.gc()'s could intefere when using CMSIncremetalMode,
leaving the CMS thread stranded in incremental mode with no foreground
allocation happening to act as a trigger to get the (i)CMS thread going.
Solution: enable_icms() and disable_icms(), which respectively enable and
disable the incremental mode of CMS, should be counting requests
so as not to intefere. Also added some related asserts.
(Removed the obsolete and unused _next field in the CMST class.)
Testing: The failing test (and JPRT) with
Prior to the fix, on a specific machine, the test would
hang about once in three runs or so. After the fix it's been
running without hanging for a whole day (many thousands of iterations).
thanks for your reviews!
More information about the hotspot-gc-dev