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 08:08:42 UTC 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.)

webrev: http://cr.openjdk.java.net/~ysr/6987703/webrev.00/

Testing: The failing test (and JPRT) with
    +/-ExplicitGCInvokesConcurrent +/-ExplicitGCInvokesConcurrent
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!
-- ramki



More information about the hotspot-gc-dev mailing list