ShenandoahBarrierSetC2::escape_is_barrier_node
Aleksey Shipilev
shade at redhat.com
Thu Jun 6 20:41:58 UTC 2019
Hey Roland,
A question for you. We have a staged code in sh/jdk, which has this change in
ShenandoahBarrierSetC2::escape_is_barrier_node:
http://hg.openjdk.java.net/shenandoah/jdk/rev/3f2b4cc07dbd#l1.47
If you revert it, then tests start to fail:
$ CONF=linux-x86_64-server-fastdebug make images run-test TEST=gc/shenandoah/TestStringDedupStress.java
...
LocalVar NoEscape(NoEscape) [ 475 1P 195P 322P [ 497 ]] 476 ShenandoahLoadReferenceBarrier === _
475 298 [[ 497 ]] Oop:java/util/concurrent/atomic/AtomicLong * !jvms: Random::next @ bci:1
Random::nextInt @ bci:17 TestStringDedupStress::generateStrings @ bci:17
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/escape.cpp:3098
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/shade/trunks/shenandoah-jdk/src/hotspot/share/opto/escape.cpp:3098),
pid=26126, tid=26151
# assert(jobj != __null && jobj != phantom_obj) failed: escaped allocation
#
Have any insights why? Also, is it really needed for Shenandoah at this point? I see only Shenandoah
has the non-trivial BarrierSetC2::escape_is_barrier_node.
--
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list