RFR (S): 8011891: The vm/gc/heap/heap_summary_after_gc event for CMS contains old data
erik.helin at oracle.com
Tue May 14 13:43:45 UTC 2013
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!
> 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).
More information about the hotspot-gc-dev