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
save_heap_summary.
Please see new webrev at:
http://cr.openjdk.java.net/~ehelin/8011891/webrev.01/
Thanks,
Erik
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