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