From 9ca5670f8355274eec3e54744a6fef26dc2fa571 Mon Sep 17 00:00:00 2001 From: ol-automation_ww Date: Fri, 3 Nov 2023 21:48:28 +0000 Subject: [PATCH 1/7] update to 22+22-jvmci-b01 --- common.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/common.json b/common.json index 1ae61620baaf..f4de34774f43 100644 --- a/common.json +++ b/common.json @@ -43,12 +43,12 @@ "labsjdk-ee-21-llvm": {"name": "labsjdk", "version": "ee-21.0.1+11-jvmci-23.1-b22-sulong", "platformspecific": true }, "oraclejdk-latest": {"name": "jpg-jdk", "version": "22", "build_id": "20", "release": true, "platformspecific": true, "extrabundles": ["static-libs"]}, - "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-22+20-jvmci-b02", "platformspecific": true }, - "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-22+20-jvmci-b02-debug", "platformspecific": true }, - "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-22+20-jvmci-b02-sulong", "platformspecific": true }, - "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-22+20-jvmci-b02", "platformspecific": true }, - "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-22+20-jvmci-b02-debug", "platformspecific": true }, - "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-22+20-jvmci-b02-sulong", "platformspecific": true } + "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f", "platformspecific": true }, + "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f-debug", "platformspecific": true }, + "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f-sulong", "platformspecific": true }, + "labsjdk-ee-latest": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f", "platformspecific": true }, + "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f-debug", "platformspecific": true }, + "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f-sulong", "platformspecific": true } }, "eclipse": { From f2f125770b7baa32359102653924b1a9551caf33 Mon Sep 17 00:00:00 2001 From: Marouane El Hallaoui Date: Fri, 3 Nov 2023 22:58:20 +0100 Subject: [PATCH 2/7] update JVMCI version check and oraclejdk22 --- common.json | 8 ++++---- .../src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/common.json b/common.json index f4de34774f43..63e1cfd3a791 100644 --- a/common.json +++ b/common.json @@ -42,13 +42,13 @@ "labsjdk-ee-21Debug": {"name": "labsjdk", "version": "ee-21.0.1+11-jvmci-23.1-b22-debug", "platformspecific": true }, "labsjdk-ee-21-llvm": {"name": "labsjdk", "version": "ee-21.0.1+11-jvmci-23.1-b22-sulong", "platformspecific": true }, - "oraclejdk-latest": {"name": "jpg-jdk", "version": "22", "build_id": "20", "release": true, "platformspecific": true, "extrabundles": ["static-libs"]}, + "oraclejdk-latest": {"name": "jpg-jdk", "version": "22", "build_id": "22", "release": true, "platformspecific": true, "extrabundles": ["static-libs"]}, "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f", "platformspecific": true }, "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f-debug", "platformspecific": true }, "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f-sulong", "platformspecific": true }, - "labsjdk-ee-latest": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f", "platformspecific": true }, - "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f-debug", "platformspecific": true }, - "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f-sulong", "platformspecific": true } + "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-20231103165210-7b4ee9a67f+29988ccb73", "platformspecific": true }, + "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-20231103165210-7b4ee9a67f+29988ccb73-debug", "platformspecific": true }, + "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-20231103165210-7b4ee9a67f+29988ccb73-sulong", "platformspecific": true } }, "eclipse": { diff --git a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java index ad357ae148a9..50113455a3fc 100644 --- a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java +++ b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java @@ -48,7 +48,7 @@ public final class JVMCIVersionCheck { */ private static final Map JVMCI_MIN_VERSIONS = Map.of( "21", new Version(23, 1, 22), - "22", new Version("22+20", 2)); + "22", new Version("22+22", 1)); private static final int NA = 0; /** From ae1329a5a85539c6cf68c2abbffdeb6327897b85 Mon Sep 17 00:00:00 2001 From: Marouane El Hallaoui Date: Mon, 6 Nov 2023 23:56:36 +0100 Subject: [PATCH 3/7] update labsjdk22 --- common.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/common.json b/common.json index 63e1cfd3a791..19ca9c6ee0b5 100644 --- a/common.json +++ b/common.json @@ -43,12 +43,12 @@ "labsjdk-ee-21-llvm": {"name": "labsjdk", "version": "ee-21.0.1+11-jvmci-23.1-b22-sulong", "platformspecific": true }, "oraclejdk-latest": {"name": "jpg-jdk", "version": "22", "build_id": "22", "release": true, "platformspecific": true, "extrabundles": ["static-libs"]}, - "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f", "platformspecific": true }, - "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f-debug", "platformspecific": true }, - "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231103165210-7b4ee9a67f-sulong", "platformspecific": true }, - "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-20231103165210-7b4ee9a67f+29988ccb73", "platformspecific": true }, - "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-20231103165210-7b4ee9a67f+29988ccb73-debug", "platformspecific": true }, - "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-20231103165210-7b4ee9a67f+29988ccb73-sulong", "platformspecific": true } + "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231106212818-c09ac73a8e", "platformspecific": true }, + "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231106212818-c09ac73a8e-debug", "platformspecific": true }, + "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231106212818-c09ac73a8e-sulong", "platformspecific": true }, + "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-20231106212818-c09ac73a8e+29988ccb73", "platformspecific": true }, + "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-20231106212818-c09ac73a8e+29988ccb73-debug", "platformspecific": true }, + "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-20231106212818-c09ac73a8e+29988ccb73-sulong", "platformspecific": true } }, "eclipse": { From f4cf7a6d611c8840ffd48431c3f5bc3193690558 Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Mon, 6 Nov 2023 09:04:59 +0100 Subject: [PATCH 4/7] svm: adopt "JDK-8239508 JFR: @RemoveFields" [GR-49904] --- ...jdk_jfr_internal_instrument_JDKEvents.java | 7 ++++++- .../svm/hosted/jfr/JfrEventSubstitution.java | 19 ++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/Target_jdk_jfr_internal_instrument_JDKEvents.java b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/Target_jdk_jfr_internal_instrument_JDKEvents.java index 13386cd36bb8..a18d50e941c0 100644 --- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/Target_jdk_jfr_internal_instrument_JDKEvents.java +++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/Target_jdk_jfr_internal_instrument_JDKEvents.java @@ -27,6 +27,8 @@ import com.oracle.svm.core.annotate.Alias; import com.oracle.svm.core.annotate.RecomputeFieldValue; import com.oracle.svm.core.annotate.TargetClass; +import com.oracle.svm.core.annotate.TargetElement; +import com.oracle.svm.core.jdk.JDK21OrEarlier; import jdk.jfr.events.ActiveRecordingEvent; import jdk.jfr.events.ActiveSettingEvent; @@ -42,5 +44,8 @@ final class Target_jdk_jfr_internal_instrument_JDKEvents { // This is a list of the classes with instrumentation code that should be applied. @Alias @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias, isFinal = true) private static Class[] instrumentationClasses = new Class[]{}; - @Alias @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias, isFinal = true) private static Class[] mirrorEventClasses = new Class[]{}; + @Alias // + @TargetElement(onlyWith = JDK21OrEarlier.class) // + @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias, isFinal = true) // + private static Class[] mirrorEventClasses = new Class[]{}; } diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/jfr/JfrEventSubstitution.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/jfr/JfrEventSubstitution.java index 3194e412a48f..01001920809e 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/jfr/JfrEventSubstitution.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/jfr/JfrEventSubstitution.java @@ -43,6 +43,7 @@ import com.oracle.svm.core.util.VMError; import com.oracle.svm.util.ReflectionUtil; +import jdk.graal.compiler.serviceprovider.JavaVersionUtil; import jdk.internal.misc.Unsafe; import jdk.jfr.internal.JVM; import jdk.jfr.internal.SecuritySupport; @@ -66,6 +67,8 @@ public class JfrEventSubstitution extends SubstitutionProcessor { private final ConcurrentHashMap fieldSubstitutions; private final Map> mirrorEventMapping; + private static final Method registerMirror = JavaVersionUtil.JAVA_SPEC < 22 ? ReflectionUtil.lookupMethod(SecuritySupport.class, "registerMirror", Class.class) : null; + JfrEventSubstitution(MetaAccessProvider metaAccess) { baseEventType = metaAccess.lookupJavaType(jdk.internal.event.Event.class); ResolvedJavaType jdkJfrEventWriter = metaAccess.lookupJavaType(EventWriter.class); @@ -73,7 +76,11 @@ public class JfrEventSubstitution extends SubstitutionProcessor { typeSubstitution = new ConcurrentHashMap<>(); methodSubstitutions = new ConcurrentHashMap<>(); fieldSubstitutions = new ConcurrentHashMap<>(); - mirrorEventMapping = createMirrorEventsMapping(); + if (JavaVersionUtil.JAVA_SPEC < 22) { + mirrorEventMapping = createMirrorEventsMapping(); + } else { + mirrorEventMapping = null; + } } @Override @@ -150,10 +157,12 @@ private Boolean initEventClass(ResolvedJavaType eventType) throws RuntimeExcepti Class newEventClass = OriginalClassProvider.getJavaClass(eventType).asSubclass(jdk.internal.event.Event.class); eventType.initialize(); - // It is crucial that mirror events are registered before the actual events. - Class mirrorEventClass = mirrorEventMapping.get(newEventClass.getName()); - if (mirrorEventClass != null) { - SecuritySupport.registerMirror(mirrorEventClass); + if (JavaVersionUtil.JAVA_SPEC < 22) { + // It is crucial that mirror events are registered before the actual events. + Class mirrorEventClass = mirrorEventMapping.get(newEventClass.getName()); + if (mirrorEventClass != null) { + registerMirror.invoke(null, mirrorEventClass); + } } SecuritySupport.registerEvent(newEventClass); From 07f8f90908e029d71b27bb25e68aecb1bde6cdfa Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Tue, 7 Nov 2023 18:26:37 +0100 Subject: [PATCH 5/7] svm: adopt "JDK-8288899 java/util/concurrent/ExecutorService/CloseTest.java failed with "InterruptedException: sleep interrupted"" --- .../svm/core/jdk/DeferredCommonPool.java | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/DeferredCommonPool.java b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/DeferredCommonPool.java index 78f7424d2cae..80ee504fc168 100644 --- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/DeferredCommonPool.java +++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/DeferredCommonPool.java @@ -35,6 +35,11 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import com.oracle.svm.core.util.VMError; +import com.oracle.svm.util.ReflectionUtil; + +import jdk.graal.compiler.serviceprovider.JavaVersionUtil; + /** * Pure delegate implementation to ForkJoinPool.commonPool(). */ @@ -79,9 +84,29 @@ public ForkJoinTask submit(Runnable task) { return ForkJoinPool.commonPool().submit(task); } + @SuppressWarnings("unchecked") + public List> invokeAllUninterruptibly(Collection> tasks) { + VMError.guarantee(JavaVersionUtil.JAVA_SPEC >= 22, "invokeAllUninterruptibly only exits in JDK 22+"); + var m = ReflectionUtil.lookupMethod(ForkJoinPool.class, "invokeAllUninterruptibly", Collection.class); + try { + return (List>) m.invoke(ForkJoinPool.commonPool(), tasks); + } catch (ReflectiveOperationException e) { + throw VMError.shouldNotReachHere(e); + } + } + @Override public List> invokeAll(Collection> tasks) { - return ForkJoinPool.commonPool().invokeAll(tasks); + try { + return ForkJoinPool.commonPool().invokeAll(tasks); + } catch (Throwable ex) { + throw rethrow(ex); + } + } + + @SuppressWarnings({"unchecked"}) + private static RuntimeException rethrow(Throwable ex) throws E { + throw (E) ex; } @Override From c37a134d5583a74aed8877d605170207bbca220e Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Wed, 8 Nov 2023 08:40:18 +0000 Subject: [PATCH 6/7] fix typo --- .../src/com/oracle/svm/core/jdk/DeferredCommonPool.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/DeferredCommonPool.java b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/DeferredCommonPool.java index 80ee504fc168..ce32220a781b 100644 --- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/DeferredCommonPool.java +++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/DeferredCommonPool.java @@ -86,7 +86,7 @@ public ForkJoinTask submit(Runnable task) { @SuppressWarnings("unchecked") public List> invokeAllUninterruptibly(Collection> tasks) { - VMError.guarantee(JavaVersionUtil.JAVA_SPEC >= 22, "invokeAllUninterruptibly only exits in JDK 22+"); + VMError.guarantee(JavaVersionUtil.JAVA_SPEC >= 22, "invokeAllUninterruptibly only exists in JDK 22+"); var m = ReflectionUtil.lookupMethod(ForkJoinPool.class, "invokeAllUninterruptibly", Collection.class); try { return (List>) m.invoke(ForkJoinPool.commonPool(), tasks); From 1446b09b9ead61db85d6e5804bc5d1a6aeea81bb Mon Sep 17 00:00:00 2001 From: Marouane El Hallaoui Date: Wed, 8 Nov 2023 10:20:46 +0100 Subject: [PATCH 7/7] use deployed artifacts --- common.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/common.json b/common.json index 19ca9c6ee0b5..f2caa3fa5de4 100644 --- a/common.json +++ b/common.json @@ -43,12 +43,12 @@ "labsjdk-ee-21-llvm": {"name": "labsjdk", "version": "ee-21.0.1+11-jvmci-23.1-b22-sulong", "platformspecific": true }, "oraclejdk-latest": {"name": "jpg-jdk", "version": "22", "build_id": "22", "release": true, "platformspecific": true, "extrabundles": ["static-libs"]}, - "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231106212818-c09ac73a8e", "platformspecific": true }, - "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231106212818-c09ac73a8e-debug", "platformspecific": true }, - "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-20231106212818-c09ac73a8e-sulong", "platformspecific": true }, - "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-20231106212818-c09ac73a8e+29988ccb73", "platformspecific": true }, - "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-20231106212818-c09ac73a8e+29988ccb73-debug", "platformspecific": true }, - "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-20231106212818-c09ac73a8e+29988ccb73-sulong", "platformspecific": true } + "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01", "platformspecific": true }, + "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-debug", "platformspecific": true }, + "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-22+22-jvmci-b01-sulong", "platformspecific": true }, + "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01", "platformspecific": true }, + "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-debug", "platformspecific": true }, + "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-22+22-jvmci-b01-sulong", "platformspecific": true } }, "eclipse": {