RFR (S): 8011891: The vm/gc/heap/heap_summary_after_gc event for CMS contains old data
bengt.rutisson at oracle.com
Tue May 14 15:35:46 UTC 2013
This looks good. It is in line with what you and I discussed as well.
14 maj 2013 kl. 15:43 skrev Erik Helin <erik.helin at oracle.com>:
> 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 save_heap_summary.
> 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