# HG changeset patch # User Roman Kennke # Date 1423674346 -3600 # Node ID 019d45744873e7cb2d9be140e1e97cc4b51cc977 # Parent a5cdb779dc9c45cff04d2f7aac8c75c3b4c2d002 Measure more details during updating references. diff -r a5cdb779dc9c -r 019d45744873 src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.cpp --- a/src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.cpp Wed Feb 11 18:05:39 2015 +0100 +++ b/src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.cpp Wed Feb 11 18:05:46 2015 +0100 @@ -369,6 +369,12 @@ _phase_names[final_mark] = "FinalMark"; _phase_names[final_evac] = "FinalEvacuation"; _phase_names[final_uprefs] = "FinalUpdateRefs"; + + _phase_names[update_roots] = "UpdateRoots"; + _phase_names[recycle_regions] = "RecycleRegions"; + _phase_names[reset_bitmaps] = "ResetBitmaps"; + _phase_names[resize_tlabs] = "ResizeTLABs"; + _phase_names[full_gc] = "FullGC"; _phase_names[conc_mark] = "ConcurrentMark"; _phase_names[conc_evac] = "ConcurrentEvacuation"; @@ -479,6 +485,11 @@ print_summary_sd("Final Mark Pauses", &(_timing_data[final_mark]._ms)); print_summary_sd("Final Evacuation Pauses", &(_timing_data[final_evac]._ms)); print_summary_sd("Final Update Refs Pauses", &(_timing_data[final_uprefs]._ms)); + print_summary_sd(" Update roots", &(_timing_data[update_roots]._ms)); + print_summary_sd(" Recycle regions", &(_timing_data[recycle_regions]._ms)); + print_summary_sd(" Reset bitmaps", &(_timing_data[reset_bitmaps]._ms)); + print_summary_sd(" Resize TLABs", &(_timing_data[resize_tlabs]._ms)); + gclog_or_tty->print_cr(" "); print_summary_sd("Concurrent Marking Times", &(_timing_data[conc_mark]._ms)); print_summary_sd("Concurrent Evacuation Times", &(_timing_data[conc_evac]._ms)); print_summary_sd("Full GC Times", &(_timing_data[full_gc]._ms)); diff -r a5cdb779dc9c -r 019d45744873 src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.hpp --- a/src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.hpp Wed Feb 11 18:05:39 2015 +0100 +++ b/src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.hpp Wed Feb 11 18:05:46 2015 +0100 @@ -21,7 +21,10 @@ final_mark, final_evac, final_uprefs, - + update_roots, + recycle_regions, + reset_bitmaps, + resize_tlabs, full_gc, conc_mark, conc_evac, diff -r a5cdb779dc9c -r 019d45744873 src/share/vm/gc_implementation/shenandoah/vm_operations_shenandoah.cpp --- a/src/share/vm/gc_implementation/shenandoah/vm_operations_shenandoah.cpp Wed Feb 11 18:05:39 2015 +0100 +++ b/src/share/vm/gc_implementation/shenandoah/vm_operations_shenandoah.cpp Wed Feb 11 18:05:46 2015 +0100 @@ -205,22 +205,38 @@ sh->shenandoahPolicy()->record_phase_start(ShenandoahCollectorPolicy::final_uprefs); + sh->shenandoahPolicy()->record_phase_start(ShenandoahCollectorPolicy::update_roots); + sh->update_roots(); + sh->shenandoahPolicy()->record_phase_end(ShenandoahCollectorPolicy::update_roots); + if (ShenandoahVerify) { sh->verify_heap_after_update_refs(); } + sh->shenandoahPolicy()->record_phase_start(ShenandoahCollectorPolicy::recycle_regions); + sh->recycle_dirty_regions(); + sh->shenandoahPolicy()->record_phase_end(ShenandoahCollectorPolicy::recycle_regions); + if (ShenandoahVerify) { sh->verify_regions_after_update_refs(); } + sh->shenandoahPolicy()->record_phase_start(ShenandoahCollectorPolicy::reset_bitmaps); + sh->reset_mark_bitmap(); + sh->shenandoahPolicy()->record_phase_end(ShenandoahCollectorPolicy::reset_bitmaps); + + sh->shenandoahPolicy()->record_phase_start(ShenandoahCollectorPolicy::resize_tlabs); + sh->resize_all_tlabs(); + sh->shenandoahPolicy()->record_phase_end(ShenandoahCollectorPolicy::resize_tlabs); + sh->shenandoahPolicy()->record_phase_end(ShenandoahCollectorPolicy::final_uprefs); }