RFR: Adjust worker threads according to refproc-ergo decisions
Roman Kennke
rkennke at redhat.com
Mon Jun 25 12:42:27 UTC 2018
> ...and you need do_check=false for ShenandoahPushWorkerScope, because it can be the case that
> ergo_workers != ParalleGCThreads -- and the check would assert. Other than that, looks good.
Gaa! Thanks for pointing out.
> Tested before/after myself with Serial, looks fine.
Thank you!
Will push the following patch then, after testing finished.
Roman
# HG changeset patch
# User rkennke
# Date 1529930535 -7200
# Mon Jun 25 14:42:15 2018 +0200
# Node ID 1fcebfb1122353b96b8a03f0928856e64a2a0ac7
# Parent 1f5c9cf67f8f00e41056b406de986be3115f0f99
Adjust worker threads according to refproc-ergo decisions
diff --git
a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp
b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp
+++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp
@@ -664,6 +664,9 @@
ShenandoahHeap* heap = ShenandoahHeap::heap();
ShenandoahConcurrentMark* cm = heap->concurrentMark();
+ ShenandoahPushWorkerScope scope(_workers,
+ ergo_workers,
+ /* do_check = */ false);
uint nworkers = _workers->active_workers();
cm->task_queues()->reserve(nworkers);
if (UseShenandoahOWST) {
diff --git a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp
b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp
@@ -1068,6 +1068,9 @@
ShenandoahHeap* heap = ShenandoahHeap::heap();
ShenandoahTraversalGC* traversal_gc = heap->traversal_gc();
+ ShenandoahPushWorkerScope scope(_workers,
+ ergo_workers,
+ /* do_check = */ false);
uint nworkers = _workers->active_workers();
traversal_gc->task_queues()->reserve(nworkers);
if (UseShenandoahOWST) {
More information about the shenandoah-dev
mailing list