On Wed, 25 Nov 2020 19:48:40 GMT, Aleksey Shipilev <sh...@openjdk.org> wrote:

>>> I just pulled the fresh master, applied this patch on top, enabled 
>>> `_PhantomReference_refersTo0` in `c2compiler.cpp`, and ran 
>>> `CONF=linux-x86_64-server-fastdebug make images run-test TEST=tier1 
>>> TEST_VM_OPTS="-XX:+UseShenandoahGC"` without problems.
>>> 
>>> @vnkozlov, what Shenandoah failure did you see? Attention @rkennke.
>> 
>> @shipilev 2 new tests added by JDK-8188055 does not trigger C2 compilation.
>> You need to run my new test to trigger problem I see:
>> 
>> java -Xbatch -XX:-TieredCompilation -XX:CICompilerCount=1 
>> -XX:+UseShenandoahGC TestReferenceRefersTo.java
>> 
>> #  Internal Error 
>> (/open/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp:999), 
>> pid=2498681, tid=2498694
>> #  assert(!is_narrow) failed: phantom access cannot be narrow
>> #
>> # JRE version: Java(TM) SE Runtime Environment (16.0) (fastdebug build 
>> 16-internal+0-2020-11-24)
>> # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 
>> 16-internal+0-2020-11-24, mixed mode, sharing, compressed oops, shenandoah 
>> gc, linux-amd64)
>> # Problematic frame:
>> # V  [libjvm.so+0x1862090]  
>> ShenandoahBarrierC2Support::call_lrb_stub(Node*&, Node*&, Node*, Node*&, 
>> Node*, unsigned long, PhaseIdealLoop*)+0x7e0
>
>> @shipilev 2 new tests added by JDK-8188055 does not trigger C2 compilation.
> 
> That sounds like a testbug to me! Since this PR adds C2 intrinsics, I thought 
> it is expected that new tests trigger it in default test configs...
> 
>> You need to run my new test to trigger problem I see:
>> 
>> ```
>> java -Xbatch -XX:-TieredCompilation -XX:CICompilerCount=1 
>> -XX:+UseShenandoahGC TestReferenceRefersTo.java
>> 
>> #  Internal Error 
>> (/open/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp:999), 
>> pid=2498681, tid=2498694
>> #  assert(!is_narrow) failed: phantom access cannot be narrow
>> #
> 
> Right. So new intrinsic introduces the "phantom" access from C2 intrinsic 
> code, and it can be narrow. Shenandoah did not handle that path, because no 
> existing code shapes were exercising it, and it was considered dead. Since it 
> is not dead now, we can simply implement that part like this: 
> http://cr.openjdk.java.net/~shade/shenandoah/8256999-shenandoah-fix.patch.

Your PR have also been bitten by #1427, merge from master to get it fixed.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1425

Reply via email to