RFR (XS) 8245755: Shenandoah: missing logging for CWR Roots

Aleksey Shipilev shade at redhat.com
Mon May 25 19:16:00 UTC 2020


Bug:
  https://bugs.openjdk.java.net/browse/JDK-8245755

JDK-8244953 introduced the Roots/Rendezvous split in CWR logging. Yet, there is no "Roots" counter
in the gc+stats, because there is nothing that tracks it.

Fix:

diff -r 403587ab7d6e src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp        Mon May 25 21:02:37 2020 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp        Mon May 25 21:14:26 2020 +0200
@@ -1852,12 +1852,13 @@
   }
 };

 void ShenandoahHeap::op_weak_roots() {
   if (is_concurrent_weak_root_in_progress()) {
     {
+      ShenandoahTimingsTracker t(ShenandoahPhaseTimings::conc_weak_roots_work);
       ShenandoahGCWorkerPhase worker_phase(ShenandoahPhaseTimings::conc_weak_roots_work);
       ShenandoahConcurrentWeakRootsEvacUpdateTask task(ShenandoahPhaseTimings::conc_weak_roots_work);
       workers()->run_task(&task);
       if (!ShenandoahConcurrentRoots::should_do_concurrent_class_unloading()) {
         set_concurrent_weak_root_in_progress(false);

Testing: hotspot_gc_shenandoah, eyeballing gc+stats

-- 
Thanks,
-Aleksey



More information about the shenandoah-dev mailing list