Request for review (s) 8025635: SoftReferences are not cleared before metaspace OOME are thrown

John Coomes John.Coomes at oracle.com
Wed Oct 16 21:51:18 UTC 2013


Jon Masamitsu (jon.masamitsu at oracle.com) wrote:
> I've fixed the CMS case and updated the webrev.
> 
> http://cr.openjdk.java.net/~jmasa/8025635/webrev.01/
> 
> With the fix an unneeded call to expand_and_allocate() may be
> made for CMS.  I chose to keep the code simpler rather
> than to treat that CMS case.

Looks good to me.

-John

> While working on this change I decided that a CMS concurrent
> cycle could be started inappropriately (after a STW full GC or
> after a foreground CMS collection) and have filed
> 
> 8026752: Cancel MetaspaceGC request for a concurrent collection after GC
> 
> See that CR for comments on the CMS behavior regarding collections for
> Metaspace allocations.
> 
> Jon
> 
> 
> On 10/3/13 3:44 PM, Jon Masamitsu wrote:
> > 8025635: SoftReferences are not cleared before metaspace OOME are thrown
> >
> > If native memory has been exhausted or MaxMetaspaceSize has been set and
> > has been reached, a GC will be done to try and unload classes and free 
> > metadata
> > space.  If not enough metadata space has been freed, another GC which 
> > clears
> > SoftReferences will be done.
> >
> > Note that GC's are normally done to unload classes and free metadata 
> > space.
> > If not enough metadata space is freed by the GC, additional
> > space is allocated and used for the metadata allocation.  It is only in
> > the situation where no additional native memory can be allocated for
> > metadata that SoftReferences are cleared.
> >
> > http://cr.openjdk.java.net/~jmasa/8025635/webrev.00/ 
> 



More information about the hotspot-gc-dev mailing list