RFR: Cleanup UseShenandoahOWST blocks

Roman Kennke rkennke at redhat.com
Mon Jul 9 09:12:17 UTC 2018


Looks good, thank you!

We should soon consider to go for OWST by default. It's baked long
enough. The only thing to wait for is current upstreaming efforts by
Zhengyu, at which point we can just use upstreams TQ stuff.

Roman


> This applies a few trivial cleanups around UseShenandoahOWST blocks. Mostly renames "*_task" ->
> task, and cleaning up useless UseShenandoahOWST in ShenandoahTraversalGC::init_traversal_collection:
> 
> diff -r fde9a873d896 src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp
> --- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp	Mon Jul 09 10:29:38 2018 +0200
> +++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp	Mon Jul 09 10:34:32 2018 +0200
> @@ -419,16 +419,16 @@
> 
>    task_queues()->reserve(nworkers);
> 
>    if (UseShenandoahOWST) {
>      ShenandoahTaskTerminator terminator(nworkers, task_queues());
> -    ShenandoahConcurrentMarkingTask markingTask = ShenandoahConcurrentMarkingTask(this,
> &terminator, update_refs);
> -    workers->run_task(&markingTask);
> +    ShenandoahConcurrentMarkingTask task(this, &terminator, update_refs);
> +    workers->run_task(&task);
>    } else {
>      ParallelTaskTerminator terminator(nworkers, task_queues());
> -    ShenandoahConcurrentMarkingTask markingTask = ShenandoahConcurrentMarkingTask(this,
> &terminator, update_refs);
> -    workers->run_task(&markingTask);
> +    ShenandoahConcurrentMarkingTask task(this, &terminator, update_refs);
> +    workers->run_task(&task);
>    }
> 
>    assert(task_queues()->is_empty() || sh->cancelled_gc(), "Should be empty when not cancelled");
>  }
> 
> diff -r fde9a873d896 src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp
> --- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp	Mon Jul 09 10:29:38 2018 +0200
> +++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp	Mon Jul 09 10:34:32 2018 +0200
> @@ -417,19 +417,12 @@
>      {
>        uint nworkers = _heap->workers()->active_workers();
>        task_queues()->reserve(nworkers);
>        ShenandoahRootProcessor rp(_heap, nworkers, ShenandoahPhaseTimings::init_traversal_gc_work);
> 
> -      if (UseShenandoahOWST) {
> -        ShenandoahTaskTerminator terminator(nworkers, task_queues());
> -        ShenandoahInitTraversalCollectionTask traversal_task(&rp);
> -        _heap->workers()->run_task(&traversal_task);
> -      } else {
> -        ParallelTaskTerminator terminator(nworkers, task_queues());
> -        ShenandoahInitTraversalCollectionTask traversal_task(&rp);
> -        _heap->workers()->run_task(&traversal_task);
> -      }
> +      ShenandoahInitTraversalCollectionTask traversal_task(&rp);
> +      _heap->workers()->run_task(&traversal_task);
>      }
> 
>  #if defined(COMPILER2) || INCLUDE_JVMCI
>      DerivedPointerTable::update_pointers();
>  #endif
> @@ -641,16 +634,16 @@
>    if (!_heap->cancelled_gc()) {
>      uint nworkers = _heap->workers()->active_workers();
>      task_queues()->reserve(nworkers);
>      if (UseShenandoahOWST) {
>        ShenandoahTaskTerminator terminator(nworkers, task_queues());
> -      ShenandoahConcurrentTraversalCollectionTask traversal_task(&terminator);
> -      _heap->workers()->run_task(&traversal_task);
> +      ShenandoahConcurrentTraversalCollectionTask task(&terminator);
> +      _heap->workers()->run_task(&task);
>      } else {
>        ParallelTaskTerminator terminator(nworkers, task_queues());
> -      ShenandoahConcurrentTraversalCollectionTask traversal_task(&terminator);
> -      _heap->workers()->run_task(&traversal_task);
> +      ShenandoahConcurrentTraversalCollectionTask task(&terminator);
> +      _heap->workers()->run_task(&task);
>      }
>    }
> 
>    if (!_heap->cancelled_gc() && ShenandoahPreclean && _heap->process_references()) {
>      ShenandoahEvacOOMScope oom_evac_scope;
> @@ -672,16 +665,16 @@
> 
>      // Finish traversal
>      ShenandoahRootProcessor rp(_heap, nworkers, ShenandoahPhaseTimings::final_traversal_gc_work);
>      if (UseShenandoahOWST) {
>        ShenandoahTaskTerminator terminator(nworkers, task_queues());
> -      ShenandoahFinalTraversalCollectionTask traversal_task(&rp, &terminator);
> -      _heap->workers()->run_task(&traversal_task);
> +      ShenandoahFinalTraversalCollectionTask task(&rp, &terminator);
> +      _heap->workers()->run_task(&task);
>      } else {
>        ParallelTaskTerminator terminator(nworkers, task_queues());
> -      ShenandoahFinalTraversalCollectionTask traversal_task(&rp, &terminator);
> -      _heap->workers()->run_task(&traversal_task);
> +      ShenandoahFinalTraversalCollectionTask task(&rp, &terminator);
> +      _heap->workers()->run_task(&task);
>      }
>  #if defined(COMPILER2) || INCLUDE_JVMCI
>      DerivedPointerTable::update_pointers();
>  #endif
>    }
> 
> 
> Testing: tier1_gc_shenandoah
> 
> Thanks,
> -Aleksey
> 




More information about the shenandoah-dev mailing list