8224495: Shenandoah: Do not rescan code roots in final mark pause if it is not degenerated GC
Reviewed-by: shade
--- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp Tue May 21 18:22:54 2019 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp Tue May 21 13:06:52 2019 -0400
@@ -227,9 +227,12 @@
rp = NULL;
}
- // Degenerated cycle may bypass concurrent cycle, so code roots might not be scanned,
- // let's check here.
- _cm->concurrent_scan_code_roots(worker_id, rp);
+ if (heap->is_degenerated_gc_in_progress()) {
+ // Degenerated cycle may bypass concurrent cycle, so code roots might not be scanned,
+ // let's check here.
+ _cm->concurrent_scan_code_roots(worker_id, rp);
+ }
+
_cm->mark_loop(worker_id, _terminator, rp,
false, // not cancellable
_dedup_string);