RFR: Adjust worker threads according to refproc-ergo decisions

Aleksey Shipilev shade at redhat.com
Mon Jun 25 12:37:17 UTC 2018


On 06/25/2018 02:29 PM, Roman Kennke wrote:
> Updated changeset:
> 
> # HG changeset patch
> # User rkennke
> # Date 1529929668 -7200
> #      Mon Jun 25 14:27:48 2018 +0200
> # Node ID a06f3b6d1305c952aba126bc553ad203c2ea9d1d
> # 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,
> +                                    "reference processing");
>      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,
> +                                    "reference processing");
>      uint nworkers = _workers->active_workers();
>      traversal_gc->task_queues()->reserve(nworkers);
>      if (UseShenandoahOWST) {


...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.

Tested before/after myself with Serial, looks fine.

-Aleksey




More information about the shenandoah-dev mailing list