RFR(S) 8234432: AOT tests failing with 'used 'epsilon gc' is different from current 'g1 gc'' after CMS removal

Dean Long dean.long at oracle.com
Sat Nov 23 02:47:58 UTC 2019


On 11/22/19 6:37 PM, Vladimir Kozlov wrote:
> Hmm. I assumed that Graal should have GCs list which is subset of GCs 
> in Hotspot. But it could be not true since GraalVM have to run with 
> JDK 8.
>
> May be we should bailout AOT compilation if GC is unknown in Hotspot 
> instead of recording in library enum 'def' from Graal which does not 
> match enum in HotSpot. And check for GC early before we start 
> collecting classes to compile.
>

Graal uses the HotSpot flags to determine which GC is being used, so 
there is no way for AOT to store a GC that the underlying HotSpot 
doesn't know about.  The default fall-back of ordinal() + 1 is only for 
pre-JDK14 which doesn't have the CollectedHeap GC constants exported to 
JVMCI.  We could get rid of that if we backport the vmStructs_jvmci.cpp 
change to all the JDK versions that Graal supports.

There is a separate issue, if you try to use a GC that JVMCI/Graal 
doesn't support:

  % jaotc -J-XX:+UseZGC java.lang.String

JVMCI Compiler does not support selected GC: z gc

dl
> Thanks,
> Vladimir
>
> On 11/22/19 5:55 PM, Dean Long wrote:
>> https://bugs.openjdk.java.net/browse/JDK-8234432
>> http://cr.openjdk.java.net/~dlong/8234432/webrev/
>>
>> The change fixes AOT after CMS was removed.  Previously we relied to 
>> a Graal enum matching a JDK enum, but now we map from one to the other.
>>
>> dl



More information about the hotspot-compiler-dev mailing list