JDK-8229350 : Shenandoah does not need barriers before CreateEx
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 8-shenandoah,11-shenandoah,13,14
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2019-08-09
  • Updated: 2020-01-29
  • Resolved: 2019-08-09
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 14
14 b10Fixed
Related Reports
Relates :  
Description
Current vmTestbase_vm_mlvm tests fail with 32-bit binaries like this:

$ CONF=linux-x86-server-fastdebug make images test TEST_VM_OPTS="-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:-TieredCompilation" TEST=vmTestbase/vm/mlvm/indy/stress/gc/lotsOfCallSites/Test.java
....

need barrier on?: ins:
 151	CallStaticJava	===  686  92  93  8  1 ( 132  13  26  1  1  1  1  14  1  1  1  1  1  1  26  132  1 ) [[ 152  153  154  156 ]] # Static  java.lang.invoke.MethodHandleNatives::resolve java/lang/invoke/MemberName:exact * ( java/lang/invoke/MemberName:exact *, java/lang/Class:exact *, int ) MemberName$Factory::resolve @ bci:34 MemberName$Factory::resolveOrFail @ bci:5 !jvms: MemberName$Factory::resolve @ bci:34 MemberName$Factory::resolveOrFail @ bci:5
 158	Catch	===  152  153  [[ 159  160 ]]  !orig=[656] !jvms: MemberName$Factory::resolve @ bci:34 MemberName$Factory::resolveOrFail @ bci:5
 153	Proj	===  151  [[ 206  158  683  163  332  682  660  435  415  312  347 ]] #1 !orig=[555] !jvms: MemberName$Factory::resolve @ bci:34 MemberName$Factory::resolveOrFail @ bci:5
 160	CatchProj	===  158  [[ 689  163 ]] #1@bci -1  !jvms: MemberName$Factory::resolve @ bci:34 MemberName$Factory::resolveOrFail @ bci:5
 163	CreateEx	===  160  153  [[ 164  164  696  683 ]]  #java/lang/Throwable:NotNull *  Oop:java/lang/Throwable:NotNull * !jvms: MemberName$Factory::resolve @ bci:34 MemberName$Factory::resolveOrFail @ bci:5

CreateEx instantiates the exceptions from either the new allocations, or from the prebuilt exception table. In either case, we do not need barriers for it.

Comments
URL: https://hg.openjdk.java.net/jdk/jdk/rev/def8e77a3ad1 User: shade Date: 2019-08-09 11:07:58 +0000
09-08-2019