changeset 7461:019d45744873

Measure more details during updating references.
author Roman Kennke <rkennke@redhat.com>
date Wed, 11 Feb 2015 18:05:46 +0100
parents a5cdb779dc9c
children c0734957b505
files src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.cpp src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.hpp src/share/vm/gc_implementation/shenandoah/vm_operations_shenandoah.cpp
diffstat 3 files changed, 31 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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));
--- 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,
--- 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);
 }