RFR: Traversal should be reported as concurrent cycle in gc+stats

Aleksey Shipilev shade at redhat.com
Tue Mar 20 17:45:11 UTC 2018


Traversal GC would print this in gc+stats:

[73.539s][info][gc,stats]     0 successful partial concurrent GCs
[73.539s][info][gc,stats]
[73.539s][info][gc,stats]     0 successful concurrent GCs
[73.539s][info][gc,stats]       0 invoked explicitly
[73.539s][info][gc,stats]
[73.539s][info][gc,stats]     0 Degenerated GCs
[73.539s][info][gc,stats]       0 caused by allocation failure
[73.539s][info][gc,stats]       0 upgraded to Full GC
[73.539s][info][gc,stats]
[73.539s][info][gc,stats]     0 Full GCs
[73.539s][info][gc,stats]       0 invoked explicitly
[73.539s][info][gc,stats]       0 caused by allocation failure
[73.539s][info][gc,stats]       0 upgraded from Degenerated GC
[73.539s][info][gc,stats]

We miss the report that traversal had finished successfully:

diff -r eef8fad72696 src/hotspot/share/gc/shenandoah/shenandoahConcurrentThread.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentThread.cpp	Tue Mar 20 16:25:36 2018 +0100
+++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentThread.cpp	Tue Mar 20 18:43:43 2018 +0100
@@ -271,6 +271,8 @@
   if (check_cancellation_or_degen(ShenandoahHeap::_degenerated_traversal)) return;

   heap->entry_cleanup_bitmaps();
+
+  heap->shenandoahPolicy()->record_success_concurrent();
 }

 void ShenandoahConcurrentThread::service_concurrent_normal_cycle(GCCause::Cause cause) {

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list