RFR (S): 8008737: The trace event vm/gc/heap/summary is missing for CMS

Erik Helin erik.helin at oracle.com
Wed Mar 13 11:35:38 PDT 2013


the previous two changes, webrev.00 and webrev.01, did not ensure that 
CMS collector had the heap lock when the call to capacity was being 
done. This did not cause any error during testing, but it could lead to 
strange bugs. I have therefore updated the change to take this into account.

The new change, webrev.02, ensures that the heap summary data is only 
saved when the concurrent CMS collector has the heap lock. Since 
"collect_in_background" can be aborted for various reasons, the heap 
statistics are saved at three places for a concurrent CMS collection:
1. Initial mark
2. Final remark
3. Resizing

The heap summary that will be sent for a concurrent CMS collection 
depend on how much progress the CMS background collector has done, the 
most recent one will always be sent.

The same is being done for a foreground CMS collection, but then it is 
guaranteed that the heap summary will always be from the last save 
point, Resizing, since a foreground CMS collection can not be aborted.

Please see the new webrev located at:


On 02/24/2013 10:40 AM, Erik Helin wrote:
> Hi all,
> this change adds the trace event vm/gc/heap/summary to the CMS collector.
> Webrev:
> http://cr.openjdk.java.net/~ehelin/8008737/webrev.00/
> Bug:
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8008737
> Testing:
> Thanks,
> Erik

More information about the hotspot-gc-dev mailing list