RFR: Revert "Handle missing ShenandoahWriteBarrierRB case"

Roman Kennke rkennke at redhat.com
Thu Aug 2 13:56:52 UTC 2018


Am 02.08.2018 um 15:43 schrieb Aleksey Shipilev:
> This reverts recent change:
>   http://hg.openjdk.java.net/shenandoah/jdk/rev/1440d2adbc8f
> 
> It does not violate correctness, but has impact on Traversal performance. Traversal runs with
> -ShenandoahWriteBarrierRB to avoid resolves on evacuation_not_in_progress path. Doing the same on
> evacuation_in_progress path makes us go to evacuation stub unnecessarily, because we never discover
> the forwarded object and in-cset test always succeeds.
> 
> diff -r 75a644780460 src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp
> --- a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp  Wed Aug 01 16:05:54 2018 +0200
> +++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp  Thu Aug 02 15:39:06 2018 +0200
> @@ -2820,18 +2820,12 @@
> 
>    IdealLoopTree *loop = phase->get_loop(c);
> -
> -  Node* rbtrue;
> -  if (ShenandoahWriteBarrierRB) {
> -    rbtrue = new ShenandoahReadBarrierNode(c, wb_mem, val);
> -    phase->register_new_node(rbtrue, c);
> -  } else {
> -    rbtrue = val;
> -  }
> +  Node* rbtrue = new ShenandoahReadBarrierNode(c, wb_mem, val);
> +  phase->register_new_node(rbtrue, c);
> 
>    Node* in_cset_fast_test_failure = NULL;
>    in_cset_fast_test(c, rbtrue, raw_mem, wb_mem, region, val_phi, mem_phi, raw_mem_phi, phase);
> 
>    // The slow path stub consumes and produces raw memory in addition
> 
> 
> Testing: tier1_gc_shenandoah
> 
> -Aleksey
> 

Ok. Thanks, that makes sense.

Roman




More information about the shenandoah-dev mailing list