Request for reviews (S): 6987703 iCMS: Intermittent hang with gc/gctests/CallGC/CallGC01 and +ExplicitGCInvokesConcurrent

John Coomes John.Coomes at oracle.com
Mon Mar 14 18:15:39 PDT 2011


Y. Srinivas Ramakrishna (y.s.ramakrishna at oracle.com) wrote:
> 
> 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).

Looks good to me.

-John



More information about the hotspot-gc-dev mailing list