RFR (XS) 8243463: Shenandoah: ditch total_pause counters

Aleksey Shipilev shade at redhat.com
Thu Apr 23 06:31:54 UTC 2020


RFE:
  https://bugs.openjdk.java.net/browse/JDK-8243463

total_pause counters make ShenandoahGCPhase nesting awkward, and also take the timing measurement
twice on common path. They are also not very convenient, because they average over completely
different pauses. We should consider removing these counters. It would also help future work on
per-cycle counters printout, where total-pauses make little sense.

Fix:

diff -r 6c14c6b234ed src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp	Thu Apr 23 07:49:52 2020 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp	Thu Apr 23 08:31:29 2020 +0200
@@ -2693,3 +2693,2 @@
   TraceCollectorStats tcs(monitoring_support()->stw_collection_counters());
-  ShenandoahGCPhase total(ShenandoahPhaseTimings::total_pause_gross);
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::init_mark_gross);
@@ -2703,3 +2702,2 @@
   TraceCollectorStats tcs(monitoring_support()->stw_collection_counters());
-  ShenandoahGCPhase total(ShenandoahPhaseTimings::total_pause_gross);
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::final_mark_gross);
@@ -2713,3 +2711,2 @@
   TraceCollectorStats tcs(monitoring_support()->stw_collection_counters());
-  ShenandoahGCPhase total(ShenandoahPhaseTimings::total_pause_gross);
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::init_update_refs_gross);
@@ -2723,3 +2720,2 @@
   TraceCollectorStats tcs(monitoring_support()->stw_collection_counters());
-  ShenandoahGCPhase total(ShenandoahPhaseTimings::total_pause_gross);
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::final_update_refs_gross);
@@ -2733,3 +2729,2 @@
   TraceCollectorStats tcs(monitoring_support()->full_stw_collection_counters());
-  ShenandoahGCPhase total(ShenandoahPhaseTimings::total_pause_gross);
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::full_gc_gross);
@@ -2743,3 +2738,2 @@
   TraceCollectorStats tcs(monitoring_support()->full_stw_collection_counters());
-  ShenandoahGCPhase total(ShenandoahPhaseTimings::total_pause_gross);
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::degen_gc_gross);
@@ -2755,3 +2749,2 @@

-  ShenandoahGCPhase total_phase(ShenandoahPhaseTimings::total_pause);
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::init_mark);
@@ -2770,3 +2763,2 @@

-  ShenandoahGCPhase total_phase(ShenandoahPhaseTimings::total_pause);
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::final_mark);
@@ -2785,3 +2777,2 @@

-  ShenandoahGCPhase total_phase(ShenandoahPhaseTimings::total_pause);
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::init_update_refs);
@@ -2798,3 +2789,2 @@

-  ShenandoahGCPhase total_phase(ShenandoahPhaseTimings::total_pause);
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::final_update_refs);
@@ -2813,3 +2803,2 @@

-  ShenandoahGCPhase total_phase(ShenandoahPhaseTimings::total_pause);
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::full_gc);
@@ -2829,3 +2818,2 @@

-  ShenandoahGCPhase total_phase(ShenandoahPhaseTimings::total_pause);
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::degen_gc);
diff -r 6c14c6b234ed src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp	Thu Apr 23 07:49:52 2020 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp	Thu Apr 23 08:31:29 2020 +0200
@@ -59,5 +59,2 @@
 #define SHENANDOAH_GC_PHASE_DO(f)                                                      \
-  f(total_pause_gross,                              "Total Pauses (G)")                \
-  f(total_pause,                                    "Total Pauses (N)")                \
-                                                                                       \
   f(init_mark_gross,                                "Pause Init Mark (G)")             \

Testing: hotspot_gc_shenandoah

-- 
Thanks,
-Aleksey



More information about the shenandoah-dev mailing list