RFR (S): 8011891: The vm/gc/heap/heap_summary_after_gc event for CMS contains old data

Erik Helin erik.helin at oracle.com
Tue May 14 13:43:45 UTC 2013

Hi Bengt,

thanks for reviewing!

Based on feedback from Stefan, I've moved the check into the "if 
(should_compact)" branch of acquire_control_and_collect, since the call 
to save_heap_summary is not needed if "else" branch is chosen, since 
do_mark_sweep_work calls collect_in_foreground which will call 

Please see new webrev at:


On 05/14/2013 10:27 AM, Bengt Rutisson wrote:
> Hi Erik,
> Looks good!
> Bengt
> On 5/9/13 12:16 PM, Erik Helin wrote:
>> Hi all,
>> this change makes sure that the data in
>> vm/gc/heap/heap_summary_after_gc trace event is up-to-date for CMS.
>> The bug happened when CMS got a concurrent mode failure and had not
>> reached the "Resizing" phase (in collect_in_background). The heap
>> summary data would then be the one collected in
>> CMSCollector::checkpointRootsInitialPre which by the time of
>> concurrent mode failure (or interrupt) could be quite old.
>> The solution consists of collecting the heap summary in
>> CMSCollector::acquire_control_and_collect when checking if an
>> background collection failed (or was interrupted).
>> Webrev:
>> http://cr.openjdk.java.net/~ehelin/8011891/webrev.00/
>> Bug:
>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8011891
>> Thanks,
>> Erik

More information about the hotspot-gc-dev mailing list