Heads-up: failures with -XX:+StressLCM -XX:+StressGCM

Aleksey Shipilev shade at redhat.com
Thu Sep 22 07:53:55 UTC 2016


On 09/22/2016 09:35 AM, Roland Westrelin wrote:
> 
>> Actually no, still fails, but rarer, and in a different place. So far I
>> failed to come up with a minimized jtreg test. jcstress fails with this:
> 
> Can you try the following patch?
> 
> Roland.
> 
> diff --git a/src/share/vm/opto/compile.cpp b/src/share/vm/opto/compile.cpp
> --- a/src/share/vm/opto/compile.cpp
> +++ b/src/share/vm/opto/compile.cpp
> @@ -3281,21 +3281,7 @@
>    case Op_ShenandoahReadBarrier:
>      break;
>    case Op_ShenandoahWriteBarrier:
> -    {
> -      const Type* val_t = n->in(ShenandoahBarrierNode::ValueIn)->bottom_type();
> -      assert(n->in(ShenandoahBarrierNode::Control) != NULL, "should have control");
> -      // only reset control if a CastPP input is not removed yet
> -      if (val_t->meet(TypePtr::NULL_PTR) == val_t) {
> -        n->set_req(ShenandoahBarrierNode::Control, NULL);
> -        uint i = n->req();
> -        for (; i < n->len() && n->in(i) == NULL; i++);
> -        if (i != n->len()) {
> -          n->set_req(ShenandoahBarrierNode::Control, n->in(i));
> -          n->rm_prec(i);
> -        }
> -      }
>        break;
> -    }
>    case Op_RangeCheck: {
>      RangeCheckNode* rc = n->as_RangeCheck();
>      Node* iff = new IfNode(rc->in(0), rc->in(1), rc->_prob, rc->_fcnt);

Seems to fix the remaining test failures in
jcstress/x86_64/tests-custom. Would be nice to write a regression test
that walks through this codepath.

Thanks,
-Aleksey




More information about the shenandoah-dev mailing list