From asmehra at redhat.com Tue Oct 1 17:05:42 2024 From: asmehra at redhat.com (Ashutosh Mehra) Date: Tue, 1 Oct 2024 13:05:42 -0400 Subject: Infinispan server issue - putting it all together Message-ID: The thread for Infinispan issue [0] tried to tackle 3 problems at the same time which made it difficult to follow it. So here is an attempt to give description of each problem in the order it was discovered and investigated. Most of the following text is copied from the thread mentioned earlier. Putting it all together in one place would hopefully help the reader to get the complete picture. Note that the fix for all these problems has already been pushed to the premain branch in this patch [1]. Problem #1: It started with the NPE reported by the Infinispan server testcase in the production run using premain: Exception in thread "main" java.lang.ExceptionInInitializerError at com.redhat.leyden.Main.main(Main.java:7) Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.invoke.MethodHandle.invokeExact(org.wildfly.security.WildFlyElytronBaseProvider, java.security.Provider$Service)" because " at org.wildfly.security.WildFlyElytronBaseProvider$$Lambda/0x80000000c.accept(Unknown Source) at org.wildfly.security.WildFlyElytronBaseProvider.putMakedPasswordImplementations(WildFlyElytronBaseProvider.java:112) at org.wildfly.security.WildFlyElytronBaseProvider.putPasswordImplementations(WildFlyElytronBaseProvider.java:107) at org.wildfly.security.password.WildFlyElytronPasswordProvider.(WildFlyElytronPasswordProvider.java:43) at org.wildfly.security.password.WildFlyElytronPasswordProvider.(WildFlyElytronPasswordProvider.java:36) ... 1 more Method throwing the NPE is in the lambda class: public void accept(java.lang.Object); descriptor: (Ljava/lang/Object;)V flags: (0x0001) ACC_PUBLIC Code: stack=3, locals=2, args_size=2 0: ldc #26 // Dynamic #0:_:Ljava/lang/invoke/MethodHandle; 2: aload_0 3: getfield #13 // Field arg$1:Lorg/wildfly/security/WildFlyElytronBaseProvider; 6: aload_1 7: checkcast #28 // class java/security/Provider$Service 10: invokevirtual #34 // Method java/lang/invoke/MethodHandle.invokeExact:(Lorg/wildfly/security/WildFlyElytronBaseProvider;Ljava/security/Provider$Service;)V 13: return BootstrapMethods: 0: #22 REF_invokeStatic java/lang/invoke/MethodHandles.classData:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; Method arguments: NPE is generated at bci 10 when executing invokevirtual bytecode which indicates the MethodHandle obtained by loading the dynamic constant at bci 0 is null. That MethodHandle is obtained through the bootstrap method which retrieves the lambda class's classData. The reason for classData being null is that scratch mirrors are not populated with the classData when they are dumped into the AOT cache.This issue is resolved by setting the classData in the scratch mirror in HeapShared::copy_preinitialized_mirror(). See the change in cds/heapShared.cpp in the patch [1]. Problem #2: With the above fix in place running Infinispan server test case hits WrongMethodTypeException in the production run: Exception in thread "main" java.lang.ExceptionInInitializerError at com.redhat.leyden.Main.main(Main.java:7) Caused by: java.lang.invoke.WrongMethodTypeException: handle's method type (WildFlyElytronBaseProvider,Service)void but found (WildFlyElytronBaseProvider,Service)void at java.base/java.lang.invoke.Invokers.newWrongMethodTypeException(Invokers.java:521) at java.base/java.lang.invoke.Invokers.checkExactType(Invokers.java:530) at java.base/java.lang.invoke.Invokers$Holder.invokeExact_MT(Invokers$Holder) at org.wildfly.security.WildFlyElytronBaseProvider$$Lambda/0x80000000c.accept(Unknown Source) at org.wildfly.security.WildFlyElytronBaseProvider.putMakedPasswordImplementations(WildFlyElytronBaseProvider.java:112) at org.wildfly.security.WildFlyElytronBaseProvider.putPasswordImplementations(WildFlyElytronBaseProvider.java:107) at org.wildfly.security.password.WildFlyElytronPasswordProvider.(WildFlyElytronPasswordProvider.java:43) at org.wildfly.security.password.WildFlyElytronPasswordProvider.(WildFlyElytronPasswordProvider.java:36) ... 1 more This exception occurs during invocation of the MethodHandle referenced by the classData. During the assembly phase the MethodHandle referenced by the classData is created as part of the indy resolution. Its MethodType gets added to the MethodType::internTable. But by the time indy resolution happens, JVM has already taken a snapshot of the MethodType::internTable through an upcall to MethodType::createArchivedObjects(). As a result the MethodType leaks into the AOTCache but is not reachable through AOTHolder.archivedMethodTypes. Now, during the production run, when the JVM invokes the MethodHandle, it searches AOTHolder.archivedMethodTypes for the MethodType corresponding to the signature passed at the callsite but fails to find one. So it creates a new instance of the MethodType. But Invokers.checkExactType() relies on the MethodHandle's type to be the same object as the MethodType object passed as parameter. static void checkExactType(MethodHandle mhM, MethodType expected) { MethodType targetType = mh.type(); if (targetType != expected) throw newWrongMethodTypeException(targetType, expected); } Hence, it throws WrongMethodTypeException though the two MT objects have the same signature. This issue is fixed by ensuring that during the assembly phase JVM takes the snapshot of the MethodType::internTable after completing executing any Java code that can generate new MethodType objects. This is achieved by moving the call to MethodType::createArchivedObjects() further down the code path during the assembly phase. Problem #3: With these two changes in place, Infinispan server test-case works fine, but the changes cause another test case [2] to fail. The failure happens in the assembly phase due to NPE thrown during initialization of class PrimitiveClassDescImpl. Its initialization is triggered "forcefully" in MetaspaceShared::link_shared_classes(). Stacktrace for the NPE is: [0] jdk/internal/constant/MethodTypeDescImpl::validateArgument(Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/ClassDesc; @ bci 1 [1] jdk/internal/constant/MethodTypeDescImpl::ofTrusted(Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljdk/internal/constant/MethodTypeDescImpl; @ bci 27 [2] java/lang/constant/ConstantDescs::ofConstantBootstrap(Ljava/lang/constant/ClassDesc;Ljava/lang/String;Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/DirectMethodHandleDesc; @ bci 47 [3] java/lang/constant/ConstantDescs:: @ bci 664 [4] jdk/internal/constant/PrimitiveClassDescImpl::(Ljava/lang/String;)V @ bci 1 [5] jdk/internal/constant/PrimitiveClassDescImpl::(Ljava/lang/String;)V @ bci 6 Invocation of PrimitiveClassDescImpl:: results in initialization of ConstantDescs class (see frame 3 in above stacktrace). ConstantDescs:: @ 664 corresponds to following java code: public static final DirectMethodHandleDesc BSM_CLASS_DATA_AT = ofConstantBootstrap(CD_MethodHandles, "classDataAt", CD_Object, CD_int); The last parameter CD_int is defined as: public static final ClassDesc CD_int = PrimitiveClassDescImpl.CD_int; So, its value is obtained from PrimitiveClassDescImpl.CD_int which hasn't been initialized properly yet. As a result ConstantDescs::CD_int gets default value null, which causes MethodTypeDescImpl::validateArgument to throw NPE later. If the initialization of ConstantDescs is triggered before PrimitiveClassDescImpl then we won't run into NPE. So, there is a class initialization circularity involving PrimitiveClassDescImpl and ConstantDescs, and the result depends on which class gets initialized first. This behavior can be recreated by explicitly loading these classes: public class ClassOrderTest { public static void main(String args[]) throws Exception { Class.forName("java.lang.constant.ConstantDescs"); Class.forName("jdk.internal.constant.PrimitiveClassDescImpl"); } } Above program works fine but if the order of classes is reversed as: public class ClassOrderTest { public static void main(String args[]) throws Exception { Class.forName("jdk.internal.constant.PrimitiveClassDescImpl"); Class.forName("java.lang.constant.ConstantDescs"); } } then it throws NPE which is the same as mentioned above: Exception in thread "main" java.lang.ExceptionInInitializerError at java.base/jdk.internal.constant.PrimitiveClassDescImpl.(PrimitiveClassDescImpl.java:85) at java.base/jdk.internal.constant.PrimitiveClassDescImpl.(PrimitiveClassDescImpl.java:45) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:475) at java.base/java.lang.Class.forName(Class.java:455) at ClassOrderTest.main(ClassOrderTest.java:4) Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.constant.ClassDesc.descriptorString()" because "arg" is null at java.base/jdk.internal.constant.MethodTypeDescImpl.validateArgument(MethodTypeDescImpl.java:89) at java.base/jdk.internal.constant.MethodTypeDescImpl.ofTrusted(MethodTypeDescImpl.java:83) at java.base/java.lang.constant.ConstantDescs.ofConstantBootstrap(ConstantDescs.java:381) at java.base/java.lang.constant.ConstantDescs.(ConstantDescs.java:282) ... 6 more The workaround for this issue is to remove the "forceful" initialization of classes in the assembly phase. [0] https://mail.openjdk.org/pipermail/leyden-dev/2024-September/000987.html [1] https://github.com/openjdk/leyden/commit/7a6fadcae03d86c91713ffae452817bce7a4674d [2] https://github.com/ashu-mehra/leyden-testcase Thanks, - Ashutosh Mehra -------------- next part -------------- An HTML attachment was scrubbed... URL: From ioi.lam at oracle.com Thu Oct 3 03:19:55 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Wed, 2 Oct 2024 20:19:55 -0700 Subject: Infinispan server issue - putting it all together In-Reply-To: References: Message-ID: <8a86b1c4-85c0-4360-96c0-915cdd0a78ff@oracle.com> Hi Ashutosh, Thanks for putting together the summary! I have one comment below On 10/1/24 10:05 AM, Ashutosh Mehra wrote: > The thread for Infinispan issue [0] tried to tackle 3 problems at the > same time which made it difficult to follow it. So here is an attempt to > give description of each problem in the order it was discovered and > investigated. > > Most of the following text is copied from the thread mentioned earlier. > Putting it all together in one place would hopefully help the reader to > get the complete picture. > Note that the fix for all these problems has already been pushed to the > premain branch in this patch [1]. > > Problem #1: > > It started with the NPE reported by the Infinispan server testcase in > the production run using premain: > > Exception in thread "main" java.lang.ExceptionInInitializerError > at com.redhat.leyden.Main.main(Main.java:7) > Caused by: java.lang.NullPointerException: Cannot invoke > "java.lang.invoke.MethodHandle.invokeExact(org.wildfly.security.WildFlyElytronBaseProvider, > java.security.Provider$Service)" because " > at > org.wildfly.security.WildFlyElytronBaseProvider$$Lambda/0x80000000c.accept(Unknown > Source) > at > org.wildfly.security.WildFlyElytronBaseProvider.putMakedPasswordImplementations(WildFlyElytronBaseProvider.java:112) > at > org.wildfly.security.WildFlyElytronBaseProvider.putPasswordImplementations(WildFlyElytronBaseProvider.java:107) > at > org.wildfly.security.password.WildFlyElytronPasswordProvider.(WildFlyElytronPasswordProvider.java:43) > at > org.wildfly.security.password.WildFlyElytronPasswordProvider.(WildFlyElytronPasswordProvider.java:36) > ... 1 more > > Method throwing the NPE is in the lambda class: > > ? public void accept(java.lang.Object); > ? ? descriptor: (Ljava/lang/Object;)V > ? ? flags: (0x0001) ACC_PUBLIC > ? ? Code: > ? ? ? stack=3, locals=2, args_size=2 > ? ? ? ? ?0: ldc ? ? ? ? ? #26 ? ? ? ? ? ? ? ? // Dynamic > #0:_:Ljava/lang/invoke/MethodHandle; > ? ? ? ? ?2: aload_0 > ? ? ? ? ?3: getfield ? ? ?#13 ? ? ? ? ? ? ? ? // Field > arg$1:Lorg/wildfly/security/WildFlyElytronBaseProvider; > ? ? ? ? ?6: aload_1 > ? ? ? ? ?7: checkcast ? ? #28 ? ? ? ? ? ? ? ? // class > java/security/Provider$Service > ? ? ? ? 10: invokevirtual #34 ? ? ? ? ? ? ? ? // Method > java/lang/invoke/MethodHandle.invokeExact:(Lorg/wildfly/security/WildFlyElytronBaseProvider;Ljava/security/Provider$Service;)V > ? ? ? ? 13: return > > BootstrapMethods: > ? 0: #22 REF_invokeStatic > java/lang/invoke/MethodHandles.classData:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; > ? ? Method arguments: > > NPE is generated at bci 10 when executing invokevirtual bytecode which > indicates the MethodHandle obtained by loading the dynamic constant at > bci 0 is null. That MethodHandle is obtained through the bootstrap > method which retrieves the lambda class's classData. The reason for > classData being null is that scratch mirrors are not populated with the > classData when they are dumped into the AOT cache.This issue is resolved > by setting the classData in the scratch mirror in > HeapShared::copy_preinitialized_mirror(). See the change in > cds/heapShared.cpp in the patch [1]. > > Problem #2: > > With the above fix in place running Infinispan server test case hits > WrongMethodTypeException in the production run: > > Exception in thread "main" java.lang.ExceptionInInitializerError > at com.redhat.leyden.Main.main(Main.java:7) > Caused by: java.lang.invoke.WrongMethodTypeException: handle's method > type (WildFlyElytronBaseProvider,Service)void but found > (WildFlyElytronBaseProvider,Service)void > ? ? ? ? at > java.base/java.lang.invoke.Invokers.newWrongMethodTypeException(Invokers.java:521) > ? ? ? ? at > java.base/java.lang.invoke.Invokers.checkExactType(Invokers.java:530) > ? ? ? ? at > java.base/java.lang.invoke.Invokers$Holder.invokeExact_MT(Invokers$Holder) > ? ? ? ? at > org.wildfly.security.WildFlyElytronBaseProvider$$Lambda/0x80000000c.accept(Unknown > Source) > ? ? ? ? at > org.wildfly.security.WildFlyElytronBaseProvider.putMakedPasswordImplementations(WildFlyElytronBaseProvider.java:112) > ? ? ? ? at > org.wildfly.security.WildFlyElytronBaseProvider.putPasswordImplementations(WildFlyElytronBaseProvider.java:107) > ? ? ? ? at > org.wildfly.security.password.WildFlyElytronPasswordProvider.(WildFlyElytronPasswordProvider.java:43) > ? ? ? ? at > org.wildfly.security.password.WildFlyElytronPasswordProvider.(WildFlyElytronPasswordProvider.java:36) > ? ? ? ? ... 1 more > > This exception occurs during invocation of the MethodHandle referenced > by the classData. During the assembly phase the MethodHandle > referenced by the classData is created as part of the indy resolution. > Its MethodType gets added to the MethodType::internTable. But by the > time indy resolution happens, JVM has already taken a snapshot of the > MethodType::internTable through an upcall to > MethodType::createArchivedObjects(). As a result the MethodType leaks > into the AOTCache but is not reachable through > AOTHolder.archivedMethodTypes. > > Now, during the production run, when the JVM invokes the MethodHandle, > it searches AOTHolder.archivedMethodTypes for the MethodType > corresponding to the signature passed at the callsite but fails to find > one. So it creates a new instance of the MethodType. > But Invokers.checkExactType() relies on the MethodHandle's type to be the > same object as the MethodType object passed as parameter. > > ? ? static void checkExactType(MethodHandle mhM, MethodType expected) { > ? ? ? ? MethodType targetType = mh.type(); > ? ? ? ? if (targetType != expected) > ? ? ? ? ? ? throw newWrongMethodTypeException(targetType, expected); > ? ? } > > Hence, it throws WrongMethodTypeException though the two MT objects > have the same signature. > > This issue is fixed by ensuring that during the assembly phase JVM takes > the snapshot of the MethodType::internTable after completing executing > any Java code that can generate new MethodType objects. This is achieved > by moving the call to MethodType::createArchivedObjects() further down > the code path during the assembly phase. > > Problem #3: > > With these two changes in place, Infinispan server test-case works fine, > but the changes cause another test case [2] to fail. > The failure happens in the assembly phase due to NPE thrown during > initialization of class PrimitiveClassDescImpl. Its initialization is > triggered "forcefully" in MetaspaceShared::link_shared_classes(). > Stacktrace for the NPE is: > > [0] > jdk/internal/constant/MethodTypeDescImpl::validateArgument(Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/ClassDesc; > @ bci 1 > [1] > jdk/internal/constant/MethodTypeDescImpl::ofTrusted(Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljdk/internal/constant/MethodTypeDescImpl; > @ bci 27 > [2] > java/lang/constant/ConstantDescs::ofConstantBootstrap(Ljava/lang/constant/ClassDesc;Ljava/lang/String;Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/DirectMethodHandleDesc; > @ bci 47 > [3] java/lang/constant/ConstantDescs:: @ bci 664 > [4] > jdk/internal/constant/PrimitiveClassDescImpl::(Ljava/lang/String;)V > @ bci 1 > [5] > jdk/internal/constant/PrimitiveClassDescImpl::(Ljava/lang/String;)V > @ bci 6 > > Invocation of PrimitiveClassDescImpl:: results in initialization > of ConstantDescs class (see frame 3 in above stacktrace). > ConstantDescs:: @ 664 corresponds to following java code: > > ? ? public static final DirectMethodHandleDesc BSM_CLASS_DATA_AT > ? ? ? ? ? ? = ofConstantBootstrap(CD_MethodHandles, "classDataAt", > ? ? ? ? ? ? CD_Object, CD_int); > > The last parameter CD_int is defined as: > > ? ? public static final ClassDesc CD_int = PrimitiveClassDescImpl.CD_int; > > So, its value is obtained from PrimitiveClassDescImpl.CD_int which > hasn't been initialized properly yet. As a result ConstantDescs::CD_int > gets default value null, which causes MethodTypeDescImpl::validateArgument > to throw NPE later. If the initialization of ConstantDescs is triggered > before PrimitiveClassDescImpl then we won't run into NPE. > So, there is a class initialization circularity involving > PrimitiveClassDescImpl and ConstantDescs, and the result depends on which > class gets initialized first. > > This behavior can be recreated by explicitly loading these classes: > > public class ClassOrderTest { > ? public static void main(String args[]) throws Exception { > ? ? Class.forName("java.lang.constant.ConstantDescs"); > Class.forName("jdk.internal.constant.PrimitiveClassDescImpl"); > ? } > } > > Above program works fine but if the order of classes is reversed as: > > public class ClassOrderTest { > ? public static void main(String args[]) throws Exception { > Class.forName("jdk.internal.constant.PrimitiveClassDescImpl"); > ? ? Class.forName("java.lang.constant.ConstantDescs"); > ? } > } > > then it throws NPE which is the same as mentioned above: > > Exception in thread "main" java.lang.ExceptionInInitializerError > at > java.base/jdk.internal.constant.PrimitiveClassDescImpl.(PrimitiveClassDescImpl.java:85) > at > java.base/jdk.internal.constant.PrimitiveClassDescImpl.(PrimitiveClassDescImpl.java:45) > at java.base/java.lang.Class.forName0(Native Method) > at java.base/java.lang.Class.forName(Class.java:475) > at java.base/java.lang.Class.forName(Class.java:455) > at ClassOrderTest.main(ClassOrderTest.java:4) > Caused by: java.lang.NullPointerException: Cannot invoke > "java.lang.constant.ClassDesc.descriptorString()" because "arg" is null > at > java.base/jdk.internal.constant.MethodTypeDescImpl.validateArgument(MethodTypeDescImpl.java:89) > at > java.base/jdk.internal.constant.MethodTypeDescImpl.ofTrusted(MethodTypeDescImpl.java:83) > at > java.base/java.lang.constant.ConstantDescs.ofConstantBootstrap(ConstantDescs.java:381) > at > java.base/java.lang.constant.ConstantDescs.(ConstantDescs.java:282) > ... 6 more > > The workaround for this issue is to remove the "forceful" > initialization of classes in the assembly phase. I believe the issue is that some JDK classes have circular dependencies, and must be initialized in a certain order. When we execute "normal" Java programs, we somehow come into an initialization order that "works". However, the "forceful" initialization CDS code (which has been removed in [2]) initializes these classes in an order that hasn't been tested, and runs into the above NullPointerException. It's not clear if such an order can be achieved by "normal" Java programs, so we potentially have a bug in the core library with ConstantDescs and related classes. If I have time, I will try to write a Java program that replays the same order as with the above NullPointerException. In any case, CDS now avoids explicitly initializing classes. So hopefully it will not deviate from the well tested execution paths and avoid any surpises. Thanks - Ioi > > [0] > https://mail.openjdk.org/pipermail/leyden-dev/2024-September/000987.html > [1] > https://github.com/openjdk/leyden/commit/7a6fadcae03d86c91713ffae452817bce7a4674d > [2] https://github.com/ashu-mehra/leyden-testcase > > Thanks, > - Ashutosh Mehra -------------- next part -------------- An HTML attachment was scrubbed... URL: From ioi.lam at oracle.com Thu Oct 3 05:13:15 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Wed, 2 Oct 2024 22:13:15 -0700 Subject: Class initialization in JEP 483 Message-ID: TL;DR I want to discuss how Java classes are initialized as a part of the implementation of the up-coming JEP 483 [1]. This is by no means a clean design. It's a compromise due to the complexity of the Java classes, such as java.lang.invoke.*, that JEP 483 wants to optimize. In the future, we can make thing much better by, perhaps, refactoring the Java classes. Here, I want to get a consensus if the current implementation in JEP 483 is "good enough" to be integrated into the mainline. *(A) Background* JEP 483 includes the AOT-linking of invokedynamic call sites. As a result, it becomes necessary for the AOT cache to store objects such as MethodTypes, as well as generated LambdaForm classes. A basic requirement for Java objects is -- when an object of type X becomes accessible by Java bytecodes, we must have at least started the initialization of X [2]. We want to preserve this behavior for cached objects, so we won't run into incompatibilities when using cached objects. So how do we meet this requirement? *(B) Existing Solution in JDK Mainline* In the current JDK mainline, cached objects are "loaded" into a Java program via explicit CDS.initializeFromArchive() calls. See [3] for an example in java/lang/Integer$IntegerCache class IntegerCache { ? ... ? // at this point, IntegerCache::archivedCache is null ? CDS.initializeFromArchive(IntegerCache.class); ? // at this point, IntegerCache::archivedCache is loaded from the AOT cache As part of the CDS.initializeFromArchive() call, the classes of all objects that are reachable from archivedCache are initialized. You can see this list classes by: $ java -Xshare:dump -Xlog:cds+heap | grep IntegerCache [...] [1.063s][info][cds,heap] Archived object klass java.lang.Integer$IntegerCache ( 0) => [Ljava.lang.Integer; [1.063s][info][cds,heap] Archived object klass java.lang.Integer$IntegerCache ( 1) => java.lang.Integer All classes listed above will be initialized before archivedCache becomes non-null. *(C) New Challenges with java.lang.invoke* In JEP 483, in order to support AOT-linking of invokedynamic, we run into a few issues. #1. We can no longer use the CDS.initializeFromArchive() design due to a circular dependency between MethodType and DirectMethodHandle [4] [5]. #2. Some cached objects in java.lang.invoke may point to static fields whose identity is significant. A simplified example looks like this: ??? class A { ???????? static final Object x = new Object(); ??? } ??? class B { ????????? Object y = A.x; ????????? boolean isValid() { return y == A.x; } ??? } ? ? B cachedB = new B(); ??? /* executed during assembly phase */ If we store?cachedB into the AOT cache, we will recursively store the cachedB.y field, which points to the version of A.x during the assembly phase. During the production run, if we allow A. to be executed again, cacheB.isValid() will return false because cachedB.y is now a different instance than A.x. In fact, #2 is not a new problem. There's already a debugging class - CDSHeapVerifier - that checks for potential errors [6] *(D) Solution in JEP 483* In JEP 483, the solution is "AOT-initialized classes". For the above example, we store class A in the AOT cache in the "initialized" state. During the production run, A. is no longer executed, and A.x maintains its value as in the assembly phase. The process of finding all the "AOT-initialized classes" needed by JEP 483: - Perform a training run with an application that uses many lambda expressions - Create an AOT cache using data from this training run. Look for warnings produced by CDSHeapVerifier: Archive heap points to a static field that may be reinitialized at runtime: Field: java/lang/invoke/SimpleMethodHandle::BMH_SPECIES Value: java.lang.invoke.BoundMethodHandle$SpeciesData {0x000000060e8962f0} - klass: 'java/lang/invoke/BoundMethodHandle$SpeciesData' - flags: [...] --- trace begin --- [ 0] {0x000000060f410170} [Ljava.lang.Object; @[238] [ 1] {0x000000060f430520} java.lang.invoke.BoundMethodHandle$Species_L::type (offset = 16) [ 2] {0x000000060e8ab130} java.lang.invoke.MethodType::form (offset = 20) [ 3] {0x000000060e883b70} java.lang.invoke.MethodTypeForm::lambdaForms (offset = 28) [ 4] {0x000000060e883b90} [Ljava.lang.Object; @[7] [ 5] {0x000000060e89a428} java.lang.invoke.LambdaForm::names (offset = 32) [ 6] {0x000000060e89a3b0} [Ljava.lang.invoke.LambdaForm$Name; @[0] [ 7] {0x000000060e897fb8} java.lang.invoke.LambdaForm$Name::constraint (offset = 24) [ 8] {0x000000060e896ab8} java.lang.invoke.BoundMethodHandle$SpeciesData::this$0 (offset = 40) [ 9] {0x000000060e895aa0} java.lang.invoke.BoundMethodHandle$Specializer::topSpecies (offset = 44) [10] {0x000000060e8962f0} java.lang.invoke.BoundMethodHandle$SpeciesData --- trace end --- In this example, we see a cached object? (0x000000060e895aa0) points to {0x000000060e8962f0}, which is in the static field SimpleMethodHandle::BMH_SPECIES. To get rid of this warning, we add SimpleMethodHandle to the list in AOTClassInitializer::can_archive_initialized_mirror [7] - Create the AOT cache again. You may see new warnings because the mirror of SimpleMethodHandle may point to the static fields of other clases. - Keep doing this until you can no longer see these warnings *(E) List of aot-initialized classes* For a traning run like "javac HelloWorld.java", we can produce an AOT cache that contains the following 22 aot-initialized classes java.lang.constant.ConstantDescs java.lang.constant.DynamicConstantDesc java.lang.Enum java.lang.invoke.BoundMethodHandle java.lang.invoke.BoundMethodHandle$Specializer java.lang.invoke.BoundMethodHandle$Species_L java.lang.invoke.BoundMethodHandle$Species_LL java.lang.invoke.ClassSpecializer java.lang.invoke.ClassSpecializer$1 java.lang.invoke.ClassSpecializer$Factory java.lang.invoke.ClassSpecializer$SpeciesData java.lang.invoke.DelegatingMethodHandle java.lang.invoke.DirectMethodHandle java.lang.invoke.DirectMethodHandle$Holder java.lang.invoke.LambdaForm java.lang.invoke.LambdaForm$NamedFunction java.lang.invoke.MethodHandle java.lang.invoke.MethodType$AOTHolder java.lang.invoke.SimpleMethodHandle java.lang.Object jdk.internal.constant.PrimitiveClassDescImpl jdk.internal.constant.ReferenceClassDescImpl Plus the following 7 enum types that have customized code java.lang.constant.DirectMethodHandleDesc$Kind java.lang.invoke.LambdaForm$BasicType java.lang.invoke.VarHandle$AccessMode java.lang.invoke.VarHandle$AccessType java.lang.reflect.AccessFlag$Location java.util.stream.StreamOpFlag sun.invoke.util.Wrapper *(F) List of Init-at-JVM-start classes* During the production run, these classes are loaded into the VM in the "initialized" state. As a result, the static fields of these classes become reachable. We must initialize the classes of all objects that are reachable from these static fields. There are 24 such classes. java.lang.ArithmeticException java.lang.ArrayIndexOutOfBoundsException java.lang.ArrayStoreException java.lang.Class java.lang.ClassCastException java.lang.Double java.lang.Float java.lang.Integer java.lang.InternalError java.lang.NullPointerException java.lang.invoke.BoundMethodHandle$Specializer$Factory java.lang.invoke.BoundMethodHandle$SpeciesData java.lang.invoke.DirectMethodHandle$Accessor java.lang.invoke.DirectMethodHandle$Constructor java.lang.invoke.Invokers java.lang.invoke.LambdaForm$Name java.lang.invoke.LambdaFormEditor$Transform java.lang.invoke.MemberName java.lang.invoke.MemberName$Factory java.lang.invoke.MethodHandleImpl$IntrinsicMethodHandle java.lang.invoke.MethodType java.lang.invoke.MethodTypeForm java.util.EnumMap java.util.concurrent.ConcurrentHashMap (E.g., MethodType$AOTHolder contains a HashMap that stores many MethodTypes, so we must initialize the MethodType class. Note that HashMap is not in the list because it doesn't have a . For clarify, I have omitted all classes that can be trivially initialized). (G) Testing and Validation The output "Archive heap points to a static field that may be reinitialized" is checked by more than 300 CDS test cases [8]. This ensures that we have a correct list of AOT-initialized classes. This will also catch any future changes in the Java classes in java.lang.invoke that may be incompatible with JEP 483. Also, since the (E) and (F) lists are small (about 50 classes), it's possible for a human to examine those classes to find potential problems - For example, an AOT-initialized class shouldn't be dependent on the environment, such as storing the current time of day, etc. *(H) Extensibility, or lack thereof* This design limits future Leyden optimization as any significant increase of the list of classes in (E) and (F) will make human validation much more difficult. We should consider using automated validation tools, as well as refactoring the Java classes to make it easier to decide what classes can be AOT-initialized. ======= [1] https://openjdk.org/jeps/483 [2] Due to circularity, it may be possible to created an instance of X before X:: finishes. [3] https://github.com/openjdk/jdk/blob/602408e4f3848b30299ea94264e88ead5361a310/src/java.base/share/classes/java/lang/Integer.java#L957-L969 [4] https://mail.openjdk.org/pipermail/leyden-dev/2024-August/000911.html [5] https://github.com/openjdk/leyden/blob/3a84df9d9860e743684e335282e3910b14cc982b/src/hotspot/share/cds/heapShared.cpp#L1415-L1466 [6] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/cds/cdsHeapVerifier.cpp [7] https://github.com/iklam/jdk/blob/49eb47b6a9889625dc8bac6922cec6a5625a26b2/src/hotspot/share/cds/aotClassInitializer.cpp#L178-L192 [8] https://github.com/iklam/jdk/blob/49eb47b6a9889625dc8bac6922cec6a5625a26b2/test/lib/jdk/test/lib/cds/CDSTestUtils.java#L289 -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastien.deleuze at broadcom.com Thu Oct 3 07:59:44 2024 From: sebastien.deleuze at broadcom.com (Sebastien Deleuze) Date: Thu, 3 Oct 2024 09:59:44 +0200 Subject: Spring Boot BackgroundPreinitializer Message-ID: Hi, I would like to bring to the attention of the working group https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/BackgroundPreinitializer.java that we are using to speedup Spring Boot startup time on machines with at least 2 cores on the JVM. It creates and drops instances of popular but costly to initialize instances (Jackson, Hibernate Validator, etc.) and invoke some JDK methods ( StandardCharsets.UTF_8.name(), ZoneId.systemDefault()) to pre-load related classes and pre-initialize related static fields on a dedicated thread. I think with the AOT cache, the class-preloading effect is not visible anymore, maybe the pre-initialization of static fields still has an impact. Ideally, I would hope that this kind of optimization will not be needed anymore with Leyden AOT cache in order to avoid creating instances that we drop, avoid to throw related exceptions when the libraries are not in the classpath, etc. I would like to ask feedback on those 3 points: - It may be interesting to compare what BackgroundPreinitializer does at runtime and the effect of AOT cache on related classes as we know those ones are impacting badly the startup time of typical enterprise applications and see if AOT cache could be refined with optimizations similar to what BackgroundPreinitializer does at runtime. - If we can't optimize more automatically, I am wondering if the idea of giving the possibility to frameworks to specify a list of costly classes safe to initialize in the AOT cache makes sense or not (Spring Boot could configure the one present in BackgroundPreinitializer for example). - It could be potentially useful to publish an API to know if AOT caching is enabled or not to allow us to disable this kind of mechanism in that case, something simple and fast like a method returning a boolean. Any thoughts? -- This electronic communication and the information and any files transmitted with it, or attached to it, are confidential and are intended solely for the use of the individual or entity to whom it is addressed and may contain information that is confidential, legally privileged, protected by privacy laws, or otherwise restricted from disclosure to anyone else. If you are not the intended recipient or the person responsible for delivering the e-mail to the intended recipient, you are hereby notified that any use, copying, distributing, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited. If you received this e-mail in error, please return the e-mail to the sender, delete it from your computer, and destroy any printed copy of it. -------------- next part -------------- An HTML attachment was scrubbed... URL: From john.r.rose at oracle.com Thu Oct 3 09:50:31 2024 From: john.r.rose at oracle.com (John Rose) Date: Thu, 03 Oct 2024 02:50:31 -0700 Subject: Class initialization in JEP 483 In-Reply-To: References: Message-ID: <5AEC7000-75B1-46F1-AD11-096BFEF8AAC8@oracle.com> On 2 Oct 2024, at 22:13, ioi.lam at oracle.com wrote: > TL;DR > > I want to discuss how Java classes are initialized as a part of the implementation of the up-coming JEP 483 [1]. > > This is by no means a clean design. It's a compromise due to the complexity of the Java classes, such as java.lang.invoke.*, that JEP 483 wants to optimize. > > In the future, we can make thing much better by, perhaps, refactoring the Java classes. > > Here, I want to get a consensus if the current implementation in JEP 483 is "good enough" to be integrated into the mainline. This is a useful analysis. Related to it, I have various ideas about ?shaping? the JDK classes to cooperate better with the AOT cache, and also adding new checks to the JVM to help detect classes which are ?not in good shape?. For now I hope we can determine correctness by inspection, and quickly follow up with work on (simple!) tools for validating the necessary assumptions. (Your email goes a long way towards clarifying what those necessary assumptions are.) That way maintainers won?t break the subtle init-order dependencies between java.base classes, with routine changes. > *(A) Background* > > JEP 483 includes the AOT-linking of invokedynamic call sites. As a result, it becomes necessary for the AOT cache to store objects such as MethodTypes, as well as generated LambdaForm classes. I have a ?stretch goal? in mind here: I think if we sort out the initialization of lambdas, MHs, MTs, LFs, and the rest of the indy infrastructure, we may understand the problem well enough to allow very early initialization of those system components. (And also, how to use the AOT cache to optimize their startup.) That in turn will enable us to use indy (and condy) with few or no restrictions on their usage. Recent JDK changes to convert lambdas to inner classes (or similar indy-avoidance tactics) will not be needed if indy is robustly initialized at an early point. But this requires mastering the bootstrap logic. Hence the stretch goal, since we are talking here about getting the bootstrap logic (specifically java.base init-order) under control. > A basic requirement for Java objects is -- > when an object of type X becomes accessible by Java bytecodes, we must have at least started the initialization of X [2]. We want to preserve this behavior for cached objects, so we won't run into incompatibilities when using cached objects. This is an interesting principle. It is normally true apart from the AOT cache, but it puts an extra burden on access to the AOT heap. Specifically, you can?t open up any (sub-)graph in the AOT heap for access until all classes mentioned in that heap (sub-)graph are at least starting their initialization. There?s a little more, in fact: If some class C is starting to init, but has not finished its init, then the access must be initially confined to the thread that is running C::. This is the normal JVM rule (other threads block until C:: returns) and must be emulated by the AOT cache as well. (Background: The AOT cache has a heap segment defining one or more graphs of objects. An object graph has one or more roots. Such a graph is an ?asset? in the AOT cache, that can be ?adopted? into the running JVM as an interconnected set of Java objects. Multiple AOT graphs might appear if we have separately defined decisions to adopt them. Or, we might just say ?take the whole graph or leave it?. For future work, it is somewhat clear we wish to allow Leyden-aware applications to layer AOT object graphs of their own on top of the java.base object graph or graphs. But we are not there yet; all of this is happening inside java.base. We must learn to walk before we can think about running.) Definition of ?CLASS REACHABILITY?: If an object X is in the AOT heap, then a class C is said to be ?reachable from X? if C is the class of X, or is a superclass or an implemented interface of X?s class. In addition, we say that C is ?reachable from X? (in a recursive sense) if C is reachable from another object Y which is referenced by a non-static field of X, or another object Y which is referenced by a static field of a class S (already) reachable from X. This definition is simply a transitive closure of an appropriately defined graph, where instances X point to their classes C and their non-static field referents, and classes C point to their super-types D and their static field referents Y. With that definition under our belt, we can say that when an object X, originally in the AOT heap, becomes reachable to java.base code (in the normal GC sense, during JDK startup), then every class reachable from X must have an appropriate initialization state. The definition of ?appropriate? here is tricky. Note that we can calculate this class-reachability statically. So, when it helps, we can make lists of classes C reachable from some AOT heap root X. Or we can take the union of all such lists, reachable from the whole AOT heap. So what is the most useful definition of an ?appropriate initialization state? of classes which become reachable as a result of adopting AOT heap objects? For maximum compatibility with existing Java practice, we would say that the initialization state must be either DONE or else it is STARTED, and the access to the AOT heap object is in the same thread that is running the clinit method. I suggest that we might want to simplify this rule. It would be nicer (for us, not for JDK programmers) if an AOT heap object X was adopted only after all reachable classes C (reachable from X) were in the DONE state. Maybe with one exception: If some reachable class C (from X) is in the STARTED state, then C is that unique class whose method is the youngest method on the current thread. This exception allows the method for MethodType to adopt some AOT asset in the AOT heap which contains a zillion MethodType objects, but nothing else that is not fully initialized. There are immediate objections to such a simplification, but I think they can be overcome, and I suspect the end state will be better for all of us. The MethodType class recursively initializes the MethodHandle class, so that it can build an invoker cache (via some intermediate non-public class). So you need MH.class initialized to make MHs for MT, and that happens during MT?s clinit, and there is a dependency loop, aka ?chicken and egg? problem. If we want to experiment with simplified initialization conditions, we will have to break such loops. It is possible, and may even be profitable for us. In the end, simpler initialization sequences will be easier to optimize and cache. > > So how do we meet this requirement? > > > *(B) Existing Solution in JDK Mainline* > > In the current JDK mainline, cached objects are "loaded" into a Java program via explicit CDS.initializeFromArchive() calls. See [3] for an example in java/lang/Integer$IntegerCache > > class IntegerCache { > ? ... > ? // at this point, IntegerCache::archivedCache is null > ? CDS.initializeFromArchive(IntegerCache.class); > ? // at this point, IntegerCache::archivedCache is loaded from the AOT cache The field IntegerCache.archivedCache (N.B. the :: syntax is only for methods, not fields) is a root which points into the AOT heap graph. Very cool! This does not violate the Java language rules, as long as the strange object graph is indistinguishable from an object graph which might have been created according to the usual rules of computation, from the context of the clinit method of the relevant class (IntegerCache). In fact, when booting an exploded build there is no AOT cache at all, and the necessary integer cache is built ?the hard way? and stored into a variable that CDS knows about. This handshake (by which the cache built the hard way is converted into an AOT asset, and then adopted into a production run) will get more and more regular over time, we think. > > As part of the CDS.initializeFromArchive() call, the classes of all objects that are reachable from archivedCache are initialized. (I am assuming that ?classes of all objects reachable? is closely aligned with my definition above, of class reachability!) Ioi: Please explain in a bit more detail why this is true. What part of the JVM (or JDK) grabs all the reachable classes and forcibly initializes them? Or, more subtly, why are we so very lucky that, by the time we can grab a pointer to that archived heap subgraph, somehow magically the classes are already initialized? (And are they really in the DONE init state, or might they be in the STARTED state in the current thread?) > You can see this list classes by: > > $ java -Xshare:dump -Xlog:cds+heap | grep IntegerCache > [...] > [1.063s][info][cds,heap] Archived object klass java.lang.Integer$IntegerCache ( 0) => [Ljava.lang.Integer; > [1.063s][info][cds,heap] Archived object klass java.lang.Integer$IntegerCache ( 1) => java.lang.Integer > > All classes listed above will be initialized before archivedCache becomes non-null. This is the crucial property to engineer into our system! > > > *(C) New Challenges with java.lang.invoke* > > In JEP 483, in order to support AOT-linking of invokedynamic, we run into a few issues. > > #1. We can no longer use the CDS.initializeFromArchive() design due to a circular dependency between MethodType and DirectMethodHandle [4] [5]. Maybe we can find a solution here which embraces the circularity, by making the whole bundle of mutually-recursive classes be AOT-initialized. So it doesn?t matter what order they are initialized, for the very special reason that the initialization takes place ?as if instantaneously?. Maybe in this case, or in future similar cases, we will need to break the circularity. If that is the case, then something like this will happen: First MethodType gets fully initialized, and during that process NO INSTANTIATION of MethodHandles is performed. (How draconian!) Later, MethodHandle is fully initialized and all its code enjoys the full initialization of MethodType. For the class MethodHandle, there might be hundreds or thousands of AOT heap objects that are method handles, containing pointers to AOT method type objects. The present problem is that a MethodType has a cached struct (or array) of invokers, and each invoker is a MH, and each MH has a MT. That is a circularity. Can it be broken? Yes, by changes to JDK code. I suspect this is in our future, although at present I hope we can get away with the trick (mentioned above) of simultaneous initialization (of MT and MH at the same time, also entangled classes like DMH). > #2. Some cached objects in java.lang.invoke may point to static fields whose identity is significant. A simplified example looks like this: > > ??? class A { > ???????? static final Object x = new Object(); > ??? } > ??? class B { > ????????? Object y = A.x; > ????????? boolean isValid() { return y == A.x; } > ??? } > > ? ? B cachedB = new B(); ??? /* executed during assembly phase */ > > If we store?cachedB into the AOT cache, we will recursively store the cachedB.y field, which points to the version of A.x during the assembly phase. During the production run, if we allow A. to be executed again, cacheB.isValid() will return false because cachedB.y is now a different instance than A.x. > > In fact, #2 is not a new problem. There's already a debugging class - CDSHeapVerifier - that checks for potential errors [6] We need rules for object identities as well. I see two of them. First, if an object X is known to be private, and all the private code that works on it does not inspect its identity (via X==Y or System::identityHashCode(X)) we can certify that there is no danger. Second, if X is public or escapes in some way to ?random? user code (that might do X==Y etc.) then we must ensure that, IF the AOT heap graph including X is adopted, THEN all environmental queries have been respected, and there will never be a reason to un-adopt X. > *(D) Solution in JEP 483* > > In JEP 483, the solution is "AOT-initialized classes". For the above example, we store class A in the AOT cache in the "initialized" state. During the production run, A. is no longer executed, and A.x maintains its value as in the assembly phase. Definition: An ?AOT initialized class? is one whose Class object exists in the AOT heap graph, and that object is populated with the initial values of all static fields of that class. Definition: A post-AOT initialized class is any class that is not AOT-initialized (in some Leyden AOT cache configuration). Post-AOT initialized classes can be further split into ?startup initialized? classes (whose clinit methods the JVM runs directly in the premain phase) and ?JIT initialized? classes (whose clinit methods are run at the last possible moment). Definition: A ?premain initialized? class is either AOT initialized, or else startup initialized, but not JIT initialized. Recall that ?premain? is the bootstrapping phase before the application main is invoked. The init actions that happen during premain might be AOT actions (which seem to happen immediately) or startup actions (slower but hopefully still very fast). When we can do this AOT initialization optimization for some class C, it is very powerful. It allows us to include AOT graph objects at will, from which C is reachable, and not worry about the timing of their adoption. It is as if all such C were initialized very, very quickly, at JVM startup, before any other action happens. > The process of finding all the "AOT-initialized classes" needed by JEP 483: > > - Perform a training run with an application that uses many lambda expressions > > - Create an AOT cache using data from this training run. Look for warnings produced by CDSHeapVerifier: > > Archive heap points to a static field that may be reinitialized at runtime: I have a problem with this formulation: We never set out to ?reinitialize? any class, so ?may be reinitialized? is a counter-factual statement. We only set out to AOT-initialize classes if the user?s observation of them sees the classes to be initialized exactly once, but very, very quickly. I would prefer to rephrase the error message (and underlying concept) as: ?Archive heap points to a static field that requires post-AOT initialization? (or ?startup initialization? or some such). Situations which tempt us to think of reinitialization are situations where we are creating bootstrapping bugs. > Field: java/lang/invoke/SimpleMethodHandle::BMH_SPECIES > Value: java.lang.invoke.BoundMethodHandle$SpeciesData > {0x000000060e8962f0} - klass: 'java/lang/invoke/BoundMethodHandle$SpeciesData' - flags: > [...] > --- trace begin --- > [ 0] {0x000000060f410170} [Ljava.lang.Object; @[238] > [ 1] {0x000000060f430520} java.lang.invoke.BoundMethodHandle$Species_L::type (offset = 16) > [ 2] {0x000000060e8ab130} java.lang.invoke.MethodType::form (offset = 20) > [ 3] {0x000000060e883b70} java.lang.invoke.MethodTypeForm::lambdaForms (offset = 28) > [ 4] {0x000000060e883b90} [Ljava.lang.Object; @[7] > [ 5] {0x000000060e89a428} java.lang.invoke.LambdaForm::names (offset = 32) > [ 6] {0x000000060e89a3b0} [Ljava.lang.invoke.LambdaForm$Name; @[0] > [ 7] {0x000000060e897fb8} java.lang.invoke.LambdaForm$Name::constraint (offset = 24) > [ 8] {0x000000060e896ab8} java.lang.invoke.BoundMethodHandle$SpeciesData::this$0 (offset = 40) > [ 9] {0x000000060e895aa0} java.lang.invoke.BoundMethodHandle$Specializer::topSpecies (offset = 44) > [10] {0x000000060e8962f0} java.lang.invoke.BoundMethodHandle$SpeciesData > --- trace end --- > > In this example, we see a cached object? (0x000000060e895aa0) points to {0x000000060e8962f0}, which is in the static field SimpleMethodHandle::BMH_SPECIES. > > To get rid of this warning, we add SimpleMethodHandle to the list in AOTClassInitializer::can_archive_initialized_mirror [7] > > - Create the AOT cache again. You may see new warnings because the mirror of SimpleMethodHandle may point to the static fields of other clases. > > - Keep doing this until you can no longer see these warnings This is a good process. I think we want to build in enough bootstrap checking logic into the JVM so that a maintainer who breaks this discipline will hear about it quickly, without having to enable warnings and then sift through them. I am beginning to think that we should experiment with annotations on java.base classes that express our intention to AOT-initialize them, with VM checks (at least in debug builds) that ensure this is safe to do. > *(E) List of aot-initialized classes* > > For a traning run like "javac HelloWorld.java", we can produce an AOT cache that contains the following 22 aot-initialized classes > > java.lang.constant.ConstantDescs > java.lang.constant.DynamicConstantDesc > java.lang.Enum > java.lang.invoke.BoundMethodHandle > java.lang.invoke.BoundMethodHandle$Specializer > java.lang.invoke.BoundMethodHandle$Species_L > java.lang.invoke.BoundMethodHandle$Species_LL > java.lang.invoke.ClassSpecializer > java.lang.invoke.ClassSpecializer$1 > java.lang.invoke.ClassSpecializer$Factory > java.lang.invoke.ClassSpecializer$SpeciesData > java.lang.invoke.DelegatingMethodHandle > java.lang.invoke.DirectMethodHandle > java.lang.invoke.DirectMethodHandle$Holder > java.lang.invoke.LambdaForm > java.lang.invoke.LambdaForm$NamedFunction > java.lang.invoke.MethodHandle > java.lang.invoke.MethodType$AOTHolder > java.lang.invoke.SimpleMethodHandle > java.lang.Object > jdk.internal.constant.PrimitiveClassDescImpl > jdk.internal.constant.ReferenceClassDescImpl > > > Plus the following 7 enum types that have customized code > > java.lang.constant.DirectMethodHandleDesc$Kind > java.lang.invoke.LambdaForm$BasicType > java.lang.invoke.VarHandle$AccessMode > java.lang.invoke.VarHandle$AccessType > java.lang.reflect.AccessFlag$Location > java.util.stream.StreamOpFlag > sun.invoke.util.Wrapper > > > *(F) List of Init-at-JVM-start classes* > > During the production run, these classes are loaded into the VM in the "initialized" state. As a result, the static fields of these classes become reachable. We must initialize the classes of all objects that are reachable from these static fields. There are 24 such classes. I am not following here. If the class is in an initialized state, is there some process that happens later which runs the clinit again? (Is this the dreaded ?reinitialization??) If we allow this, it is technical debt, and we have to have a plan to eliminate it, lest it eventually become visible. (We can and must perform some kinds of non-standard actions to boot up the first few classes, but they need to be minimized.) > java.lang.ArithmeticException > java.lang.ArrayIndexOutOfBoundsException > java.lang.ArrayStoreException > java.lang.Class > java.lang.ClassCastException > java.lang.Double > java.lang.Float > java.lang.Integer > java.lang.InternalError > java.lang.NullPointerException > java.lang.invoke.BoundMethodHandle$Specializer$Factory > java.lang.invoke.BoundMethodHandle$SpeciesData > java.lang.invoke.DirectMethodHandle$Accessor > java.lang.invoke.DirectMethodHandle$Constructor > java.lang.invoke.Invokers > java.lang.invoke.LambdaForm$Name > java.lang.invoke.LambdaFormEditor$Transform > java.lang.invoke.MemberName > java.lang.invoke.MemberName$Factory > java.lang.invoke.MethodHandleImpl$IntrinsicMethodHandle > java.lang.invoke.MethodType > java.lang.invoke.MethodTypeForm > java.util.EnumMap > java.util.concurrent.ConcurrentHashMap > > (E.g., MethodType$AOTHolder contains a HashMap that stores many MethodTypes, so we must initialize the MethodType class. Note that HashMap is not in the list because it doesn't have a . For clarify, I have omitted all classes that can be trivially initialized). The only thing that might stop us from AOT-initializing a class with no clinit would be a superclass (or interface) that has a clinit which is not AOT initializable. Connecting back to the reachability concept: As soon as some X in the AOT heap become reachable (in the normal GC sense), then all classes C reachable from X must be initialized (or perhaps ?started? in the current thread). It would be best, of course, if those classes were all AOT initialized. If not, we need a story to ensure they are startup initialized (if not AOT initialized). I think this means that if some class C is AOT initialized, then its super S must also be AOT initialized, or else any access to an instance X which can reach C must be organized so that the startup initialization of S gets run first. I think our current state of the art is that we run such startup initializers ASAP, and test that there are no bugs. It would be good to have more accurate checks as well, if we can define them suitably. > (G) Testing and Validation > > The output "Archive heap points to a static field that may be reinitialized" is checked by more than 300 CDS test cases [8]. This ensures that we have a correct list of AOT-initialized classes. This will also catch any future changes in the Java classes in java.lang.invoke that may be incompatible with JEP 483. > > Also, since the (E) and (F) lists are small (about 50 classes), it's possible for a human to examine those classes to find potential problems > > - For example, an AOT-initialized class shouldn't be dependent on the environment, such as storing the current time of day, etc. I agree that human examination is sufficient to start with, even to detect environmental dependencies. This is what we should ship with. But we should build better detection tools soon, so that routine enhancements don?t run afoul of those checks (the dreaded ?reinitialization?). > *(H) Extensibility, or lack thereof* > > This design limits future Leyden optimization as any significant increase of the list of classes in (E) and (F) will make human validation much more difficult. We should consider using automated validation tools, as well as refactoring the Java classes to make it easier to decide what classes can be AOT-initialized. Yes! Preach it! ? John > > > ======= > > [1] https://openjdk.org/jeps/483 > > [2] Due to circularity, it may be possible to created an instance of X before X:: finishes. > > [3] https://github.com/openjdk/jdk/blob/602408e4f3848b30299ea94264e88ead5361a310/src/java.base/share/classes/java/lang/Integer.java#L957-L969 > > [4] https://mail.openjdk.org/pipermail/leyden-dev/2024-August/000911.html > > [5] https://github.com/openjdk/leyden/blob/3a84df9d9860e743684e335282e3910b14cc982b/src/hotspot/share/cds/heapShared.cpp#L1415-L1466 > > [6] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/cds/cdsHeapVerifier.cpp > > [7] https://github.com/iklam/jdk/blob/49eb47b6a9889625dc8bac6922cec6a5625a26b2/src/hotspot/share/cds/aotClassInitializer.cpp#L178-L192 > > [8] https://github.com/iklam/jdk/blob/49eb47b6a9889625dc8bac6922cec6a5625a26b2/test/lib/jdk/test/lib/cds/CDSTestUtils.java#L289 From ioi.lam at oracle.com Fri Oct 4 05:29:58 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Thu, 3 Oct 2024 22:29:58 -0700 Subject: Class initialization in JEP 483 In-Reply-To: <5AEC7000-75B1-46F1-AD11-096BFEF8AAC8@oracle.com> References: <5AEC7000-75B1-46F1-AD11-096BFEF8AAC8@oracle.com> Message-ID: <5e3c9cd1-7cd9-4e2f-a210-05a0183692dc@oracle.com> Hi John, Thanks for your comments. I have a few responses in-line. Also, to recap what we discussed in today's Leyden meeting, I am going to see if it's possible to make all relevant classes AOT-initialized, and thus avoid potential issues of startup-initialization. More below ... On 10/3/24 2:50 AM, John Rose wrote: > On 2 Oct 2024, at 22:13, ioi.lam at oracle.com wrote: > >> TL;DR >> >> I want to discuss how Java classes are initialized as a part of the implementation of the up-coming JEP 483 [1]. >> >> This is by no means a clean design. It's a compromise due to the complexity of the Java classes, such as java.lang.invoke.*, that JEP 483 wants to optimize. >> >> In the future, we can make thing much better by, perhaps, refactoring the Java classes. >> >> Here, I want to get a consensus if the current implementation in JEP 483 is "good enough" to be integrated into the mainline. > This is a useful analysis. Related to it, I have various ideas about ?shaping? the JDK classes to cooperate better with the AOT cache, and also adding new checks to the JVM to help detect classes which are ?not in good shape?. For now I hope we can determine correctness by inspection, and quickly follow up with work on (simple!) tools for validating the necessary assumptions. (Your email goes a long way towards clarifying what those necessary assumptions are.) That way maintainers won?t break the subtle init-order dependencies between java.base classes, with routine changes. > >> *(A) Background* >> >> JEP 483 includes the AOT-linking of invokedynamic call sites. As a result, it becomes necessary for the AOT cache to store objects such as MethodTypes, as well as generated LambdaForm classes. > I have a ?stretch goal? in mind here: I think if we sort out the initialization of lambdas, MHs, MTs, LFs, and the rest of the indy infrastructure, we may understand the problem well enough to allow very early initialization of those system components. (And also, how to use the AOT cache to optimize their startup.) That in turn will enable us to use indy (and condy) with few or no restrictions on their usage. Recent JDK changes to convert lambdas to inner classes (or similar indy-avoidance tactics) will not be needed if indy is robustly initialized at an early point. But this requires mastering the bootstrap logic. Hence the stretch goal, since we are talking here about getting the bootstrap logic (specifically java.base init-order) under control. > >> A basic requirement for Java objects is -- >> when an object of type X becomes accessible by Java bytecodes, we must have at least started the initialization of X [2]. We want to preserve this behavior for cached objects, so we won't run into incompatibilities when using cached objects. > This is an interesting principle. It is normally true apart from the AOT cache, but it puts an extra burden on access to the AOT heap. Specifically, you can?t open up any (sub-)graph in the AOT heap for access until all classes mentioned in that heap (sub-)graph are at least starting their initialization. > > There?s a little more, in fact: If some class C is starting to init, but has not finished its init, then the access must be initially confined to the thread that is running C::. This is the normal JVM rule (other threads block until C:: returns) and must be emulated by the AOT cache as well. > > (Background: The AOT cache has a heap segment defining one or more graphs of objects. An object graph has one or more roots. Such a graph is an ?asset? in the AOT cache, that can be ?adopted? into the running JVM as an interconnected set of Java objects. Multiple AOT graphs might appear if we have separately defined decisions to adopt them. Or, we might just say ?take the whole graph or leave it?. For future work, it is somewhat clear we wish to allow Leyden-aware applications to layer AOT object graphs of their own on top of the java.base object graph or graphs. But we are not there yet; all of this is happening inside java.base. We must learn to walk before we can think about running.) > > Definition of ?CLASS REACHABILITY?: If an object X is in the AOT heap, then a class C is said to be ?reachable from X? if C is the class of X, or is a superclass or an implemented interface of X?s class. In addition, we say that C is ?reachable from X? (in a recursive sense) if C is reachable from another object Y which is referenced by a non-static field of X, or another object Y which is referenced by a static field of a class S (already) reachable from X. This definition is simply a transitive closure of an appropriately defined graph, where instances X point to their classes C and their non-static field referents, and classes C point to their super-types D and their static field referents Y. > > With that definition under our belt, we can say that when an object X, originally in the AOT heap, becomes reachable to java.base code (in the normal GC sense, during JDK startup), then every class reachable from X must have an appropriate initialization state. The definition of ?appropriate? here is tricky. > > Note that we can calculate this class-reachability statically. So, when it helps, we can make lists of classes C reachable from some AOT heap root X. Or we can take the union of all such lists, reachable from the whole AOT heap. > > So what is the most useful definition of an ?appropriate initialization state? of classes which become reachable as a result of adopting AOT heap objects? > For maximum compatibility with existing Java practice, we would say that the initialization state must be either DONE or else it is STARTED, and the access to the AOT heap object is in the same thread that is running the clinit method. > > I suggest that we might want to simplify this rule. It would be nicer (for us, not for JDK programmers) if an AOT heap object X was adopted only after all reachable classes C (reachable from X) were in the DONE state. Maybe with one exception: If some reachable class C (from X) is in the STARTED state, then C is that unique class whose method is the youngest method on the current thread. This exception allows the method for MethodType to adopt some AOT asset in the AOT heap which contains a zillion MethodType objects, but nothing else that is not fully initialized. > > There are immediate objections to such a simplification, but I think they can be overcome, and I suspect the end state will be better for all of us. The MethodType class recursively initializes the MethodHandle class, so that it can build an invoker cache (via some intermediate non-public class). So you need MH.class initialized to make MHs for MT, and that happens during MT?s clinit, and there is a dependency loop, aka ?chicken and egg? problem. If we want to experiment with simplified initialization conditions, we will have to break such loops. It is possible, and may even be profitable for us. In the end, simpler initialization sequences will be easier to optimize and cache. > >> So how do we meet this requirement? >> >> >> *(B) Existing Solution in JDK Mainline* >> >> In the current JDK mainline, cached objects are "loaded" into a Java program via explicit CDS.initializeFromArchive() calls. See [3] for an example in java/lang/Integer$IntegerCache >> >> class IntegerCache { >> ? ... >> ? // at this point, IntegerCache::archivedCache is null >> ? CDS.initializeFromArchive(IntegerCache.class); >> ? // at this point, IntegerCache::archivedCache is loaded from the AOT cache > The field IntegerCache.archivedCache (N.B. the :: syntax is only for methods, not fields) is a root which points into the AOT heap graph. Very cool! This does not violate the Java language rules, as long as the strange object graph is indistinguishable from an object graph which might have been created according to the usual rules of computation, from the context of the clinit method of the relevant class (IntegerCache). In fact, when booting an exploded build there is no AOT cache at all, and the necessary integer cache is built ?the hard way? and stored into a variable that CDS knows about. This handshake (by which the cache built the hard way is converted into an AOT asset, and then adopted into a production run) will get more and more regular over time, we think. > >> As part of the CDS.initializeFromArchive() call, the classes of all objects that are reachable from archivedCache are initialized. > (I am assuming that ?classes of all objects reachable? is closely aligned with my definition above, of class reachability!) Yes > > Ioi: Please explain in a bit more detail why this is true. What part of the JVM (or JDK) grabs all the reachable classes and forcibly initializes them? Or, more subtly, why are we so very lucky that, by the time we can grab a pointer to that archived heap subgraph, somehow magically the classes are already initialized? > > (And are they really in the DONE init state, or might they be in the STARTED state in the current thread?) In the AOT cache, there's a data structure that remembers the list of classes that are printed by the "IntegerCache ( 1) => java.lang.Integer" logs below. When CDS.initializeFromArchive() is called to fetch IntegerCache::archivedCache, it will finish initializing that list of classes before returning control back to the Java code. >> You can see this list classes by: >> >> $ java -Xshare:dump -Xlog:cds+heap | grep IntegerCache >> [...] >> [1.063s][info][cds,heap] Archived object klass java.lang.Integer$IntegerCache ( 0) => [Ljava.lang.Integer; >> [1.063s][info][cds,heap] Archived object klass java.lang.Integer$IntegerCache ( 1) => java.lang.Integer >> >> All classes listed above will be initialized before archivedCache becomes non-null. > This is the crucial property to engineer into our system! > >> >> *(C) New Challenges with java.lang.invoke* >> >> In JEP 483, in order to support AOT-linking of invokedynamic, we run into a few issues. >> >> #1. We can no longer use the CDS.initializeFromArchive() design due to a circular dependency between MethodType and DirectMethodHandle [4] [5]. > Maybe we can find a solution here which embraces the circularity, by making the whole bundle of mutually-recursive classes be AOT-initialized. So it doesn?t matter what order they are initialized, for the very special reason that the initialization takes place ?as if instantaneously?. > > Maybe in this case, or in future similar cases, we will need to break the circularity. If that is the case, then something like this will happen: First MethodType gets fully initialized, and during that process NO INSTANTIATION of MethodHandles is performed. (How draconian!) Later, MethodHandle is fully initialized and all its code enjoys the full initialization of MethodType. For the class MethodHandle, there might be hundreds or thousands of AOT heap objects that are method handles, containing pointers to AOT method type objects. > > The present problem is that a MethodType has a cached struct (or array) of invokers, and each invoker is a MH, and each MH has a MT. That is a circularity. Can it be broken? Yes, by changes to JDK code. I suspect this is in our future, although at present I hope we can get away with the trick (mentioned above) of simultaneous initialization (of MT and MH at the same time, also entangled classes like DMH). > >> #2. Some cached objects in java.lang.invoke may point to static fields whose identity is significant. A simplified example looks like this: >> >> ??? class A { >> ???????? static final Object x = new Object(); >> ??? } >> ??? class B { >> ????????? Object y = A.x; >> ????????? boolean isValid() { return y == A.x; } >> ??? } >> >> ? ? B cachedB = new B(); ??? /* executed during assembly phase */ >> >> If we store?cachedB into the AOT cache, we will recursively store the cachedB.y field, which points to the version of A.x during the assembly phase. During the production run, if we allow A. to be executed again, cacheB.isValid() will return false because cachedB.y is now a different instance than A.x. >> >> In fact, #2 is not a new problem. There's already a debugging class - CDSHeapVerifier - that checks for potential errors [6] > We need rules for object identities as well. I see two of them. First, if an object X is known to be private, and all the private code that works on it does not inspect its identity (via X==Y or System::identityHashCode(X)) we can certify that there is no danger. Second, if X is public or escapes in some way to ?random? user code (that might do X==Y etc.) then we must ensure that, IF the AOT heap graph including X is adopted, THEN all environmental queries have been respected, and there will never be a reason to un-adopt X. > >> *(D) Solution in JEP 483* >> >> In JEP 483, the solution is "AOT-initialized classes". For the above example, we store class A in the AOT cache in the "initialized" state. During the production run, A. is no longer executed, and A.x maintains its value as in the assembly phase. > > Definition: An ?AOT initialized class? is one whose Class object exists in the AOT heap graph, and that object is populated with the initial values of all static fields of that class. > > Definition: A post-AOT initialized class is any class that is not AOT-initialized (in some Leyden AOT cache configuration). Post-AOT initialized classes can be further split into ?startup initialized? classes (whose clinit methods the JVM runs directly in the premain phase) and ?JIT initialized? classes (whose clinit methods are run at the last possible moment). > > Definition: A ?premain initialized? class is either AOT initialized, or else startup initialized, but not JIT initialized. Recall that ?premain? is the bootstrapping phase before the application main is invoked. The init actions that happen during premain might be AOT actions (which seem to happen immediately) or startup actions (slower but hopefully still very fast). > > When we can do this AOT initialization optimization for some class C, it is very powerful. It allows us to include AOT graph objects at will, from which C is reachable, and not worry about the timing of their adoption. It is as if all such C were initialized very, very quickly, at JVM startup, before any other action happens. > >> The process of finding all the "AOT-initialized classes" needed by JEP 483: >> >> - Perform a training run with an application that uses many lambda expressions >> >> - Create an AOT cache using data from this training run. Look for warnings produced by CDSHeapVerifier: >> >> Archive heap points to a static field that may be reinitialized at runtime: > I have a problem with this formulation: We never set out to ?reinitialize? any class, so ?may be reinitialized? is a counter-factual statement. We only set out to AOT-initialize classes if the user?s observation of them sees the classes to be initialized exactly once, but very, very quickly. > > I would prefer to rephrase the error message (and underlying concept) as: > > ?Archive heap points to a static field that requires post-AOT initialization? > > (or ?startup initialization? or some such). Situations which tempt us to think of reinitialization are situations where we are creating bootstrapping bugs. > >> Field: java/lang/invoke/SimpleMethodHandle::BMH_SPECIES >> Value: java.lang.invoke.BoundMethodHandle$SpeciesData >> {0x000000060e8962f0} - klass: 'java/lang/invoke/BoundMethodHandle$SpeciesData' - flags: >> [...] >> --- trace begin --- >> [ 0] {0x000000060f410170} [Ljava.lang.Object; @[238] >> [ 1] {0x000000060f430520} java.lang.invoke.BoundMethodHandle$Species_L::type (offset = 16) >> [ 2] {0x000000060e8ab130} java.lang.invoke.MethodType::form (offset = 20) >> [ 3] {0x000000060e883b70} java.lang.invoke.MethodTypeForm::lambdaForms (offset = 28) >> [ 4] {0x000000060e883b90} [Ljava.lang.Object; @[7] >> [ 5] {0x000000060e89a428} java.lang.invoke.LambdaForm::names (offset = 32) >> [ 6] {0x000000060e89a3b0} [Ljava.lang.invoke.LambdaForm$Name; @[0] >> [ 7] {0x000000060e897fb8} java.lang.invoke.LambdaForm$Name::constraint (offset = 24) >> [ 8] {0x000000060e896ab8} java.lang.invoke.BoundMethodHandle$SpeciesData::this$0 (offset = 40) >> [ 9] {0x000000060e895aa0} java.lang.invoke.BoundMethodHandle$Specializer::topSpecies (offset = 44) >> [10] {0x000000060e8962f0} java.lang.invoke.BoundMethodHandle$SpeciesData >> --- trace end --- >> >> In this example, we see a cached object? (0x000000060e895aa0) points to {0x000000060e8962f0}, which is in the static field SimpleMethodHandle::BMH_SPECIES. >> >> To get rid of this warning, we add SimpleMethodHandle to the list in AOTClassInitializer::can_archive_initialized_mirror [7] >> >> - Create the AOT cache again. You may see new warnings because the mirror of SimpleMethodHandle may point to the static fields of other clases. >> >> - Keep doing this until you can no longer see these warnings > This is a good process. I think we want to build in enough bootstrap checking logic into the JVM so that a maintainer who breaks this discipline will hear about it quickly, without having to enable warnings and then sift through them. > > I am beginning to think that we should experiment with annotations on java.base classes that express our intention to AOT-initialize them, with VM checks (at least in debug builds) that ensure this is safe to do. > >> *(E) List of aot-initialized classes* >> >> For a traning run like "javac HelloWorld.java", we can produce an AOT cache that contains the following 22 aot-initialized classes >> >> java.lang.constant.ConstantDescs >> java.lang.constant.DynamicConstantDesc >> java.lang.Enum >> java.lang.invoke.BoundMethodHandle >> java.lang.invoke.BoundMethodHandle$Specializer >> java.lang.invoke.BoundMethodHandle$Species_L >> java.lang.invoke.BoundMethodHandle$Species_LL >> java.lang.invoke.ClassSpecializer >> java.lang.invoke.ClassSpecializer$1 >> java.lang.invoke.ClassSpecializer$Factory >> java.lang.invoke.ClassSpecializer$SpeciesData >> java.lang.invoke.DelegatingMethodHandle >> java.lang.invoke.DirectMethodHandle >> java.lang.invoke.DirectMethodHandle$Holder >> java.lang.invoke.LambdaForm >> java.lang.invoke.LambdaForm$NamedFunction >> java.lang.invoke.MethodHandle >> java.lang.invoke.MethodType$AOTHolder >> java.lang.invoke.SimpleMethodHandle >> java.lang.Object >> jdk.internal.constant.PrimitiveClassDescImpl >> jdk.internal.constant.ReferenceClassDescImpl >> >> >> Plus the following 7 enum types that have customized code >> >> java.lang.constant.DirectMethodHandleDesc$Kind >> java.lang.invoke.LambdaForm$BasicType >> java.lang.invoke.VarHandle$AccessMode >> java.lang.invoke.VarHandle$AccessType >> java.lang.reflect.AccessFlag$Location >> java.util.stream.StreamOpFlag >> sun.invoke.util.Wrapper >> >> >> *(F) List of Init-at-JVM-start classes* >> >> During the production run, these classes are loaded into the VM in the "initialized" state. As a result, the static fields of these classes become reachable. We must initialize the classes of all objects that are reachable from these static fields. There are 24 such classes. > I am not following here. If the class is in an initialized state, is there some process that happens later which runs the clinit again? (Is this the dreaded ?reinitialization??) If we allow this, it is technical debt, and we have to have a plan to eliminate it, lest it eventually become visible. (We can and must perform some kinds of non-standard actions to boot up the first few classes, but they need to be minimized.) For an example like this: /* @aot-initialized */ class A { ??? static final B b = new B(); } A is AOT-initialized, but B is not. When class A is loaded into the JVM, A.b becomes reachable from Java code. Therefore, we must initialize B, which is reachable from A's mirror. We are not "re-initializing B" in the sense that B's mirror already contains some non-default values before B. is executed. Instead, when B. is executed, B's static fields are all zeros and nulls. > >> java.lang.ArithmeticException >> java.lang.ArrayIndexOutOfBoundsException >> java.lang.ArrayStoreException >> java.lang.Class >> java.lang.ClassCastException >> java.lang.Double >> java.lang.Float >> java.lang.Integer >> java.lang.InternalError >> java.lang.NullPointerException >> java.lang.invoke.BoundMethodHandle$Specializer$Factory >> java.lang.invoke.BoundMethodHandle$SpeciesData >> java.lang.invoke.DirectMethodHandle$Accessor >> java.lang.invoke.DirectMethodHandle$Constructor >> java.lang.invoke.Invokers >> java.lang.invoke.LambdaForm$Name >> java.lang.invoke.LambdaFormEditor$Transform >> java.lang.invoke.MemberName >> java.lang.invoke.MemberName$Factory >> java.lang.invoke.MethodHandleImpl$IntrinsicMethodHandle >> java.lang.invoke.MethodType >> java.lang.invoke.MethodTypeForm >> java.util.EnumMap >> java.util.concurrent.ConcurrentHashMap >> >> (E.g., MethodType$AOTHolder contains a HashMap that stores many MethodTypes, so we must initialize the MethodType class. Note that HashMap is not in the list because it doesn't have a . For clarify, I have omitted all classes that can be trivially initialized). > The only thing that might stop us from AOT-initializing a class with no clinit would be a superclass (or interface) that has a clinit which is not AOT initializable. > > Connecting back to the reachability concept: As soon as some X in the AOT heap become reachable (in the normal GC sense), then all classes C reachable from X must be initialized (or perhaps ?started? in the current thread). It would be best, of course, if those classes were all AOT initialized. If not, we need a story to ensure they are startup initialized (if not AOT initialized). > > I think this means that if some class C is AOT initialized, then its super S must also be AOT initialized, or else any access to an instance X which can reach C must be organized so that the startup initialization of S gets run first. > > I think our current state of the art is that we run such startup initializers ASAP, and test that there are no bugs. It would be good to have more accurate checks as well, if we can define them suitably. > >> (G) Testing and Validation >> >> The output "Archive heap points to a static field that may be reinitialized" is checked by more than 300 CDS test cases [8]. This ensures that we have a correct list of AOT-initialized classes. This will also catch any future changes in the Java classes in java.lang.invoke that may be incompatible with JEP 483. >> >> Also, since the (E) and (F) lists are small (about 50 classes), it's possible for a human to examine those classes to find potential problems >> >> - For example, an AOT-initialized class shouldn't be dependent on the environment, such as storing the current time of day, etc. > I agree that human examination is sufficient to start with, even to detect environmental dependencies. This is what we should ship with. But we should build better detection tools soon, so that routine enhancements don?t run afoul of those checks (the dreaded ?reinitialization?). > >> *(H) Extensibility, or lack thereof* >> >> This design limits future Leyden optimization as any significant increase of the list of classes in (E) and (F) will make human validation much more difficult. We should consider using automated validation tools, as well as refactoring the Java classes to make it easier to decide what classes can be AOT-initialized. > Yes! Preach it! > > ? John > >> >> ======= >> >> [1] https://openjdk.org/jeps/483 >> >> [2] Due to circularity, it may be possible to created an instance of X before X:: finishes. >> >> [3] https://github.com/openjdk/jdk/blob/602408e4f3848b30299ea94264e88ead5361a310/src/java.base/share/classes/java/lang/Integer.java#L957-L969 >> >> [4] https://mail.openjdk.org/pipermail/leyden-dev/2024-August/000911.html >> >> [5] https://github.com/openjdk/leyden/blob/3a84df9d9860e743684e335282e3910b14cc982b/src/hotspot/share/cds/heapShared.cpp#L1415-L1466 >> >> [6] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/cds/cdsHeapVerifier.cpp >> >> [7] https://github.com/iklam/jdk/blob/49eb47b6a9889625dc8bac6922cec6a5625a26b2/src/hotspot/share/cds/aotClassInitializer.cpp#L178-L192 >> >> [8] https://github.com/iklam/jdk/blob/49eb47b6a9889625dc8bac6922cec6a5625a26b2/test/lib/jdk/test/lib/cds/CDSTestUtils.java#L289 From ioi.lam at oracle.com Fri Oct 4 06:02:49 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Thu, 3 Oct 2024 23:02:49 -0700 Subject: Spring Boot BackgroundPreinitializer In-Reply-To: References: Message-ID: <21b68ca3-46f7-44cc-b0f0-c2fd4e5b5b07@oracle.com> On 10/3/24 12:59 AM, Sebastien Deleuze wrote: > Hi, > > I would like to bring to the attention of the working group > https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/BackgroundPreinitializer.java > that we are using to speedup Spring Boot startup time on machines with > at least 2 cores on the JVM. > > It creates and drops instances of popular but costly to initialize > instances (Jackson, Hibernate Validator, etc.) and invoke some JDK > methods (StandardCharsets.UTF_8.name > (), ZoneId.systemDefault()) to > pre-load related classes and pre-initialize related static fields on a > dedicated thread. I think with the AOT cache, the class-preloading > effect is not visible anymore, maybe the pre-initialization of static > fields still has an impact. > > Ideally, I would hope that this kind of optimization will not be > needed anymore with Leyden AOT cache in order to avoid creating > instances that we drop, avoid to throw related exceptions when the > libraries are not in the classpath, etc. > > I would like to ask feedback on those 3 points: > ?- It may be interesting to compare what BackgroundPreinitializer does > at runtime and the effect of AOT cache on related classes as we know > those ones are impacting badly the startup time of typical enterprise > applications and see if AOT cache could be refined with optimizations > similar to what BackgroundPreinitializer does at runtime. > - If we can't optimize more automatically, I am wondering if the > idea?of giving the possibility to frameworks to specify a list of > costly classes safe to initialize in the AOT cache makes sense or not > (Spring Boot could configure the one present in > BackgroundPreinitializer for example). In the near term, we will not be able to support pre-initialized classes that are outside the JDK core libraries. There are many issues with class initlization and cached Java heap objects that we haven't solved yet. We are starting to have some pre-initialized classes inside the core libraries. We hope we can learn from the experience so we can open up the feature to other use cases. However, if the initialization of some classes are indeed bottlenecks, maybe such code paths would be picked up by the AOT compiler so that they can finish faster than with JIT only? > ?- It could be potentially useful to publish an API to know if AOT > caching is enabled or not to allow us to disable this kind of > mechanism in that case, something simple and fast like a method > returning a boolean. > We could add an API or a property to indicate if AOT cache is used. But perhaps the user can simply specify a property like "java -XX:AOTCache=xxx -Dusing.aot.cache=true ... MyApp"? Thanks - Ioi > ?Any thoughts? > > This electronic communication and the information and any files > transmitted with it, or attached to it, are confidential and are > intended solely for the use of the individual or entity to whom it is > addressed and may contain information that is confidential, legally > privileged, protected by privacy laws, or otherwise restricted from > disclosure to anyone else. If you are not the intended recipient or > the person responsible for delivering the e-mail to the intended > recipient, you are hereby notified that any use, copying, > distributing, dissemination, forwarding, printing, or copying of this > e-mail is strictly prohibited. If you received this e-mail in error, > please return the e-mail to the sender, delete it from your computer, > and destroy any printed copy of it. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastien.deleuze at broadcom.com Fri Oct 4 10:29:03 2024 From: sebastien.deleuze at broadcom.com (Sebastien Deleuze) Date: Fri, 4 Oct 2024 12:29:03 +0200 Subject: Spring Boot BackgroundPreinitializer In-Reply-To: <21b68ca3-46f7-44cc-b0f0-c2fd4e5b5b07@oracle.com> References: <21b68ca3-46f7-44cc-b0f0-c2fd4e5b5b07@oracle.com> Message-ID: I like the idea of a property, but it would be really nice if it could be set automatically by the AOT support without requiring an additional action from the users because they typically don't add such property when documented and we just want to detect the actual AOT caching mode in a reliable and consistent way. What about having an aot.mode property reflecting the actual mode: - "record" when "-XX:AOTMode=record" is specified or a potential future "-XX:AOTMode=autocreate" (replacement of "-XX:CacheDataStore=app.cds") is specified and no cache files exist - "on" when "-XX:AOTMode=on" is specified or a potential future "-XX:AOTMode=autocreate" (replacement of "-XX:CacheDataStore=app.cds") is specified and cache files exist - "off" when "-XX:AOTMode=off" is specified I can see multiple use cases for that with Spring (reporting, disabling BackgroundPreinitializer, refining Spring behavior during the training run, etc.) that will likely be useful for others as well. Side note: we really hope that a "-XX:CacheDataStore=app.cds" successor will be introduced because it really helps to not have to change the java command line between training and deployment runs for some deployment scenarios. On Fri, Oct 4, 2024 at 8:03?AM wrote: > On 10/3/24 12:59 AM, Sebastien Deleuze wrote: > > Hi, > > I would like to bring to the attention of the working group > https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/BackgroundPreinitializer.java > that we are using to speedup Spring Boot startup time on machines with at > least 2 cores on the JVM. > > It creates and drops instances of popular but costly to initialize > instances (Jackson, Hibernate Validator, etc.) and invoke some JDK methods ( > StandardCharsets.UTF_8.name(), ZoneId.systemDefault()) to pre-load > related classes and pre-initialize related static fields on a dedicated > thread. I think with the AOT cache, the class-preloading effect is not > visible anymore, maybe the pre-initialization of static fields still has an > impact. > > > Ideally, I would hope that this kind of optimization will not be needed > anymore with Leyden AOT cache in order to avoid creating instances that we > drop, avoid to throw related exceptions when the libraries are not in the > classpath, etc. > > I would like to ask feedback on those 3 points: > - It may be interesting to compare what BackgroundPreinitializer does at > runtime and the effect of AOT cache on related classes as we know those > ones are impacting badly the startup time of typical enterprise > applications and see if AOT cache could be refined with optimizations > similar to what BackgroundPreinitializer does at runtime. > - If we can't optimize more automatically, I am wondering if the idea of > giving the possibility to frameworks to specify a list of costly classes > safe to initialize in the AOT cache makes sense or not (Spring Boot could > configure the one present in BackgroundPreinitializer for example). > > > In the near term, we will not be able to support pre-initialized classes > that are outside the JDK core libraries. There are many issues with class > initlization and cached Java heap objects that we haven't solved yet. We > are starting to have some pre-initialized classes inside the core > libraries. We hope we can learn from the experience so we can open up the > feature to other use cases. > > However, if the initialization of some classes are indeed bottlenecks, > maybe such code paths would be picked up by the AOT compiler so that they > can finish faster than with JIT only? > > > - It could be potentially useful to publish an API to know if AOT caching > is enabled or not to allow us to disable this kind of mechanism in that > case, something simple and fast like a method returning a boolean. > > We could add an API or a property to indicate if AOT cache is used. But > perhaps the user can simply specify a property like "java -XX:AOTCache=xxx > -Dusing.aot.cache=true ... MyApp"? > > Thanks > > - Ioi > > > Any thoughts? > > This electronic communication and the information and any files > transmitted with it, or attached to it, are confidential and are intended > solely for the use of the individual or entity to whom it is addressed and > may contain information that is confidential, legally privileged, protected > by privacy laws, or otherwise restricted from disclosure to anyone else. If > you are not the intended recipient or the person responsible for delivering > the e-mail to the intended recipient, you are hereby notified that any use, > copying, distributing, dissemination, forwarding, printing, or copying of > this e-mail is strictly prohibited. If you received this e-mail in error, > please return the e-mail to the sender, delete it from your computer, and > destroy any printed copy of it. > > -- This electronic communication and the information and any files transmitted with it, or attached to it, are confidential and are intended solely for the use of the individual or entity to whom it is addressed and may contain information that is confidential, legally privileged, protected by privacy laws, or otherwise restricted from disclosure to anyone else. If you are not the intended recipient or the person responsible for delivering the e-mail to the intended recipient, you are hereby notified that any use, copying, distributing, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited. If you received this e-mail in error, please return the e-mail to the sender, delete it from your computer, and destroy any printed copy of it. -------------- next part -------------- An HTML attachment was scrubbed... URL: From dan.heidinga at oracle.com Fri Oct 4 18:34:55 2024 From: dan.heidinga at oracle.com (Dan Heidinga) Date: Fri, 4 Oct 2024 18:34:55 +0000 Subject: Infinispan server issue - putting it all together In-Reply-To: <8a86b1c4-85c0-4360-96c0-915cdd0a78ff@oracle.com> References: <8a86b1c4-85c0-4360-96c0-915cdd0a78ff@oracle.com> Message-ID: Problem #3 is an interesting case (and many thanks for the simple reproduction test!) in that it shows an example of a class initialization order cycle ? thankfully one that can be worked around. It requires careful separation to break the cycle while still preserving the identity invariants expressed in the original code. As an example, look at https://github.com/openjdk/leyden/compare/premain...DanHeidinga:leyden:rework-constantdesc-init?expand=1 for how to detangle the ConstantDesc / PrimitiveClassDescImpl / ReerenceClassDescImpl design. I don?t know that we actually want to propose this to mainline but it shows the pattern that can be used to rework the ?s of similar cycles. --Dan Problem #3: With these two changes in place, Infinispan server test-case works fine, but the changes cause another test case [2] to fail. The failure happens in the assembly phase due to NPE thrown during initialization of class PrimitiveClassDescImpl. Its initialization is triggered "forcefully" in MetaspaceShared::link_shared_classes(). Stacktrace for the NPE is: [0] jdk/internal/constant/MethodTypeDescImpl::validateArgument(Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/ClassDesc; @ bci 1 [1] jdk/internal/constant/MethodTypeDescImpl::ofTrusted(Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljdk/internal/constant/MethodTypeDescImpl; @ bci 27 [2] java/lang/constant/ConstantDescs::ofConstantBootstrap(Ljava/lang/constant/ClassDesc;Ljava/lang/String;Ljava/lang/constant/ClassDesc;[Ljava/lang/constant/ClassDesc;)Ljava/lang/constant/DirectMethodHandleDesc; @ bci 47 [3] java/lang/constant/ConstantDescs:: @ bci 664 [4] jdk/internal/constant/PrimitiveClassDescImpl::(Ljava/lang/String;)V @ bci 1 [5] jdk/internal/constant/PrimitiveClassDescImpl::(Ljava/lang/String;)V @ bci 6 Invocation of PrimitiveClassDescImpl:: results in initialization of ConstantDescs class (see frame 3 in above stacktrace). ConstantDescs:: @ 664 corresponds to following java code: public static final DirectMethodHandleDesc BSM_CLASS_DATA_AT = ofConstantBootstrap(CD_MethodHandles, "classDataAt", CD_Object, CD_int); The last parameter CD_int is defined as: public static final ClassDesc CD_int = PrimitiveClassDescImpl.CD_int; So, its value is obtained from PrimitiveClassDescImpl.CD_int which hasn't been initialized properly yet. As a result ConstantDescs::CD_int gets default value null, which causes MethodTypeDescImpl::validateArgument to throw NPE later. If the initialization of ConstantDescs is triggered before PrimitiveClassDescImpl then we won't run into NPE. So, there is a class initialization circularity involving PrimitiveClassDescImpl and ConstantDescs, and the result depends on which class gets initialized first. This behavior can be recreated by explicitly loading these classes: public class ClassOrderTest { public static void main(String args[]) throws Exception { Class.forName("java.lang.constant.ConstantDescs"); Class.forName("jdk.internal.constant.PrimitiveClassDescImpl"); } } Above program works fine but if the order of classes is reversed as: public class ClassOrderTest { public static void main(String args[]) throws Exception { Class.forName("jdk.internal.constant.PrimitiveClassDescImpl"); Class.forName("java.lang.constant.ConstantDescs"); } } then it throws NPE which is the same as mentioned above: Exception in thread "main" java.lang.ExceptionInInitializerError at java.base/jdk.internal.constant.PrimitiveClassDescImpl.(PrimitiveClassDescImpl.java:85) at java.base/jdk.internal.constant.PrimitiveClassDescImpl.(PrimitiveClassDescImpl.java:45) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:475) at java.base/java.lang.Class.forName(Class.java:455) at ClassOrderTest.main(ClassOrderTest.java:4) Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.constant.ClassDesc.descriptorString()" because "arg" is null at java.base/jdk.internal.constant.MethodTypeDescImpl.validateArgument(MethodTypeDescImpl.java:89) at java.base/jdk.internal.constant.MethodTypeDescImpl.ofTrusted(MethodTypeDescImpl.java:83) at java.base/java.lang.constant.ConstantDescs.ofConstantBootstrap(ConstantDescs.java:381) at java.base/java.lang.constant.ConstantDescs.(ConstantDescs.java:282) ... 6 more The workaround for this issue is to remove the "forceful" initialization of classes in the assembly phase. I believe the issue is that some JDK classes have circular dependencies, and must be initialized in a certain order. When we execute "normal" Java programs, we somehow come into an initialization order that "works". However, the "forceful" initialization CDS code (which has been removed in [2]) initializes these classes in an order that hasn't been tested, and runs into the above NullPointerException. It's not clear if such an order can be achieved by "normal" Java programs, so we potentially have a bug in the core library with ConstantDescs and related classes. If I have time, I will try to write a Java program that replays the same order as with the above NullPointerException. In any case, CDS now avoids explicitly initializing classes. So hopefully it will not deviate from the well tested execution paths and avoid any surpises. Thanks - Ioi [0] https://mail.openjdk.org/pipermail/leyden-dev/2024-September/000987.html [1] https://github.com/openjdk/leyden/commit/7a6fadcae03d86c91713ffae452817bce7a4674d [2] https://github.com/ashu-mehra/leyden-testcase Thanks, - Ashutosh Mehra -------------- next part -------------- An HTML attachment was scrubbed... URL: From john.r.rose at oracle.com Sat Oct 5 15:22:41 2024 From: john.r.rose at oracle.com (John Rose) Date: Sat, 05 Oct 2024 08:22:41 -0700 Subject: Infinispan server issue - putting it all together In-Reply-To: References: <8a86b1c4-85c0-4360-96c0-915cdd0a78ff@oracle.com> Message-ID: <2FB9261C-4EEA-4CF0-A545-496F707EA006@oracle.com> On 2 Oct 2024, at 20:19, ioi.lam at oracle.com wrote: > Hi Ashutosh, > > Thanks for putting together the summary! Yes, thank you to everyone who has been working to tame this bug, and extra thanks to Ashutosh for the very clear write-up. I have seen a number of problems like this lurking in the JDK. I suspect there may be many more as well. Anything like Leyden that touches the surface of the problem, by perturbing initialization order, can stir up Balrogs. The general form is this: Class 1 and class 2 have a mutual dependency. The APIs are organized so that class 1 is the ?front door? and class 2 is the ?back door?. If your first entry is from the front door, then the code paths get executed in such a way that class 1 touches class 2, which then (as part of class 2 initialization) performs some step that is necessary for both classes. Often but not always this is setting a static final reference variable, in class 2, to some non-null value. Class 2 also touches class 1 in the course of its own initialization, but since class 1 is already on stack (in the current thread) the ?touch? by class 2 (a call from the back door to the front door) is a no-op. And that?s OK, since class 1 has already done enough to satisfy class 2?s initialization requirements. Eventually the init logic for class 1 finishes as well. The key feature here is both class 1 and class 2 inits logic ( methods) are cut in half, interrupted by an initializing ?touch? of the other class. So there are four initialization actions, not two. Let?s call them init[12][ab]. When the front door is entered, we have this order of inits: (front door call) init1a init2a (nop for init1) init2b init1b Let?s say init2b (not init2a) creates state needed by init1b. (The state could be the setting of a static final field. It could also be the populating of a cache somewhere.) In any case, init2b must precede init1b in order for init1b to observe a useful side effect from init2b. All this works as long as it is very difficult, or impossible, to go in by the ?back door?, say by making an instance of class 2 as the very first use of the API, or calling a static method on class 2, before class 1 is touched. But, if and when somebody does eventually discover the back door and give it a try, then class 2 init logic will execute without class 1 init partially done (and waiting to finish on stack). This means that when class 2 touches class 1, class 1 init logic runs uninterrupted, and the recursive touch to class 2 is a no-op, so that the latter part of class 2?s init logic goes last. Here is the order: (back door call) init2a init1a (nop for init2) init1b init2b So class 1 is likely to fail to initialize because it reaches out for states populated by init2b, which has been pushed out to happen later. In the present Infinispan problem, the front door is ConstantDescs (totally public API) and the back door is a helper class in a non-exported package. That package is protected enough, on a normal day, by the module system. But reflective tricks, or an over-active CDS, can open up the back door. When such a problem is found, it can be patched in a number of ways. My favorite would be to refactor the offending state (final field values) into a private static-holder class, and let the public classes pull values from the private class. This is the reason I have wished (for a long time!) for lazy-statics, because if you can mark a static ?lazy? you get the same effect, but you don?t have to refactor it into a separate static holder class. See [1] for more. For now, we can use static holders. [1] https://cr.openjdk.org/~jrose/leyden/after-computed-constants.html Instead of a private static holder class, you can also centralize the ?pulled values? into a class that already exists. I think that?s the essence of Dan?s proposal for repairing ConstantDesc. I prefer to make the problem clearer with a static holder that has a special name (?foo static holder? or the like) so that maintainers better understand its special role. BTW, by ?private static class? I include package-private classes (either top level or static member of another class), to cover those common cases where several classes need to share initial state. Note that a touch to a static member class does not count as an initializing touch to its containing class. Note also that using ?import static? can make it easier to write. But if you have a public static final, you will need to write something like this: ?public static final FOO = FooStatics.FOO?, where ?FooStatics? is the class that sequences the necessary inits, and the extra copy of FOO is extracted after all the inits are done (by the static holder). Sometimes it also helps to add an extra ?touch? in a third class 0 (the ?driveway??), that touches class 1. But that only works if you can prove that, out of all three classes, class 0 is always touched first. You might find examples in the JDK by searching for the unsafe method ?ensureClassInitialized?, although most uses are for other purposes. I think the uses in LambdaForm.java are nailing down circular bootstrap order. BTW, outside the JDK there is also Lookup::ensureInitialized. During development of java.lang.invoke I bumped into many NPEs from init loops during development and had to ?shake around? the code in order to get the inits into a good order. The private classes MethodHandleStatics and MethodHandleNatives are both examples of private static holder classes, for (respectively) pure Java and native state pertaining to java.lang.invoke. There were other loops not covered by those as well. I found (to my dismay) that I hadn?t discovered all the possible bad reorderings, and a few bugs came in from the field just like the Infinispan bug, where some code threw an NPE due to some surprising API invocation order, not covered by our pre-integration tests. Oops. The NPE often occurs some distance away from the root cause. (That is, the init-loop and the static reference that pulls out a null from a static that ?obviously cannot be null?.) The null often wanders some distance away before somebody trips over it. We have some technical debt here, in that we have no good way to pinpoint the cause of such an NPE, if the null has ?wandered away? before it trips the NPE. It can get worse, too, if you have an initialization loop with two public doors. If two threads are racing to enter both doors concurrently, you can get a deadlock on a bad day. I?m amazed we don?t see this more often. A couple years ago I posted a very detailed POC of that pathology[2]. [2] https://cr.openjdk.org/~jrose/jvm/ClassInitDeadlock.zip Back to you Dan? On 4 Oct 2024, at 11:34, Dan Heidinga wrote: > Problem #3 is an interesting case (and many thanks for the simple reproduction test!) in that it shows an example of a class initialization order cycle ? thankfully one that can be worked around. It requires careful separation to break the cycle while still preserving the identity invariants expressed in the original code. As an example, look at https://github.com/openjdk/leyden/compare/premain...DanHeidinga:leyden:rework-constantdesc-init?expand=1 for how to detangle the ConstantDesc / PrimitiveClassDescImpl / ReerenceClassDescImpl design. > > I don?t know that we actually want to propose this to mainline but it shows the pattern that can be used to rework the ?s of similar cycles. If I understand this correctly, ReferenceClassDescImpl is being given the role of common holder of constants. My preference would be to (a) use a new private class such as ClassDescStatics (cf. MHStatics) and (b) liberally sprinkle ?import static ClassDescStatics.*? in the constant desc implementation files, and (c ) do NOT mangle the static field names (with ?BOOTSTRAP? prefix or the like); just use the natural names (and import them everywhere). Also, (d) if there is some name that is a public API point, then just duplicate the name as noted above: public static final Thingy API_NAME = ClassDescStatics.API_NAME; (This works out fine except for String constants, if you really need them to be JLS-style constants.) So: public static final PrimitiveClassDescImpl CD_int = ClassDescStatics.CD_int; Pushing all the constants into one class might be too heavy a lift in some cases, but it is the surest way to eliminate bootstrap NPEs. Dan, would you mind trying it out my way and see if it can work? In a followup mail I wish to address the tricky problem of diagnosing bootstrap loops, which (as we know) can manifest in the field as mysterious NPE errors. Leyden has a fresh requirement for tools to detect and tame the Balrogs before they can rampage. ? John From john.r.rose at oracle.com Sat Oct 5 16:51:42 2024 From: john.r.rose at oracle.com (John Rose) Date: Sat, 05 Oct 2024 09:51:42 -0700 Subject: Infinispan server issue - putting it all together In-Reply-To: <2FB9261C-4EEA-4CF0-A545-496F707EA006@oracle.com> References: <8a86b1c4-85c0-4360-96c0-915cdd0a78ff@oracle.com> <2FB9261C-4EEA-4CF0-A545-496F707EA006@oracle.com> Message-ID: <4333657D-014D-4880-AE54-8834533AA0BE@oracle.com> Here is the promised followup on the art of Balrog taming. On 5 Oct 2024, at 8:22, John Rose wrote: > ? > The NPE often occurs some distance away from the root cause. > (That is, the init-loop and the static reference that pulls > out a null from a static that ?obviously cannot be null?.) > The null often wanders some distance away before somebody > trips over it. We have some technical debt here, in that we > have no good way to pinpoint the cause of such an NPE, if > the null has ?wandered away? before it trips the NPE. > ? > In a followup mail I wish to address the tricky problem of > diagnosing bootstrap loops, which (as we know) can manifest > in the field as mysterious NPE errors. Leyden has a fresh > requirement for tools to detect and tame the Balrogs before > they can rampage. So, I think we need a couple of new tools. Luckily they are cheap and have (to some extent) already been prototyped. Even better, we will need some of the new tools for Valhalla when it ships, so we get extra points for anticipating Valhalla needs. (And no, this is not just a sneaky attempt to get Valhalla checkins done early.) First tool: Detection of non-strict usage of static fields, especially static finals. I think we need a mechanism in the JVM that tracks static field initialization, on a per-field basis, and detects many anomalous conditions, chiefly read-before-first-write, maybe also write-after-first-write. It does not need to work on all kinds of static field references (var-handles, unsafe, reflection) in order to be immediately useful, since most static fields (not all) in the JDK are written and read the old-fashioned way, using putstatic and getstatic bytecodes. I have a prototype of this. It works like this: A. When putstatic is linked, there is an extra handshake. B. The handshake updates metadata to say that a put occurred. C. A similar handshake (common code) for getstatic happens too. D. That handshake checks the metadata to ask if a putstatic happened. Here is where I put the handshake, in the interpreter upcall which links a getstatic or putstatic bytecode: https://github.com/rose00/jdk/blob/5962ba2f154b9da1eda3df3e6130ce929ed9de65/src/hotspot/share/interpreter/linkResolver.cpp#L1054 This is part of a bundle of changes for tracking class initialization actions, specifically for ?training mode? in the premain work. https://github.com/openjdk/jdk/compare/master...rose00:jdk:trace-init It would have to be factored away from training mode, and (instead) gated to some other predicate, such as ?are we fully bootstrapped yet into a production run?? If not, the overhead of the extra handshakes is acceptable and profitable. I put the bookkeeping in a private branch that also tracks other initialization events. Teasing out the initialization checks requires a simpler bookkeeping. Luckily, the InstanceKlass::field_status accessor can do this. We would need a new flag for the new state; call it something like ?detected_tracked_field_set?, meaning ?we are tracking this field for whatever reason, and we noticed it has been set at least once?. That?s a building block for Valhalla strictness checks and also for our init-checks. (There is a possible optimization here, where the VM looks first at the actual field value, and if it is not default, it doesn?t bother to look for the field status flag in the klass. This is appealingly simple, but it still requires the field status flag, just for the case where a getstatic explicitly stores the default value. And that requires more wiring of the getstatic bytecode, to detect whether the value being stored is null/zero/false. I will call that a nice idea for later, not for now. If you just gate all the checks on the metadata status bit, then you can perform them in the linker logic.) Because the handshake does not cover reflection, var handles, etc., it is not a full implementation of the tracking necessary for Valhalla strict statics (in the strict sense). But it is more than enough to pin down places where statics are getting read before written, because of init-loops. It will also get false positives, which will need some ad hoc filter logic to get the signal we need from this tool. I suggest tying it permanently to an -Xlog tag (static+init?) for general use. But more certainly there should be a mode (enabled separately) which performs the bookkeeping just during the Leyden assembly phase, and during VM startup, which throws a VMError if there is any read-before-write condition detected. To cope with false positive, some statics will need to be excluded from the error check, perhaps all non-finals (but, non-finals mayt deserve these checks as well). If only a few statics need exclusion, an annotation such as @DefaultInitOK (like @Stable, JDK only) can be created. Later on maybe it is a general external tool as well, but our problem now is specifically with booting up the First Hundred Classes of the JDK, not anything more general. We can put off doing the above init-check feature as long as we are willing to debug NPEs the slow way. And there are other tools, which cut across the field init check tool, which might be good enough to start with, although they will demand more cooperation from JDK maintainers. I?m speaking of annotations on classes (or if not annotations, side-lists in a file somewhere), which detail our expectations about initialization order. To my mind, the most interesting, and also restrictive, class annotation would be @LeafInitialize. This annotation demands that the annotated class C, when initialized, must not trigger any recursive initializations. Furthermore, if the class C ?touches? another class D, that class D must be fully initialized, not partially initialized. That is, whatever other D is ?touched? may not be (a) uninitialized, (b) being initialized in another thread, or (c ) being initialized in the current thread ? in which case C is being ?touched? by D, directly or indirectly. (The penalty is a log message, or, in some VM configurations, a VM exit or a VMError throw.) It?s a simple idea which has deep consequences. For starters, it means that if you have a bootstrap loop, and you have marked any one class in that loop as @LeafInitialize, you will get an immediate diagnosis. That means that the normal source of NPEs due to bad static init order is excluded, if at least one of the culprit classes has been marked @LeafInitialize. In addition, it means that any objects created by the initialization logic of C are either C objects, or else objects of some class D which has already been fully initialized. This means that the transitive closure of those C objects is ?safe? with respect to class initialization if you load it out of the AOT cache, as long as an equivalent initialization order has been observed when booting up the AOT cache. If we go ahead and mark classes related to AOT holders as @LeafInitialize, we can demonstrate more clearly that the ?stuff? those classes are surfacing from the AOT cache is properly initialized. We will need to tinker with it to get the exact code shapes we need. There is a big debt to pay when using @LeafInitialize. The price to pay is fixing all the violations detected. For example, if you init MethodType, you will (surprisingly) init MethodHandle as well, which will then recursively init MethodType. That shows a place where a cycle must be cut to preserve the annotation validity. The cycle in this case is MethodType => per-MT invoker cache => MethodHandle => MethodHandle.type instance. (And maybe there is a more graceful way to deal with this cycle. The @LeafInitialize annotation is a harsh cleanser.) But sprinkling around @LeafInitialize at least will help us surface the problems quickly. Suppose MethodType is marked @LeafInitialize, and we fix the MethodHandle loop, but now we find that MethodType wants to init a completely innocuous class, like HashMap or StringBuilder, and (because of Murphy?s Law) this is the very first time that innocuous class is required. What is the price to pay for keeping @LeafInitialize? There are two possibilities: First, tinker with a global list somewhere (the VM has one) to ask that the innocuous class is handled first. Second (and better IMO) add a component to @LeafInitialize called LeafInitialize::requires, an array of class names. You can see the rest coming: When the VM processes a class annotated with a requires list, it initializes those other classes before entering the method of the annotated class. It is as if somehow the required classes were initialized concurrently by an unspecified process, and also somewhat like the case where methods of supers (and in Valhalla, flat fields) are executed before the subclass (or Valhalla field holder). I conjecture that we can hammer down many of our First Hundred Classes into the @LeafInitialize bucket. If that is true, we will have an orderly and maintainable initialization order for them. A third possible tool is another annotation, @StartupInitialize. If a class is marked @StartupInitialize, then we throw an error if somebody tries to initialize it too early. When is that? Well, to begin with, if the assembly phase trips over a @StartupInitialize class, it?s an error. We mark a class with @StartupInitialize if we know that it does something (say with system properties) that must be deferred until the production run. Just initializing this class, in the assembly phase, is declared to be a fatal error. If a class has some parts we need for the AP, we factor those out (say, into a nested class in the startup class). Or, we factor the dirty parts (which read environmental state) from the @StartupInitialize class, into a smaller dirty class (so the dirt is denser there) and move the annotation accordingly, so that the original class is now clean. It is fine if the original class makes method calls to the dirty class, as long as those method calls do not happen in the assembly phase. (As you can see, that would trigger init of the dirty class, as soon as that call happened. But if the AP calls only clean methods, all is well.) A fourth tool might be a complementary annotation @AOTInitialize which means, ?please, pick me, pick me!? The VM could do useful checks on such classes, such as ensuring that, while an @AOTInitialize class is being initialized, there are no ?touches? (direct or indirect initializations) of any classes marked @StartupInitialize. Note that @LeafInitialize does this also, more indiscriminately. But @AOTInitialize might have a role in shaping Leyden AOT cache policy, so maybe it pulls its weight. All of the above tools are of a common form: A. Turn on the tool (add an annotation or whatever). B. Build your JDK and boot it up. C. Watch for errors. D. Refactor/reannotate to fix the errors. E. Repeat until we get clean boot. Also: F. Add appropriate sequence checks into pre-integration testing. G. Fix regressions as needed (goto A). H. Watch closely for regressions in the field. I. Turn on the checking mode in the field and get the report. J. Fix those regressions also (goto A). The point is to put the human into the loop, and not just at the point where a wild NPE crops up. We need to demonstrate that we are correctly booting our classes, especially when Leyden perturbs the order. Much of the configuration logic used to build the AOT cache is automatic. But Java classes (like all Turing machines) are too tricky and shifty to completely characterize, by an automatic process. The above tools are, perhaps, necessary to add some more human oversight into the task of shaping AOT bootstrapping. Not that humans can master Turing machines either, but the buck stops with us, so we have to try. Volunteers, please? The sooner we start tinkering with rules and checkers the sooner we can get better insight into init-order, even when perturbed. And I hope I demonstrated in my previous note that this is not just a Leyden problem; it is a low-level background cost of Java?s wonderful dynamism. I?d prioritize as: LeafInit, StartupInit, statics, AOTInit. ? John From duke at openjdk.org Mon Oct 7 16:36:36 2024 From: duke at openjdk.org (duke) Date: Mon, 7 Oct 2024 16:36:36 GMT Subject: git: openjdk/leyden: hermetic-java-runtime: 108 new changesets Message-ID: Changeset: bfdeb33e Branch: hermetic-java-runtime Author: Harshitha Onkar Date: 2024-09-30 18:45:40 +0000 URL: https://git.openjdk.org/leyden/commit/bfdeb33e6f1d4f9f0cc65925ea792be98b1f4d61 8340332: Open source mixed AWT tests - Set3 Reviewed-by: aivanov + test/jdk/java/awt/MouseInfo/ContainerResizeMousePositionTest.java + test/jdk/java/awt/color/XAWTDifference/XAWTColors.jpg + test/jdk/java/awt/color/XAWTDifference/XAWTDifference.java Changeset: 31858fc4 Branch: hermetic-java-runtime Author: David Holmes Date: 2024-09-30 22:06:23 +0000 URL: https://git.openjdk.org/leyden/commit/31858fc4107a616aefd785cc06e932d1f03e2697 8340491: Thread stack-base assertion should report which thread has the un-set stack Reviewed-by: shade, kevinw, stefank ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp Changeset: a32c3b43 Branch: hermetic-java-runtime Author: Alexander Zuev Date: 2024-09-30 22:09:39 +0000 URL: https://git.openjdk.org/leyden/commit/a32c3b43aaefdebf5be229f90d9cd26db1859b95 8340407: Open source a few more Component related tests Reviewed-by: prr + test/jdk/java/awt/Component/ComponentLeakTest/ComponentLeakTest.java + test/jdk/java/awt/Component/ComponentSerializationTest/ComponentSerializationTest.java + test/jdk/java/awt/Component/MinMaxSizeDefensive/GetSizesTest.java + test/jdk/java/awt/Component/ZOrderTest/ZOrderTest.java Changeset: b11066b5 Branch: hermetic-java-runtime Author: Prasanta Sadhukhan Date: 2024-10-01 02:47:40 +0000 URL: https://git.openjdk.org/leyden/commit/b11066b56b69b2c526539e712cef47723098597f 8340719: Open source AWT List tests Reviewed-by: prr ! test/jdk/ProblemList.txt + test/jdk/java/awt/List/HandlingKeyEventIfMousePressedTest.java + test/jdk/java/awt/List/ListActionEventTest.java + test/jdk/java/awt/List/MultiSelectionListHorizScrollbar.java + test/jdk/java/awt/List/RepaintAfterResize.java Changeset: 988f13a3 Branch: hermetic-java-runtime Author: Abhishek Kumar Date: 2024-10-01 04:32:55 +0000 URL: https://git.openjdk.org/leyden/commit/988f13a3875a6d29d7de07c5e97fcd6e7f9a31ff 8340354: Open source AWT desktop properties and print related tests Reviewed-by: prr + test/jdk/java/awt/DesktopProperties/FontSmoothing.java + test/jdk/java/awt/DesktopProperties/ThreeDBackgroundColor.java + test/jdk/java/awt/PrintJob/PrintCompatibilityTest.java + test/jdk/java/awt/PrintJob/PrintComponentTest.java + test/jdk/java/awt/PrintJob/ScaledImagePrintingTest.java Changeset: 9bd47859 Branch: hermetic-java-runtime Author: Abhishek Kumar Date: 2024-10-01 04:40:16 +0000 URL: https://git.openjdk.org/leyden/commit/9bd478593cc92a716151d1373f3426f1d92143bb 8340437: Open source few more AWT Frame related tests Reviewed-by: prr, kizune + test/jdk/java/awt/Frame/DisabledParentOfToplevel.java + test/jdk/java/awt/Frame/FrameVisualTest.java + test/jdk/java/awt/Frame/IMStatusBar.java + test/jdk/java/awt/Frame/MultiScreenTest.java Changeset: 1b46fea5 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2024-10-01 07:15:42 +0000 URL: https://git.openjdk.org/leyden/commit/1b46fea59cf8f53b23e5c16a604b4decc8c7dbbe 8341024: [test] build/AbsPathsInImage.java fails with OOM when using ubsan-enabled binaries Reviewed-by: erikj ! test/jdk/build/AbsPathsInImage.java Changeset: ad5ffccf Branch: hermetic-java-runtime Author: Axel Boldt-Christmas Date: 2024-10-01 08:02:56 +0000 URL: https://git.openjdk.org/leyden/commit/ad5ffccffa89359dac6ad44b9e43242e5bf3e398 8341168: Cleanup dead code after JDK-8322630 Reviewed-by: stefank, tschatzl, mli, shade ! src/hotspot/share/code/compiledIC.cpp ! src/hotspot/share/compiler/compilerDefinitions.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/vmOperation.hpp ! src/hotspot/share/runtime/vmOperations.hpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/code/StubQueue.java Changeset: 2dc3b1a7 Branch: hermetic-java-runtime Author: Nizar Benalla Date: 2024-10-01 10:27:07 +0000 URL: https://git.openjdk.org/leyden/commit/2dc3b1a71ffe71bc08ec967bb6b24ccf803037f3 8341201: Broken link in AbstractAnnotationValueVisitor7 due to extra quotation mark Reviewed-by: iris, darcy ! src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java Changeset: f7c7958f Branch: hermetic-java-runtime Author: Axel Boldt-Christmas Date: 2024-10-01 11:33:11 +0000 URL: https://git.openjdk.org/leyden/commit/f7c7958f001b3242eb485efd25bbcf9e1be75d85 8340420: ZGC: Should call `vm_shutdown_during_initialization` if initialization fails Reviewed-by: stefank, mli ! src/hotspot/os/bsd/gc/z/zPhysicalMemoryBacking_bsd.cpp ! src/hotspot/os/linux/gc/z/zPhysicalMemoryBacking_linux.cpp ! src/hotspot/share/gc/z/zCollectedHeap.cpp ! src/hotspot/share/gc/z/zCollectedHeap.hpp ! src/hotspot/share/gc/z/zHeap.cpp ! src/hotspot/share/gc/z/zInitialize.cpp ! src/hotspot/share/gc/z/zInitialize.hpp ! src/hotspot/share/gc/z/zMarkStackAllocator.cpp ! src/hotspot/share/gc/z/zVirtualMemory.cpp Changeset: 7cc7c080 Branch: hermetic-java-runtime Author: Raphael Mosaner Committer: Doug Simon Date: 2024-10-01 11:46:13 +0000 URL: https://git.openjdk.org/leyden/commit/7cc7c080b5dbab61914512bf63227944697c0cbe 8337493: [JVMCI] Number of libgraal threads might be too low Reviewed-by: dnsimon ! src/hotspot/share/jvmci/jvmci_globals.hpp Changeset: 684d246c Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-01 13:29:56 +0000 URL: https://git.openjdk.org/leyden/commit/684d246ccf497f599ffcd498f2fbe4b1b2357e27 8341242: Shenandoah: LRB node is not matched as GC barrier after JDK-8340183 Reviewed-by: rkennke, phh ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp Changeset: 2120a841 Branch: hermetic-java-runtime Author: Yudi Zheng Date: 2024-10-01 13:59:36 +0000 URL: https://git.openjdk.org/leyden/commit/2120a8414ef9c34d5875d33ac9a16594908fe403 8341333: [JVMCI] Export JavaThread::_unlocked_inflated_monitor to JVMCI Reviewed-by: dnsimon ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp Changeset: 7b1e6f8e Branch: hermetic-java-runtime Author: joseph.jackson Committer: Zhengyu Gu Date: 2024-10-01 14:00:39 +0000 URL: https://git.openjdk.org/leyden/commit/7b1e6f8ed9dbc07158717a32d341393afaa54b66 8337389: Parallel: Remove unnecessary forward declarations in psScavenge.hpp Reviewed-by: kbarrett, tschatzl ! src/hotspot/share/gc/parallel/psScavenge.hpp Changeset: f2a767f5 Branch: hermetic-java-runtime Author: Alexander Zvegintsev Date: 2024-10-01 14:28:22 +0000 URL: https://git.openjdk.org/leyden/commit/f2a767f59b1f66966665bc8601273b532961395a 8340907: Open source closed frame tests # 2 Reviewed-by: prr, honkar ! test/jdk/ProblemList.txt + test/jdk/java/awt/Frame/DeiconifyClipTest.java + test/jdk/java/awt/Frame/FrameSetCursorTest.java + test/jdk/java/awt/Frame/InitialIconifiedTest.java + test/jdk/java/awt/Frame/InsetCorrectionTest.java Changeset: 9a7817b1 Branch: hermetic-java-runtime Author: Leonid Mesnik Date: 2024-10-01 16:02:02 +0000 URL: https://git.openjdk.org/leyden/commit/9a7817b1376d055c5a7c1005b275cc1f198e5364 8340988: Update jdk/jfr/event/gc/collection tests to accept "CodeCache GC Threshold" as valid GC reason Reviewed-by: tschatzl ! test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithG1ConcurrentMark.java ! test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithG1FullCollection.java ! test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithParallelOld.java ! test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithSerial.java Changeset: 021bf630 Branch: hermetic-java-runtime Author: Alexander Zuev Date: 2024-10-01 18:27:25 +0000 URL: https://git.openjdk.org/leyden/commit/021bf630351fd5369fac732b1099bc2bfe8b5e19 8340458: Open source additional Component tests (part 2) Reviewed-by: psadhukhan + test/jdk/java/awt/Component/BackgroundColorTest/InitialBackgroundSettingTest.java + test/jdk/java/awt/Component/FlickeringOnScroll/FlickeringOnScroll.java + test/jdk/java/awt/Component/FocusRepaintTest/FocusRepaintTest.java + test/jdk/java/awt/Component/ListDoubleIndentTest/ListDoubleIndentTest.java Changeset: 03149735 Branch: hermetic-java-runtime Author: Alex Menkov Date: 2024-10-01 18:50:37 +0000 URL: https://git.openjdk.org/leyden/commit/03149735e59b7d1d409a6e29ee05ae0537e03d53 8341060: Cleanup statics in HeapDumper Reviewed-by: shade, sspitsyn ! src/hotspot/share/services/heapDumper.cpp Changeset: d2e77089 Branch: hermetic-java-runtime Author: Harshitha Onkar Date: 2024-10-01 21:08:41 +0000 URL: https://git.openjdk.org/leyden/commit/d2e77089aaeef83e6f659fd77fdd0a360def760a 8341367: Problemlist ShapeNotSetSometimes.java on macOS Reviewed-by: aivanov ! test/jdk/ProblemList.txt Changeset: 83dcb02d Branch: hermetic-java-runtime Author: Sandhya Viswanathan Date: 2024-10-01 22:48:31 +0000 URL: https://git.openjdk.org/leyden/commit/83dcb02d776448aa04f3f41df489bd4355443a4d 8340079: Modify rearrange/selectFrom Vector API methods to perform wrapIndexes instead of checkIndexes Reviewed-by: jbhateja, psandoz ! src/hotspot/share/adlc/formssel.cpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/library_call.hpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/AbstractShuffle.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template Changeset: 8d6d37fe Branch: hermetic-java-runtime Author: Tobias Holenstein Date: 2024-10-01 23:52:46 +0000 URL: https://git.openjdk.org/leyden/commit/8d6d37fea133380d4143f5db38ad3790efa84f68 8320308: C2 compilation crashes in LibraryCallKit::inline_unsafe_access Reviewed-by: thartmann, kvn, vlivanov, epeter, roland ! src/hotspot/share/opto/library_call.cpp ! test/hotspot/jtreg/ProblemList.txt + test/hotspot/jtreg/compiler/parsing/TestUnsafeArrayAccessWithNullBase.java Changeset: 0f381137 Branch: hermetic-java-runtime Author: Eirik Bj?rsn?s Committer: Jaikiran Pai Date: 2024-10-02 01:27:03 +0000 URL: https://git.openjdk.org/leyden/commit/0f381137cb9338453a7d77a7ebdfaa9b34b5028b 8341243: Use ArraySupport.SOFT_MAX_ARRAY_LENGTH for max array size in java.base Reviewed-by: jpai, smarks ! src/java.base/share/classes/java/io/InputStream.java ! src/java.base/share/classes/java/util/ArrayDeque.java ! src/java.base/share/classes/java/util/BitSet.java ! src/java.base/share/classes/java/util/Hashtable.java ! src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java ! src/java.base/share/classes/java/util/regex/Pattern.java ! src/java.base/share/classes/java/util/stream/Nodes.java ! src/java.base/share/classes/jdk/internal/foreign/AbstractMemorySegmentImpl.java ! src/java.base/share/classes/sun/security/util/SignatureFileVerifier.java ! test/jdk/java/lang/StringBuffer/HugeCapacity.java ! test/jdk/java/lang/StringBuilder/HugeCapacity.java ! test/jdk/java/nio/charset/CharsetDecoder/XcodeOverflow.java ! test/jdk/java/util/Base64/TestEncodingDecodingLength.java ! test/jdk/java/util/concurrent/tck/ArrayDeque8Test.java ! test/jdk/java/util/concurrent/tck/JSR166TestCase.java Changeset: 39c17b39 Branch: hermetic-java-runtime Author: Chen Liang Date: 2024-10-02 03:30:02 +0000 URL: https://git.openjdk.org/leyden/commit/39c17b392699007496816f788fca9fbe670dd6f8 8341277: Validate slot argument for instruction factories Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/CodeBuilder.java ! src/java.base/share/classes/java/lang/classfile/instruction/DiscontinuedInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/IncrementInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/LoadInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/LocalVariable.java ! src/java.base/share/classes/java/lang/classfile/instruction/LocalVariableType.java ! src/java.base/share/classes/java/lang/classfile/instruction/NewMultiArrayInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/StoreInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPseudoInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CodeImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java + test/jdk/jdk/classfile/InstructionValidationTest.java - test/jdk/jdk/classfile/OpcodesValidationTest.java Changeset: 90c944fe Branch: hermetic-java-runtime Author: Roland Westrelin Date: 2024-10-02 07:11:10 +0000 URL: https://git.openjdk.org/leyden/commit/90c944fefe4a7827c08a8e6a81f137c3157a749b 8340824: C2: Memory for TypeInterfaces not reclaimed by hashcons() Reviewed-by: vlivanov, qamai ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/type.hpp Changeset: 52c2ea65 Branch: hermetic-java-runtime Author: Hamlin Li Date: 2024-10-02 07:48:22 +0000 URL: https://git.openjdk.org/leyden/commit/52c2ea65c4ab6a2d25e9de465fbf20034fe79028 8340732: RISC-V: Refactor crc32 scalar version Reviewed-by: fyang ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp Changeset: efe3573b Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2024-10-02 07:58:17 +0000 URL: https://git.openjdk.org/leyden/commit/efe3573b9b4ecec0630fdc1c61c765713a5b68e6 8340109: Ubsan: ciEnv.cpp:1660:65: runtime error: member call on null pointer of type 'struct CompileTask' Reviewed-by: kvn, lucy ! src/hotspot/share/ci/ciEnv.cpp Changeset: c8c4ff20 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2024-10-02 08:14:48 +0000 URL: https://git.openjdk.org/leyden/commit/c8c4ff2035c4e19a71f4395d23f036ba88d2e291 8341135: Incorrect format string after JDK-8339475 Reviewed-by: shade, clanger, alanb ! src/java.base/macosx/native/libjli/java_md_macosx.m Changeset: a4ca6267 Branch: hermetic-java-runtime Author: Feilong Jiang Date: 2024-10-02 09:14:31 +0000 URL: https://git.openjdk.org/leyden/commit/a4ca6267e17815153f8fa119db19b97b1da2bd84 8341146: RISC-V: Unnecessary fences used for load-acquire in template interpreter Reviewed-by: fyang, rehn ! src/hotspot/cpu/riscv/templateTable_riscv.cpp Changeset: d6820d13 Branch: hermetic-java-runtime Author: fabioromano1 <51378941+fabioromano1 at users.noreply.github.com> Committer: Raffaello Giulietti Date: 2024-10-02 09:45:43 +0000 URL: https://git.openjdk.org/leyden/commit/d6820d1324711eac95a297dd68ec94e6f6be4b35 8336274: MutableBigInteger.leftShift(int) optimization Reviewed-by: rgiulietti ! src/java.base/share/classes/java/math/MutableBigInteger.java + test/jdk/java/math/BigInteger/MutableBigIntegerShiftTests.java + test/jdk/java/math/BigInteger/java.base/java/math/MutableBigIntegerBox.java Changeset: 855c8a7d Branch: hermetic-java-runtime Author: Ramkumar Sunderbabu Date: 2024-10-02 10:48:21 +0000 URL: https://git.openjdk.org/leyden/commit/855c8a7def21025bc2fc47594f7285a55924c213 8334305: Remove all code for nsk.share.Log verbose mode Reviewed-by: mli, cjplummer, lmesnik ! test/hotspot/jtreg/vmTestbase/jit/escape/LockElision/MatMul/MatMul.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/LaunchingConnector/launchnosuspend/launchnosuspend001.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/filter_tagged/HeapFilter.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded001.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded001.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/stress/lowmem/lowmem001.java ! test/hotspot/jtreg/vmTestbase/nsk/share/Log.java ! test/hotspot/jtreg/vmTestbase/nsk/share/aod/AODTestRunner.java ! test/hotspot/jtreg/vmTestbase/nsk/share/aod/AbstractJarAgent.java ! test/hotspot/jtreg/vmTestbase/nsk/share/aod/DummyTargetApplication.java ! test/hotspot/jtreg/vmTestbase/nsk/share/aod/TargetApplicationWaitingAgents.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/JVMTITest.java ! test/hotspot/jtreg/vmTestbase/vm/compiler/coverage/parentheses/Parentheses.java Changeset: 5e980072 Branch: hermetic-java-runtime Author: Roman Kennke Date: 2024-10-02 13:27:57 +0000 URL: https://git.openjdk.org/leyden/commit/5e9800721a29dbb85be76a6f56c2e2677a3274f2 8307532: Implement LM_LIGHTWEIGHT for Zero Reviewed-by: aboldtch, jwaters ! src/hotspot/cpu/zero/vm_version_zero.cpp ! src/hotspot/cpu/zero/zeroInterpreter_zero.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/basicLock.inline.hpp Changeset: 88380484 Branch: hermetic-java-runtime Author: Matias Saavedra Silva Date: 2024-10-02 14:45:56 +0000 URL: https://git.openjdk.org/leyden/commit/883804841ef9319a18f90a852272c69bc54f5395 8324259: Classes used by CDS at runtime should be archived Reviewed-by: iklam, ccheung ! src/hotspot/share/cds/metaspaceShared.cpp ! test/hotspot/jtreg/TEST.groups + test/hotspot/jtreg/runtime/cds/appcds/DumpRuntimeClassesTest.java Changeset: 49501fe9 Branch: hermetic-java-runtime Author: Ramkumar Sunderbabu Committer: Leonid Mesnik Date: 2024-10-02 15:13:27 +0000 URL: https://git.openjdk.org/leyden/commit/49501fe9c4d0fc4d6285ba4f5d403754e5a147bd 8341412: Various test failures after JDK-8334305 Reviewed-by: lmesnik, dcubed ! test/hotspot/jtreg/vmTestbase/nsk/share/Log.java Changeset: 85f04427 Branch: hermetic-java-runtime Author: Alexey Ivanov Date: 2024-10-02 15:16:32 +0000 URL: https://git.openjdk.org/leyden/commit/85f0442727201e0d36ed0a71d2199e602501c98d 8317116: Provide layouts for multiple test UI in PassFailJFrame Reviewed-by: azvegint, prr ! test/jdk/java/awt/regtesthelpers/PassFailJFrame.java + test/jdk/java/awt/regtesthelpers/WindowLayouts.java Changeset: 5063494f Branch: hermetic-java-runtime Author: Alexey Ivanov Date: 2024-10-02 15:16:55 +0000 URL: https://git.openjdk.org/leyden/commit/5063494f5b0859a396b4e41096793c777d4650b8 8340785: Update description of PassFailJFrame and samples Reviewed-by: prr ! test/jdk/java/awt/regtesthelpers/PassFailJFrame.java Changeset: 9fc1c684 Branch: hermetic-java-runtime Author: Sorin Basca Committer: Liam Miller-Cushon Date: 2024-10-02 15:30:21 +0000 URL: https://git.openjdk.org/leyden/commit/9fc1c684421043ac8df9ac7cd10fefd2a75e7a6b 8339850: Restore the interrupt status in FileSystemPreferences.lockFile() Reviewed-by: bpb, djelinski, vtewari ! src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java Changeset: 0bdfe88e Branch: hermetic-java-runtime Author: Calvin Cheung Date: 2024-10-02 15:51:56 +0000 URL: https://git.openjdk.org/leyden/commit/0bdfe88e4c5d2f2364b07b803aae16ca0ba7b9d2 8328313: Archived module graph should allow identical --module-path to be specified during dump time and run time Reviewed-by: alanb, dholmes, iklam ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoaderExt.cpp ! src/hotspot/share/classfile/classLoaderExt.hpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp ! src/java.base/share/classes/jdk/internal/loader/BuiltinClassLoader.java ! src/java.base/share/classes/jdk/internal/loader/ClassLoaders.java ! src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java ! src/java.base/share/classes/jdk/internal/module/ModuleReferences.java ! test/hotspot/jtreg/TEST.groups ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/MainModuleOnly.java ! test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/MainModuleOnly.java + test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/ModulePathAndFMG.java ! test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/OptimizeModuleHandlingTest.java Changeset: 76283dd2 Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-02 16:07:10 +0000 URL: https://git.openjdk.org/leyden/commit/76283dd2701ca4ad5c1c99a66f3e8e3d0fe55d44 8341246: Test com/sun/tools/attach/PermissionTest.java fails access denied after JDK-8327114 Reviewed-by: kevinw, sgehwolf ! test/jdk/com/sun/tools/attach/java.policy.allow Changeset: c43202ba Branch: hermetic-java-runtime Author: Alexey Ivanov Date: 2024-10-02 16:10:48 +0000 URL: https://git.openjdk.org/leyden/commit/c43202baf6eb7e49ec458037971a9efa392d053e 8341037: Use standard layouts in DefaultFrameIconTest.java and MenuCrash.java Reviewed-by: azvegint, prr ! test/jdk/java/awt/Frame/DefaultFrameIconTest.java ! test/jdk/java/awt/Frame/MenuCrash.java Changeset: dc0ce1b2 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2024-10-02 21:58:26 +0000 URL: https://git.openjdk.org/leyden/commit/dc0ce1b2f2ebf457de9524adcbce2b473749e815 8341336: Fix -Wzero-as-null-pointer-constant warnings in PRODUCT-only code Reviewed-by: stefank, iwalulya, shade ! src/hotspot/share/c1/c1_LIR.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.hpp ! src/hotspot/share/oops/constantPool.hpp ! src/hotspot/share/opto/memnode.hpp ! src/hotspot/share/utilities/macros.hpp Changeset: 57c1db58 Branch: hermetic-java-runtime Author: William Kemper Date: 2024-10-02 22:54:18 +0000 URL: https://git.openjdk.org/leyden/commit/57c1db5843db5f2c864318f3234767f436a836e3 8332697: ubsan: shenandoahSimpleBitMap.inline.hpp:68:23: runtime error: signed integer overflow: -9223372036854775808 - 1 cannot be represented in type 'long int' Reviewed-by: phh, kdnilsen ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.inline.hpp Changeset: bdfb41f9 Branch: hermetic-java-runtime Author: Weijun Wang Date: 2024-10-02 22:55:50 +0000 URL: https://git.openjdk.org/leyden/commit/bdfb41f977258831e4b0ceaef5d016d095ab6e7f 8309841: Jarsigner should print a warning if an entry is removed Reviewed-by: mullan, hchao ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources.java + test/jdk/sun/security/tools/jarsigner/RemovedFiles.java + test/lib-test/jdk/test/lib/util/JarUtilsTest.java ! test/lib/jdk/test/lib/util/JarUtils.java Changeset: 602408e4 Branch: hermetic-java-runtime Author: Prasanta Sadhukhan Date: 2024-10-03 02:51:23 +0000 URL: https://git.openjdk.org/leyden/commit/602408e4f3848b30299ea94264e88ead5361a310 8341177: Opensource few List and a Window test Reviewed-by: prr + test/jdk/java/awt/List/ActionEventWhenHitEnterTest.java + test/jdk/java/awt/List/ListAddPerfTest.java + test/jdk/java/awt/List/MouseDraggedOriginatedByScrollBarTest.java + test/jdk/java/awt/Window/bug4189244.java Changeset: 50ec1691 Branch: hermetic-java-runtime Author: Abhishek Kumar Date: 2024-10-03 04:16:10 +0000 URL: https://git.openjdk.org/leyden/commit/50ec169116b486a49dc2dcb4218264bd48db79cc 8341191: Open source few more AWT FileDialog tests Reviewed-by: prr, psadhukhan + test/jdk/java/awt/FileDialog/KeyboardInteractionTest.java + test/jdk/java/awt/FileDialog/PathChoiceDisposeTest.java + test/jdk/java/awt/FileDialog/PathChoiceWorkArrowsTest.java + test/jdk/java/awt/FileDialog/SavedDirInitTest.java Changeset: ff3e849b Branch: hermetic-java-runtime Author: Alexander Zvegintsev Date: 2024-10-03 05:31:10 +0000 URL: https://git.openjdk.org/leyden/commit/ff3e849b8a1de3741dcd728636e1a804996f96fe 8341239: Open source closed frame tests # 3 Reviewed-by: prr + test/jdk/java/awt/Frame/FrameMenuPackTest.java + test/jdk/java/awt/Frame/FrameResizeTest/FrameResizeTest_3.java + test/jdk/java/awt/Frame/FrameResizeTest/FrameResizeTest_4.java + test/jdk/java/awt/Frame/FrameResizeTest/FrameResizeTest_5.java Changeset: c6e7e551 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-03 07:25:42 +0000 URL: https://git.openjdk.org/leyden/commit/c6e7e551928c04b74775b5d4c03eb31232aeb2c9 8341091: CDS: Segmented roots array misses roots Reviewed-by: adinn, iklam ! src/hotspot/share/cds/archiveHeapLoader.cpp ! src/hotspot/share/cds/archiveHeapWriter.cpp ! src/hotspot/share/cds/archiveUtils.hpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp Changeset: 0b467e90 Branch: hermetic-java-runtime Author: Roberto Casta?eda Lozano Date: 2024-10-03 08:36:33 +0000 URL: https://git.openjdk.org/leyden/commit/0b467e902d591ae9feeec1669918d1588987cd1c 8334060: Implementation of Late Barrier Expansion for G1 Co-authored-by: Roberto Casta?eda Lozano Co-authored-by: Erik ?sterlund Co-authored-by: Siyao Liu Co-authored-by: Kim Barrett Co-authored-by: Amit Kumar Co-authored-by: Martin Doerr Co-authored-by: Feilong Jiang Co-authored-by: Sergey Nazarkin Reviewed-by: kvn, tschatzl, fyang, ayang, kbarrett ! make/hotspot/gensrc/GensrcAdlc.gmk ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/cas.m4 ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.hpp + src/hotspot/cpu/aarch64/gc/g1/g1_aarch64.ad + src/hotspot/cpu/aarch64/gc/g1/g1_aarch64.m4 ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/arm/assembler_arm_32.hpp ! src/hotspot/cpu/arm/gc/g1/g1BarrierSetAssembler_arm.cpp ! src/hotspot/cpu/arm/gc/g1/g1BarrierSetAssembler_arm.hpp + src/hotspot/cpu/arm/gc/g1/g1_arm.ad ! src/hotspot/cpu/arm/gc/shared/barrierSetAssembler_arm.cpp ! src/hotspot/cpu/arm/gc/shared/barrierSetAssembler_arm.hpp ! src/hotspot/cpu/arm/register_arm.hpp ! src/hotspot/cpu/ppc/gc/g1/g1BarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/gc/g1/g1BarrierSetAssembler_ppc.hpp + src/hotspot/cpu/ppc/gc/g1/g1_ppc.ad ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/ppc/register_ppc.hpp ! src/hotspot/cpu/riscv/gc/g1/g1BarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/gc/g1/g1BarrierSetAssembler_riscv.hpp + src/hotspot/cpu/riscv/gc/g1/g1_riscv.ad ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/s390/gc/g1/g1BarrierSetAssembler_s390.cpp ! src/hotspot/cpu/s390/gc/g1/g1BarrierSetAssembler_s390.hpp + src/hotspot/cpu/s390/gc/g1/g1_s390.ad ! src/hotspot/cpu/s390/gc/shared/barrierSetAssembler_s390.cpp ! src/hotspot/cpu/s390/gc/shared/barrierSetAssembler_s390.hpp ! src/hotspot/cpu/s390/macroAssembler_s390.cpp ! src/hotspot/cpu/s390/register_s390.hpp ! src/hotspot/cpu/s390/s390.ad ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.hpp + src/hotspot/cpu/x86/gc/g1/g1_x86_64.ad ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/share/gc/g1/c2/g1BarrierSetC2.cpp ! src/hotspot/share/gc/g1/c2/g1BarrierSetC2.hpp ! src/hotspot/share/gc/g1/g1BarrierSetRuntime.cpp ! src/hotspot/share/gc/g1/g1BarrierSetRuntime.hpp ! src/hotspot/share/gc/shared/c2/barrierSetC2.cpp ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.cpp ! src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.hpp ! src/hotspot/share/opto/buildOopMap.cpp ! src/hotspot/share/opto/lcm.cpp ! src/hotspot/share/opto/matcher.cpp ! src/hotspot/share/opto/matcher.hpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/output.cpp ! test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java ! test/hotspot/jtreg/compiler/c2/irTests/scalarReplacement/AllocationMergesTests.java + test/hotspot/jtreg/compiler/gcbarriers/TestG1BarrierGeneration.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java + test/hotspot/jtreg/compiler/runtime/safepoints/TestMachTempsAcrossSafepoints.java ! test/hotspot/jtreg/testlibrary/ctw/src/sun/hotspot/tools/ctw/CtwRunner.java ! test/jdk/java/lang/invoke/BigArityTest.java Changeset: 19642bd3 Branch: hermetic-java-runtime Author: Alexander Zuev Date: 2024-10-03 09:23:46 +0000 URL: https://git.openjdk.org/leyden/commit/19642bd3833fa96eb4bc7a8a11e902782e0b7844 8341148: Open source several Choice related tests Reviewed-by: abhiscxk + test/jdk/java/awt/Choice/ChoiceInLWTest/ChoiceInLWTest.java + test/jdk/java/awt/Choice/MultiItemSelected/MultiItemSelected_DragOut.java + test/jdk/java/awt/Choice/MultiItemSelected/MultiItemSelected_KeySelect.java + test/jdk/java/awt/Choice/MultiItemSelected/MultiItemSelected_UpDown.java + test/jdk/java/awt/Choice/RepaintAfterRemoveLastItemTest/RepaintAfterRemoveLastItemTest.java Changeset: 6af13580 Branch: hermetic-java-runtime Author: Jorn Vernee Date: 2024-10-03 12:02:24 +0000 URL: https://git.openjdk.org/leyden/commit/6af13580c2086afefde489275bc2353c2320ff3f 8337753: Target class of upcall stub may be unloaded Reviewed-by: amitkumar, vlivanov, mdoerr ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/upcallLinker_aarch64.cpp ! src/hotspot/cpu/arm/upcallLinker_arm.cpp ! src/hotspot/cpu/ppc/stubGenerator_ppc.cpp ! src/hotspot/cpu/ppc/upcallLinker_ppc.cpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp ! src/hotspot/cpu/riscv/upcallLinker_riscv.cpp ! src/hotspot/cpu/s390/stubGenerator_s390.cpp ! src/hotspot/cpu/s390/upcallLinker_s390.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.hpp ! src/hotspot/cpu/x86/upcallLinker_x86_32.cpp ! src/hotspot/cpu/x86/upcallLinker_x86_64.cpp ! src/hotspot/cpu/zero/upcallLinker_zero.cpp ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/prims/upcallLinker.cpp ! src/hotspot/share/prims/upcallLinker.hpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/frame.hpp ! src/hotspot/share/runtime/stubRoutines.cpp ! src/hotspot/share/runtime/stubRoutines.hpp ! test/jdk/TEST.groups + test/jdk/java/foreign/TestUpcallStress.java Changeset: d7f32d89 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-03 12:08:23 +0000 URL: https://git.openjdk.org/leyden/commit/d7f32d891cde2278fe7158fb28d29235db5c818c 8341415: Optimize RawBytecodeHelper::next Reviewed-by: liach ! src/java.base/share/classes/jdk/internal/classfile/impl/RawBytecodeHelper.java Changeset: 7d524d7e Branch: hermetic-java-runtime Author: Abhishek Kumar Date: 2024-10-03 12:20:01 +0000 URL: https://git.openjdk.org/leyden/commit/7d524d7e378430afb3a262e8fe544bd1be22748c 8341004: Open source AWT FileDialog related tests Reviewed-by: kizune + test/jdk/java/awt/FileDialog/DoubleActionCloseX.java + test/jdk/java/awt/FileDialog/DoubleActionESC.java + test/jdk/java/awt/FileDialog/TestFileDialogDupJNIRef.java Changeset: 21f8ccf4 Branch: hermetic-java-runtime Author: Severin Gehwolf Date: 2024-10-03 12:55:54 +0000 URL: https://git.openjdk.org/leyden/commit/21f8ccf4a97313593f210f9a07e56d5ff92b7aa5 8341310: Test TestJcmdWithSideCar.java should skip ACCESS_TMP_VIA_PROC_ROOT (after JDK-8327114) Reviewed-by: kevinw ! test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java Changeset: eb93e695 Branch: hermetic-java-runtime Author: Alan Bateman Date: 2024-10-03 14:02:40 +0000 URL: https://git.openjdk.org/leyden/commit/eb93e6952b5d2dbe78cd9680855ac99c69b3dcb2 8339979: VirtualThreadSchedulerMXBeanTest.testReduceParallelism fails intermittently Reviewed-by: kevinw ! test/jdk/jdk/management/VirtualThreadSchedulerMXBean/VirtualThreadSchedulerMXBeanTest.java Changeset: 12028000 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-03 14:34:05 +0000 URL: https://git.openjdk.org/leyden/commit/12028000db2ef3b1c784af119c495aa3ef9590cf 8341006: Optimize StackMapGenerator detect frames Reviewed-by: liach ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java Changeset: f1ea57f0 Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2024-10-03 15:13:42 +0000 URL: https://git.openjdk.org/leyden/commit/f1ea57f06a044ebd39d31a7c4765d0220327b0a0 8340229: Improve opening sentence of FileInputStream constructor specification Reviewed-by: alanb, jpai ! src/java.base/share/classes/java/io/FileInputStream.java Changeset: 3ee94e04 Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2024-10-03 15:13:58 +0000 URL: https://git.openjdk.org/leyden/commit/3ee94e040a7395d11a294a6b660d707c97f188f8 8341282: (fs) Move creation time fallback logic to Java layer (Linux) Reviewed-by: sgehwolf, alanb ! src/java.base/unix/classes/sun/nio/fs/UnixFileAttributes.java ! src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c Changeset: ebb4759c Branch: hermetic-java-runtime Author: Alexander Zuev Date: 2024-10-03 16:19:09 +0000 URL: https://git.openjdk.org/leyden/commit/ebb4759c3d2776f5e6e83f743a7891a145f8aee4 8340625: Open source additional Component tests (part 3) Reviewed-by: psadhukhan + test/jdk/java/awt/Component/PaintGlitchTest/PaintGlitchTest.java + test/jdk/java/awt/Component/ProcessEvent/ProcessEvent.java + test/jdk/java/awt/Component/SetFontOrBackground/SetBgrFnt.java Changeset: de12fc7a Branch: hermetic-java-runtime Author: Hannes Walln?fer Date: 2024-10-03 16:44:22 +0000 URL: https://git.openjdk.org/leyden/commit/de12fc7a3601ad7d5e10ccd38967b26eadf96aff 8339684: ResizeObserver callback interrupts smooth scrolling on Chrome Reviewed-by: prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script.js.template Changeset: 013250e4 Branch: hermetic-java-runtime Author: Damon Nguyen Date: 2024-10-03 16:46:46 +0000 URL: https://git.openjdk.org/leyden/commit/013250e4a7bc2fa83c6e57bb8fad6002dbe3176c 8340432: Open source some MenuBar tests - Set2 Reviewed-by: prr, psadhukhan + test/jdk/java/awt/MenuBar/MenuBarAddRemoveTest/MenuBarAddRemoveTest.java + test/jdk/java/awt/MenuBar/MenuBarOnDisabledFrame/MenuBarOnDisabledFrame.java + test/jdk/java/awt/MenuBar/MenuBarVisuals/MenuBarVisuals.java + test/jdk/java/awt/MenuBar/SetHelpMenuTest/SetHelpMenuTest.java Changeset: b6e72ff9 Branch: hermetic-java-runtime Author: Jamil Nimeh Date: 2024-10-03 17:16:31 +0000 URL: https://git.openjdk.org/leyden/commit/b6e72ff971455f7768c2e1c0fe53d922e5deed38 8339403: sun.security.ssl.StatusResponseManager.get swallows interrupt status Reviewed-by: valeriep ! src/java.base/share/classes/sun/security/ssl/StatusResponseManager.java ! test/jdk/sun/security/ssl/Stapling/StatusResponseManager.java ! test/jdk/sun/security/ssl/Stapling/java.base/sun/security/ssl/StatusResponseManagerTests.java Changeset: 6f459aff Branch: hermetic-java-runtime Author: Harshitha Onkar Date: 2024-10-03 18:01:22 +0000 URL: https://git.openjdk.org/leyden/commit/6f459aff453679ee89fd80bb325737d76288e4d2 8340077: Open source few Checkbox tests - Set2 Reviewed-by: prr, azvegint, psadhukhan ! test/jdk/ProblemList.txt + test/jdk/java/awt/Checkbox/CheckboxBoxSizeTest.java + test/jdk/java/awt/Checkbox/CheckboxIndicatorSizeTest.java + test/jdk/java/awt/Checkbox/CheckboxNullLabelTest.java + test/jdk/java/awt/Checkbox/CheckboxPreferredSizeTest.java Changeset: e89fd1d2 Branch: hermetic-java-runtime Author: Phil Race Date: 2024-10-03 19:22:28 +0000 URL: https://git.openjdk.org/leyden/commit/e89fd1d2ceff82952a4859c0febe902412fcf064 8341128: open source some 2d graphics tests Reviewed-by: psadhukhan + test/jdk/java/awt/Graphics2D/BasicStrokeValidate.java + test/jdk/java/awt/Graphics2D/DrawImageIAETest/DrawImageIAETest.java = test/jdk/java/awt/Graphics2D/DrawImageIAETest/duke.gif + test/jdk/java/awt/Graphics2D/ImageRendering/ImageRendering.java = test/jdk/java/awt/Graphics2D/ImageRendering/snooze.gif + test/jdk/java/awt/Graphics2D/ScaledThinLineTest.java + test/jdk/java/awt/Graphics2D/TextPerf.java Changeset: 6bc3971f Branch: hermetic-java-runtime Author: Manukumar V S Committer: Phil Race Date: 2024-10-03 19:36:06 +0000 URL: https://git.openjdk.org/leyden/commit/6bc3971f646031194a1e30f175a69a0202dc4947 8341316: [macos] javax/swing/ProgressMonitor/ProgressMonitorEscapeKeyPress.java fails sometimes in macos Reviewed-by: prr ! test/jdk/javax/swing/ProgressMonitor/ProgressMonitorEscapeKeyPress.java Changeset: 10402b43 Branch: hermetic-java-runtime Author: Daniel D. Daugherty Date: 2024-10-03 20:25:47 +0000 URL: https://git.openjdk.org/leyden/commit/10402b43c764456f2ec358a8b434654df545a8a1 8341489: ProblemList runtime/cds/appcds/DumpRuntimeClassesTest.java in Xcomp mode Reviewed-by: matsaave ! test/hotspot/jtreg/ProblemList-Xcomp.txt Changeset: 4ded2838 Branch: hermetic-java-runtime Author: Dhamoder Nalla Committer: David Holmes Date: 2024-10-04 04:50:54 +0000 URL: https://git.openjdk.org/leyden/commit/4ded28380b6756e0679d80706f76bd6e78c370b9 8338136: Hotspot should support multiple large page sizes on Windows Reviewed-by: dholmes, djelinski ! src/hotspot/os/windows/globals_windows.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/os/windows/os_windows.hpp ! test/hotspot/gtest/runtime/test_os_windows.cpp Changeset: d3139b4c Branch: hermetic-java-runtime Author: Jayathirth D V Date: 2024-10-04 06:49:54 +0000 URL: https://git.openjdk.org/leyden/commit/d3139b4c3682defab2a8bfa0a24890232c3f00a3 8341000: Open source some of the AWT Window tests Reviewed-by: psadhukhan, abhiscxk + test/jdk/java/awt/Window/BadConfigure/BadConfigure.java + test/jdk/java/awt/Window/InvalidFocusLostEventTest/InvalidFocusLostEventTest.java Changeset: 3f420fac Branch: hermetic-java-runtime Author: Axel Boldt-Christmas Date: 2024-10-04 06:55:53 +0000 URL: https://git.openjdk.org/leyden/commit/3f420fac842153372e17222e7153cbc71c5789a7 8341451: Remove C2HandleAnonOMOwnerStub Reviewed-by: fyang, chagedorn ! src/hotspot/cpu/aarch64/c2_CodeStubs_aarch64.cpp ! src/hotspot/cpu/riscv/c2_CodeStubs_riscv.cpp ! src/hotspot/share/opto/c2_CodeStubs.hpp Changeset: a63ac5a6 Branch: hermetic-java-runtime Author: Richard Reingruber Date: 2024-10-04 08:26:15 +0000 URL: https://git.openjdk.org/leyden/commit/a63ac5a699a5d40c76d14f94a502b8003753f4dd 8340792: -XX:+PrintInterpreter: instructions should only be printed if printing all InterpreterCodelets Reviewed-by: mdoerr, coleenp ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/abstractInterpreter.hpp ! src/hotspot/share/interpreter/interpreter.cpp Changeset: ec020f3f Branch: hermetic-java-runtime Author: Stefan Johansson Date: 2024-10-04 08:26:35 +0000 URL: https://git.openjdk.org/leyden/commit/ec020f3fc988553ad1eda460d889b5ba24e76e8e 8340426: ZGC: Move defragment out of the allocation path Reviewed-by: aboldtch, jsikstro, eosterlund ! src/hotspot/share/gc/z/zHeap.cpp ! src/hotspot/share/gc/z/zHeap.hpp ! src/hotspot/share/gc/z/zPageAllocator.cpp ! src/hotspot/share/gc/z/zPageAllocator.hpp ! src/hotspot/share/gc/z/zRelocate.cpp Changeset: 1bdd79e7 Branch: hermetic-java-runtime Author: Todd V. Jonker Date: 2024-10-04 09:01:41 +0000 URL: https://git.openjdk.org/leyden/commit/1bdd79e7b2086197ab64161e89bbe8cc180f07ed 8341261: Tests assume UnlockExperimentalVMOptions is disabled by default Reviewed-by: stefank, mli, ysr ! test/hotspot/jtreg/compiler/blackhole/BlackholeExperimentalUnlockTest.java ! test/hotspot/jtreg/runtime/CommandLine/VMOptionWarning.java ! test/jtreg-ext/requires/VMProps.java Changeset: 7fa2f229 Branch: hermetic-java-runtime Author: Maurizio Cimadamore Date: 2024-10-04 09:45:50 +0000 URL: https://git.openjdk.org/leyden/commit/7fa2f229fbee68112cbdd18b811d95721adfe2ec 8341127: Extra call to MethodHandle::asType from memory segment var handles fails to inline Reviewed-by: psandoz, redestad, jvernee ! src/java.base/share/classes/java/lang/invoke/MethodHandle.java + test/micro/org/openjdk/bench/java/lang/foreign/LoopOverNonConstantAsType.java Changeset: 72ac72fe Branch: hermetic-java-runtime Author: Stefan Karlsson Date: 2024-10-04 11:43:11 +0000 URL: https://git.openjdk.org/leyden/commit/72ac72fe1f3faca299d3fb2b20d3af29c3fa1e56 8341413: Stop including osThread_os.hpp in the middle of the OSThread class Reviewed-by: coleenp, dholmes ! src/hotspot/os/aix/osThread_aix.cpp ! src/hotspot/os/aix/osThread_aix.hpp ! src/hotspot/os/aix/vmStructs_aix.hpp ! src/hotspot/os/bsd/osThread_bsd.cpp ! src/hotspot/os/bsd/osThread_bsd.hpp ! src/hotspot/os/bsd/vmStructs_bsd.hpp ! src/hotspot/os/linux/osThread_linux.cpp ! src/hotspot/os/linux/osThread_linux.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/vmStructs_linux.hpp ! src/hotspot/os/windows/osThread_windows.cpp ! src/hotspot/os/windows/osThread_windows.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/os/windows/vmStructs_windows.hpp ! src/hotspot/os_cpu/aix_ppc/vmStructs_aix_ppc.hpp ! src/hotspot/os_cpu/bsd_aarch64/vmStructs_bsd_aarch64.hpp ! src/hotspot/os_cpu/bsd_x86/vmStructs_bsd_x86.hpp ! src/hotspot/os_cpu/linux_aarch64/vmStructs_linux_aarch64.hpp ! src/hotspot/os_cpu/linux_arm/vmStructs_linux_arm.hpp ! src/hotspot/os_cpu/linux_ppc/vmStructs_linux_ppc.hpp ! src/hotspot/os_cpu/linux_riscv/vmStructs_linux_riscv.hpp ! src/hotspot/os_cpu/linux_s390/vmStructs_linux_s390.hpp ! src/hotspot/os_cpu/linux_x86/vmStructs_linux_x86.hpp ! src/hotspot/os_cpu/windows_aarch64/vmStructs_windows_aarch64.hpp ! src/hotspot/os_cpu/windows_x86/vmStructs_windows_x86.hpp ! src/hotspot/share/interpreter/bytecodeTracer.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp - src/hotspot/share/runtime/osThread.cpp ! src/hotspot/share/runtime/osThread.hpp + src/hotspot/share/runtime/osThreadBase.cpp + src/hotspot/share/runtime/osThreadBase.hpp Changeset: db61458d Branch: hermetic-java-runtime Author: Jayathirth D V Date: 2024-10-04 11:55:21 +0000 URL: https://git.openjdk.org/leyden/commit/db61458da840123925cb3ba079cfaf8277880320 8341298: Open source more AWT window tests Reviewed-by: abhiscxk + test/jdk/java/awt/Window/LocationByPlatformWithControls/TestLocationByPlatformWithControls.java + test/jdk/java/awt/Window/NoResizeEvent/NoResizeEvent.java + test/jdk/java/awt/Window/ProxyCrash/PopupProxyCrash.java + test/jdk/java/awt/Window/WindowToFrontTest/WindowToFrontTest.java Changeset: feb6a830 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2024-10-04 15:58:22 +0000 URL: https://git.openjdk.org/leyden/commit/feb6a830e291ff71e2803e37be6c35c237f7c1cf 8340945: Ubsan: oopStorage.cpp:374:8: runtime error: applying non-zero offset 18446744073709551168 to null pointer Reviewed-by: tschatzl, mbaesken ! src/hotspot/share/gc/shared/oopStorage.cpp ! src/hotspot/share/gc/shared/oopStorage.hpp ! src/hotspot/share/gc/shared/oopStorage.inline.hpp ! test/hotspot/gtest/gc/shared/test_oopStorage.cpp Changeset: 42f32551 Branch: hermetic-java-runtime Author: Calvin Cheung Date: 2024-10-04 16:14:51 +0000 URL: https://git.openjdk.org/leyden/commit/42f32551cd2aaa4b7609cc887cb33fc58ac12779 8341053: Two CDS tests fail again with -UseCompressedOops and UseSerialGC/UseParallelGC Reviewed-by: iklam, matsaave ! src/hotspot/share/prims/whitebox.cpp Changeset: beb2a51b Branch: hermetic-java-runtime Author: Calvin Cheung Date: 2024-10-04 16:20:01 +0000 URL: https://git.openjdk.org/leyden/commit/beb2a51b126671d1fac8d4b473ad8042a22f9ff5 8341377: Update VMProps.isCDSRuntimeOptionsCompatible to include Parallel and Serial GC Reviewed-by: dholmes, shade ! test/jtreg-ext/requires/VMProps.java Changeset: 0dd49970 Branch: hermetic-java-runtime Author: Harshitha Onkar Date: 2024-10-04 16:38:31 +0000 URL: https://git.openjdk.org/leyden/commit/0dd49970428e08d35996752ba0878a97fb6f8530 8340555: Open source DnD tests - Set4 Reviewed-by: aivanov, azvegint ! test/jdk/ProblemList.txt + test/jdk/java/awt/dnd/DnDHTMLToOutlookTest/DnDHTMLToOutlookTest.java + test/jdk/java/awt/dnd/DnDHTMLToOutlookTest/DnDSource.html + test/jdk/java/awt/dnd/DnDHTMLToOutlookTest/DnDSource.java + test/jdk/java/awt/dnd/DragSourceMotionListenerTest.java + test/jdk/java/awt/dnd/DragToAnotherScreenTest.java + test/jdk/java/awt/dnd/RejectDragTest.java Changeset: 04c9c5f0 Branch: hermetic-java-runtime Author: Phil Race Date: 2024-10-04 17:20:09 +0000 URL: https://git.openjdk.org/leyden/commit/04c9c5f0a7b49bbabfc2244411c6c995a3b464cf 8341111: open source several AWT tests including menu shortcut tests Reviewed-by: psadhukhan, jdv + test/jdk/java/awt/MenuShortcut/ActionCommandTest.java + test/jdk/java/awt/MenuShortcut/CheckMenuShortcut.java + test/jdk/java/awt/MenuShortcut/FunctionKeyShortcut.java + test/jdk/java/awt/MenuShortcut/MenuItemShortcutReplaceTest.java + test/jdk/java/awt/grab/CursorTest.java + test/jdk/java/awt/grab/SystemMenuTest.java Changeset: f5f0852f Branch: hermetic-java-runtime Author: Kelvin Nilsen Date: 2024-10-04 17:29:31 +0000 URL: https://git.openjdk.org/leyden/commit/f5f0852f51d3dc1001bf3d68b89f4aab31e05e61 8341379: Shenandoah: Improve lock contention during cleanup Reviewed-by: xpeng, phh, wkemper ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp Changeset: 2e5b420f Branch: hermetic-java-runtime Author: Justin Lu Date: 2024-10-04 17:34:08 +0000 URL: https://git.openjdk.org/leyden/commit/2e5b420f81cf714fe66871c4b426a460b4714b28 8340326: Remove references to Applet in core-libs/security tests Reviewed-by: prr, naoto, dfuchs - test/jdk/java/net/Socket/SocketImplTest.java - test/jdk/java/util/TimeZone/DefaultTimeZoneTest.html ! test/jdk/java/util/TimeZone/DefaultTimeZoneTest.java ! test/jdk/java/util/logging/TestMainAppContext.java ! test/jdk/jdk/internal/loader/URLClassPath/ClassnameCharTest.java ! test/jdk/sun/net/www/ParseUtil_6380332.java ! test/jdk/sun/net/www/protocol/http/B6296310.java ! test/jdk/sun/net/www/protocol/http/ResponseCacheStream.java ! test/jdk/sun/rmi/transport/tcp/disableMultiplexing/DisableMultiplexing.java ! test/jdk/tools/launcher/HelpFlagsTest.java ! test/jdk/tools/launcher/VersionCheck.java Changeset: c8e70df3 Branch: hermetic-java-runtime Author: Jayathirth D V Date: 2024-10-04 18:08:37 +0000 URL: https://git.openjdk.org/leyden/commit/c8e70df37ebc90faaffae469244cefa10e8274c1 8341162: Open source some of the AWT window test Reviewed-by: aivanov + test/jdk/java/awt/Window/LocationByPlatform/TestLocationByPlatform.java + test/jdk/java/awt/Window/OwnedWindowShowTest/OwnedWindowShowTest.java + test/jdk/java/awt/Window/ResizeTest/ResizeTest.java + test/jdk/java/awt/Window/ShowWindowTest/ShowWindowTest.java Changeset: 7e3978ea Branch: hermetic-java-runtime Author: Damon Nguyen Date: 2024-10-04 18:35:08 +0000 URL: https://git.openjdk.org/leyden/commit/7e3978eab22f040995f5794b97417022532d375d 8340164: Open source few Component tests - Set1 Reviewed-by: psadhukhan, prr + test/jdk/java/awt/LightweightComponent/LWParentMovedTest/LWParentMovedTest.java + test/jdk/java/awt/LightweightComponent/LightWeightTabFocus/LightWeightTabFocus.java + test/jdk/java/awt/LightweightComponent/LightweightFontTest/LightweightFontTest.java Changeset: 3d38cd97 Branch: hermetic-java-runtime Author: Damon Nguyen Date: 2024-10-04 18:36:26 +0000 URL: https://git.openjdk.org/leyden/commit/3d38cd97eff2228e2172bfdbf5cc21cf2060f871 8340966: Open source few Checkbox and Cursor tests - Set1 Reviewed-by: psadhukhan, jdv + test/jdk/java/awt/Checkbox/DynamicChangeTest/DynamicChangeTest.java + test/jdk/java/awt/Cursor/CursorDragTest/ListDragCursor.java + test/jdk/java/awt/Cursor/HiddenDialogParentTest/HiddenDialogParentTest.java + test/jdk/java/awt/Cursor/InvalidImageCustomCursorTest/InvalidImageCustomCursorTest.java + test/jdk/java/awt/Cursor/NullCursorTest/NullCursorTest.java Changeset: 92cb6331 Branch: hermetic-java-runtime Author: Damon Nguyen Date: 2024-10-04 18:39:30 +0000 URL: https://git.openjdk.org/leyden/commit/92cb6331085bb6f4db091ce80d9951413541d74a 8340967: Open source few Cursor tests - Set2 Reviewed-by: psadhukhan + test/jdk/java/awt/Cursor/BlockedWindowTest/BlockedWindowTest.java + test/jdk/java/awt/Cursor/CursorUpdateTest/CursorUpdateTest.java + test/jdk/java/awt/Cursor/CustomCursorTest/CustomCursorTest.java + test/jdk/java/awt/Cursor/JPanelCursorTest/JPanelCursorTest.java + test/jdk/java/awt/Cursor/SetCursorTest/SetCursorTest.java Changeset: 86e3d52c Branch: hermetic-java-runtime Author: Damon Nguyen Date: 2024-10-04 18:42:45 +0000 URL: https://git.openjdk.org/leyden/commit/86e3d52c70a611975da3abdebd2e1f14c7a1d019 8341258: Open source few various AWT tests - Set1 Reviewed-by: psadhukhan + test/jdk/java/awt/CardLayout/RemoveComponentTest/RemoveComponentTest.java + test/jdk/java/awt/GradientPaint/JerkyGradient.java + test/jdk/java/awt/GradientPaint/ShearTest.java Changeset: e70cbcfd Branch: hermetic-java-runtime Author: Joe Darcy Date: 2024-10-04 19:25:31 +0000 URL: https://git.openjdk.org/leyden/commit/e70cbcfd0c07c0334bf3d5fe20da806129d7565e 8341541: Wrong anchor in wrapper classes links Reviewed-by: hannesw, liach ! src/java.base/share/classes/java/lang/package-info.java ! src/java.compiler/share/classes/javax/lang/model/util/Types.java Changeset: a3e23572 Branch: hermetic-java-runtime Author: Joe Darcy Date: 2024-10-04 20:31:28 +0000 URL: https://git.openjdk.org/leyden/commit/a3e23572d5e879bd1c3b1755cf7be4601d03b62e 8341483: Clarify special case handling of Types.getArrayType Reviewed-by: liach, prappo, dlsmith ! src/java.compiler/share/classes/javax/lang/model/util/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacTypes.java ! test/langtools/tools/javac/processing/model/util/types/TestInvalidInputs.java Changeset: 33e4bfdf Branch: hermetic-java-runtime Author: Chris Plummer Date: 2024-10-04 21:17:21 +0000 URL: https://git.openjdk.org/leyden/commit/33e4bfdf919c44bebcf122818ab92deeb1f1cdce 8341295: Add some useful debugging APIs to the debug agent Reviewed-by: amenkov, sspitsyn ! src/jdk.jdwp.agent/share/native/libjdwp/util.c ! src/jdk.jdwp.agent/share/native/libjdwp/util.h Changeset: 85e0e645 Branch: hermetic-java-runtime Author: Alexander Matveev Date: 2024-10-04 21:21:47 +0000 URL: https://git.openjdk.org/leyden/commit/85e0e6452d167db2fadd60543f875a6375339604 8341443: [macos] AppContentTest and SigningOptionsTest failed due to "codesign" does not fails with "--app-content" on macOS 15 Reviewed-by: asemenyuk ! test/jdk/tools/jpackage/macosx/SigningOptionsTest.java ! test/jdk/tools/jpackage/share/AppContentTest.java Changeset: bade041d Branch: hermetic-java-runtime Author: William Kemper Date: 2024-10-04 21:56:06 +0000 URL: https://git.openjdk.org/leyden/commit/bade041db82a09cf33d4dbcc849f5784b3851f3d 8341554: Shenandoah: Missing heap lock when updating usage for soft ref policy Reviewed-by: kdnilsen, ysr ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp Changeset: 55928948 Branch: hermetic-java-runtime Author: Damon Nguyen Date: 2024-10-04 22:08:37 +0000 URL: https://git.openjdk.org/leyden/commit/559289487d97230760cff6f3349be4dc55c3a2ef 8340417: Open source some MenuBar tests - Set1 Reviewed-by: psadhukhan + test/jdk/java/awt/MenuBar/CellsResize.java + test/jdk/java/awt/MenuBar/MenuBarRemoveMenu/MenuBarRemoveMenuTest.java + test/jdk/java/awt/MenuBar/MenuNPE/MenuNPE.java + test/jdk/java/awt/MenuBar/SetMBarWhenHidden/SetMBarWhenHidden.java Changeset: b42fbf43 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-04 22:35:03 +0000 URL: https://git.openjdk.org/leyden/commit/b42fbf43dfd62ae64973ff0e406b6609cd8e1aa6 8339699: Optimize DataOutputStream writeUTF Reviewed-by: liach, bpb ! src/java.base/share/classes/java/io/DataOutputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufWriterImpl.java + src/java.base/share/classes/jdk/internal/util/ModifiedUtf.java + test/micro/org/openjdk/bench/java/io/DataOutputStreamBench.java Changeset: f8db3a83 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-05 01:21:25 +0000 URL: https://git.openjdk.org/leyden/commit/f8db3a831b61bb585c5494a7a8657e37000892b4 8341510: Optimize StackMapGenerator::processFieldInstructions Reviewed-by: liach ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantDynamicEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/FieldRefEntry.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java Changeset: 1c3e56c3 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-05 15:37:18 +0000 URL: https://git.openjdk.org/leyden/commit/1c3e56c3e45be3626afec0461d4ae8059b0b577f 8341512: Optimize StackMapGenerator::processInvokeInstructions Reviewed-by: liach ! src/java.base/share/classes/java/lang/classfile/attribute/EnclosingMethodAttribute.java ! src/java.base/share/classes/java/lang/classfile/constantpool/InterfaceMethodRefEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/InvokeDynamicEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/MethodRefEntry.java ! src/java.base/share/classes/java/lang/classfile/instruction/InvokeInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackCounter.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java Changeset: df763cd2 Branch: hermetic-java-runtime Author: Martin Doerr Date: 2024-10-05 18:34:31 +0000 URL: https://git.openjdk.org/leyden/commit/df763cd2c27070d96a40c9ec00f921107767edb9 8341558: [AIX] build broken after 8341413 Reviewed-by: kbarrett ! src/hotspot/os/aix/osThread_aix.cpp ! src/hotspot/os/aix/osThread_aix.hpp Changeset: 9a25f822 Branch: hermetic-java-runtime Author: Martin Doerr Date: 2024-10-05 18:42:37 +0000 URL: https://git.openjdk.org/leyden/commit/9a25f822fb2529c1cae3ae909761381789d7b7b1 8339386: Assertion on AIX - original PC must be in the main code section of the compiled method Reviewed-by: rrich, lucy ! src/hotspot/cpu/ppc/frame_ppc.cpp Changeset: 260d4658 Branch: hermetic-java-runtime Author: Attila Szegedi Date: 2024-10-05 21:15:18 +0000 URL: https://git.openjdk.org/leyden/commit/260d4658aefe370d8994574c20057de07fd6f197 8340572: ConcurrentModificationException when sorting ArrayList sublists Reviewed-by: smarks ! src/java.base/share/classes/java/util/ArrayList.java + test/jdk/java/util/ArrayList/SortingModCount.java Changeset: 50426b38 Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-06 12:21:17 +0000 URL: https://git.openjdk.org/leyden/commit/50426b3841240c5fda0df11439e52fa1ae9e7e07 8337713: RISC-V: fix typos in macroAssembler_riscv.cpp Reviewed-by: jwaters, fyang ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/methodHandles_riscv.cpp ! test/jdk/security/infra/java/security/cert/CertPathValidator/certification/CAInterop.java Changeset: 20f36c66 Branch: hermetic-java-runtime Author: David M. Lloyd Committer: Chen Liang Date: 2024-10-06 16:26:45 +0000 URL: https://git.openjdk.org/leyden/commit/20f36c666c30e50c446d09cca4ea52395317a7eb 8339329: ConstantPoolBuilder#constantValueEntry method doc typo and clarifications Reviewed-by: liach ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPoolBuilder.java ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantValueEntry.java Changeset: 6600161a Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-07 07:05:31 +0000 URL: https://git.openjdk.org/leyden/commit/6600161ad46fe5b1e742409481bf225cd87f07c9 8338379: Accesses to class init state should be properly synchronized Reviewed-by: mdoerr, dholmes, coleenp, fyang, amitkumar ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp ! src/hotspot/cpu/arm/templateTable_arm.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp ! src/hotspot/cpu/s390/macroAssembler_s390.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/library_call.cpp Changeset: 92186a27 Branch: hermetic-java-runtime Author: Tobias Hartmann Date: 2024-10-07 07:58:01 +0000 URL: https://git.openjdk.org/leyden/commit/92186a27743732964b5cf3be339fd568da2aa4ba 8341612: [BACKOUT] 8338442: AArch64: Clean up IndOffXX type and let legitimize_address() fix out-of-range operands Reviewed-by: chagedorn ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/aarch64_vector.ad ! src/hotspot/cpu/aarch64/aarch64_vector_ad.m4 ! src/hotspot/cpu/aarch64/ad_encode.m4 ! src/hotspot/cpu/aarch64/gc/x/x_aarch64.ad ! src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad ! test/hotspot/jtreg/compiler/c2/TestUnalignedAccess.java Changeset: 81ebbb24 Branch: hermetic-java-runtime Author: Roberto Casta?eda Lozano Date: 2024-10-07 08:28:18 +0000 URL: https://git.openjdk.org/leyden/commit/81ebbb2463df8b014bb209dc4028668fc78e8327 8341525: G1: use bit clearing to remove tightly-coupled initialization store pre-barriers Reviewed-by: mdoerr, kbarrett, shade, tschatzl ! src/hotspot/share/gc/g1/c2/g1BarrierSetC2.cpp Changeset: 747a3fa3 Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-07 08:39:44 +0000 URL: https://git.openjdk.org/leyden/commit/747a3fa31d9a9512475615c91d2ee9c2d2a94e8e 8341562: RISC-V: Generate comments in -XX:+PrintInterpreter to link to source code Reviewed-by: fyang, luhenry ! src/hotspot/cpu/riscv/methodHandles_riscv.cpp ! src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp ! src/hotspot/cpu/riscv/templateTable_riscv.cpp Changeset: 28977972 Branch: hermetic-java-runtime Author: Hamlin Li Date: 2024-10-07 09:32:40 +0000 URL: https://git.openjdk.org/leyden/commit/28977972a0129892543222eada4dc99f4cd62574 8340880: RISC-V: add t3-t6 alias into assemler_riscv.hpp Reviewed-by: luhenry, fyang ! src/hotspot/cpu/riscv/assembler_riscv.hpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp Changeset: 520060f7 Branch: hermetic-java-runtime Author: Alexey Ivanov Date: 2024-10-07 12:44:42 +0000 URL: https://git.openjdk.org/leyden/commit/520060f79a3cedb8f93e6bbd0e9b2823eaabf79a 8340799: Add border inside instruction frame in PassFailJFrame Reviewed-by: prr, dnguyen ! test/jdk/java/awt/regtesthelpers/PassFailJFrame.java Changeset: 4ba170c4 Branch: hermetic-java-runtime Author: Alexey Ivanov Date: 2024-10-07 12:45:04 +0000 URL: https://git.openjdk.org/leyden/commit/4ba170c403ae85576f84dafd4a157ba0db99873f 8341235: Improve default instruction frame title in PassFailJFrame Reviewed-by: prr ! test/jdk/java/awt/regtesthelpers/PassFailJFrame.java Changeset: a2372c60 Branch: hermetic-java-runtime Author: Ivan Walulya Date: 2024-10-07 13:26:16 +0000 URL: https://git.openjdk.org/leyden/commit/a2372c607c940589f239d4e59b675d3b2e626fd9 8341238: G1: Refactor G1Policy to move collection set selection methods into G1CollectionSet Reviewed-by: tschatzl, mli ! src/hotspot/share/gc/g1/g1CollectionSet.cpp ! src/hotspot/share/gc/g1/g1CollectionSet.hpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1Policy.hpp Changeset: 673ba53a Branch: hermetic-java-runtime Author: Jiangli Zhou Date: 2024-10-07 09:21:41 +0000 URL: https://git.openjdk.org/leyden/commit/673ba53aa157aa99e6165e3d6c4b60558bdcff01 Merge branch 'master' into hermetic-java-runtime ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp ! src/hotspot/share/runtime/globals.hpp From ioi.lam at oracle.com Mon Oct 7 21:39:23 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Mon, 7 Oct 2024 14:39:23 -0700 Subject: Class initialization in JEP 483 In-Reply-To: <5e3c9cd1-7cd9-4e2f-a210-05a0183692dc@oracle.com> References: <5AEC7000-75B1-46F1-AD11-096BFEF8AAC8@oracle.com> <5e3c9cd1-7cd9-4e2f-a210-05a0183692dc@oracle.com> Message-ID: I?ve done a (short) exercise to see what happens if all classes are AOT-inited. I quickly ran into problems because the first classes have intertwined states between the Java and native. For example, a large part of the module graph is implemented natively. So I tried something less drastic -- AOT-init all of java.lang.invoke. This seems doable, as java.lang.invoke carriers few native states. So perhaps we can use this as an intermediate solution before we can solver the larger problem. I have a prototype here: ??? https://github.com/iklam/jdk/pull/1 ??? https://bugs.openjdk.org/browse/JDK-8341600 Essentially, I am trying to preserve the states of the classes used by java.lang.invoke (in terms of the values of their static variables). As a result, when an aot-resolved invokedynamic call site is invoked during the production run, it's "view of the world" is the same as during the assembly phase. Again, this is far from ideal, but I think it's better than my previous solution, which is less predictable as it allows some of the java.lang.invoke classes to be initialized at application start-up. Any thoughts? Thanks - Ioi Implementation ========== To be precise, I am not AOT-initing every class in java.lang.invoke. Rather, I am marking every class that have at least one instance in the object graph of the aot-resolved lambda call sites. Such classes are marked as AOT-inited. The algorithm automatically discovers all classes that need to be AOT-inited: - Scan all constant pools of all classes in the AOT cache. This will discover all the Java objects that represent the resolved invokedynamic call sites. - Find the reachable classes [see John's definition of CLASS REACHABILITY below] from these objects - Mark the reachable classes as AOT-inited. Scan the static fields of these classes. You will find more reachable classes. - Repeat the above step until you can find no more reachable classes. I had to make two change in the core library. See NoAOT in java.lang.Class and java.lang.invoke.MethodType in the above PR. E.g., in Class.java - private static ReflectionFactory reflectionFactory; + private static class NonAOT { +?????? private static ReflectionFactory reflectionFactory; +?? } I did this because reflectionFactory holds onto many states that the AOT cache cannot handle yet (e.g., it transitively refers to Unsafe.theUnsafe), so I just move this static field out of Class. My assumption (not validated yet) is that if ReflectionFactory. is run during app start-up, it won't affect the validity of the AOT-resolved indy call sites. There was only one class that I had to explicitly remove from the manual AOT-inited list -- java/util/concurrent/ConcurrentHashMap. The reason is this field: ??? private static Unsafe U = Unsafe.getUnsafe(); I could probably move this field into an "NoAOT" inner class, but I worry if this might cause any performance issues as the "U" field is very frequently used. Hopefully?ConcurrentHashMap is unrelated with java.lang.invoke so running its during app start-up won't be an issue. Manual Configuration & Validation ===================== The algorithm can't discover all classes whose static fields need to be preserved. For example, DirectMethodHandle::IMPL_NAMES and MethodHandles::IMPL_NAMES are the same object, but the algorithm finds only DirectMethodHandle (as MethodHandles is a "static-only" classes so there are no instances of it). See comments in aotClassInitializer.cpp for more details. This file also has a list of classes (including MethodHandles) that are manually marked as "need to be AOT-inited". There's a limited amount of validation (CDSHeapverifier) that finds potential problems where you missed classes that need to be manually marked. This is also explained in aotClassInitializer.cpp. Caveats ===== CDSHeapverifier is incomplete (a) It only checks the objects that are directly pointed to by static fields. In the DirectMethodHandle::IMPL_NAMES example, if MethodHandles were coded like this, then it would not be discovered by CDSHeapverifier - static final MemberName.Factory IMPL_NAMES = MemberName.getFactory(); + static final Object[] IMPL_NAMES = new Object[] { MemberName.getFactory() }; (b) CDSHeapverifier tracks only object fields. It doesn't check for dependencies that may be exposed through non-objects fileds (end) On 10/3/24 10:29 PM, ioi.lam at oracle.com wrote: > Hi John, > > Thanks for your comments. I have a few responses in-line. > > Also, to recap what we discussed in today's Leyden meeting, I am going > to see if it's possible to make all relevant classes AOT-initialized, > and thus avoid potential issues of startup-initialization. > > More below ... > > On 10/3/24 2:50 AM, John Rose wrote: >> On 2 Oct 2024, at 22:13, ioi.lam at oracle.com wrote: >> >>> TL;DR >>> >>> I want to discuss how Java classes are initialized as a part of the >>> implementation of the up-coming JEP 483 [1]. >>> >>> This is by no means a clean design. It's a compromise due to the >>> complexity of the Java classes, such as java.lang.invoke.*, that JEP >>> 483 wants to optimize. >>> >>> In the future, we can make thing much better by, perhaps, >>> refactoring the Java classes. >>> >>> Here, I want to get a consensus if the current implementation in JEP >>> 483 is "good enough" to be integrated into the mainline. >> This is a useful analysis.? Related to it, I have various ideas about >> ?shaping? the JDK classes to cooperate better with the AOT cache, and >> also adding new checks to the JVM to help detect classes which are >> ?not in good shape?.?? For now I hope we can determine correctness by >> inspection, and quickly follow up with work on (simple!) tools for >> validating the necessary assumptions.? (Your email goes a long way >> towards clarifying what those necessary assumptions are.)? That way >> maintainers won?t break the subtle init-order dependencies between >> java.base classes, with routine changes. >> >>> *(A) Background* >>> >>> JEP 483 includes the AOT-linking of invokedynamic call sites. As a >>> result, it becomes necessary for the AOT cache to store objects such >>> as MethodTypes, as well as generated LambdaForm classes. >> I have a ?stretch goal? in mind here:? I think if we sort out the >> initialization of lambdas, MHs, MTs, LFs, and the rest of the indy >> infrastructure, we may understand the problem well enough to allow >> very early initialization of those system components.? (And also, how >> to use the AOT cache to optimize their startup.)? That in turn will >> enable us to use indy (and condy) with few or no restrictions on >> their usage.? Recent JDK changes to convert lambdas to inner classes >> (or similar indy-avoidance tactics) will not be needed if indy is >> robustly initialized at an early point.? But this requires mastering >> the bootstrap logic.? Hence the stretch goal, since we are talking >> here about getting the bootstrap logic (specifically java.base >> init-order) under control. >> >>> A basic requirement for Java objects is -- >>> when an object of type X becomes accessible by Java bytecodes, we >>> must have at least started the initialization of X [2]. We want to >>> preserve this behavior for cached objects, so we won't run into >>> incompatibilities when using cached objects. >> This is an interesting principle.? It is normally true apart from the >> AOT cache, but it puts an extra burden on access to the AOT heap.? >> Specifically, you can?t open up any (sub-)graph in the AOT heap for >> access until all classes mentioned in that heap (sub-)graph are at >> least starting their initialization. >> >> There?s a little more, in fact:? If some class C is starting to init, >> but has not finished its init, then the access must be initially >> confined to the thread that is running C::.? This is the >> normal JVM rule (other threads block until C:: returns) and >> must be emulated by the AOT cache as well. >> >> (Background:? The AOT cache has a heap segment defining one or more >> graphs of objects.? An object graph has one or more roots. Such a >> graph is an ?asset? in the AOT cache, that can be ?adopted? into the >> running JVM as an interconnected set of Java objects.? Multiple AOT >> graphs might appear if we have separately defined decisions to adopt >> them.? Or, we might just say ?take the whole graph or leave it?.? For >> future work, it is somewhat clear we wish to allow Leyden-aware >> applications to layer AOT object graphs of their own on top of the >> java.base object graph or graphs.? But we are not there yet; all of >> this is happening inside java.base.? We must learn to walk before we >> can think about running.) >> >> Definition of ?CLASS REACHABILITY?:? If an object X is in the AOT >> heap, then a class C is said to be ?reachable from X? if C is the >> class of X, or is a superclass or an implemented interface of X?s >> class.? In addition, we say that C is ?reachable from X? (in a >> recursive sense) if C is reachable from another object Y which is >> referenced by a non-static field of X, or another object Y which is >> referenced by a static field of a class S (already) reachable from >> X.? This definition is simply a transitive closure of an >> appropriately defined graph, where instances X point to their classes >> C and their non-static field referents, and classes C point to their >> super-types D and their static field referents Y. >> >> With that definition under our belt, we can say that when an object >> X, originally in the AOT heap, becomes reachable to java.base code >> (in the normal GC sense, during JDK startup), then every class >> reachable from X must have an appropriate initialization state.? The >> definition of ?appropriate? here is tricky. >> >> Note that we can calculate this class-reachability statically. So, >> when it helps, we can make lists of classes C reachable from some AOT >> heap root X.? Or we can take the union of all such lists, reachable >> from the whole AOT heap. >> >> So what is the most useful definition of an ?appropriate >> initialization state? of classes which become reachable as a result >> of adopting AOT heap objects? >> For maximum compatibility with existing Java practice, we would say >> that the initialization state must be either DONE or else it is >> STARTED, and the access to the AOT heap object is in the same thread >> that is running the clinit method. >> >> I suggest that we might want to simplify this rule.? It would be >> nicer (for us, not for JDK programmers) if an AOT heap object X was >> adopted only after all reachable classes C (reachable from X) were in >> the DONE state.? Maybe with one exception:? If some reachable class C >> (from X) is in the STARTED state, then C is that unique class whose >> method is the youngest method on the current >> thread.? This exception allows the method for MethodType to? >> adopt some AOT asset in the AOT heap which contains a zillion >> MethodType objects, but nothing else that is not fully initialized. >> >> There are immediate objections to such a simplification, but I think >> they can be overcome, and I suspect the end state will be better for >> all of us.? The MethodType class recursively initializes the >> MethodHandle class, so that it can build an invoker cache (via some >> intermediate non-public class).? So you need MH.class initialized to >> make MHs for MT, and that happens during MT?s clinit, and there is a >> dependency loop, aka ?chicken and egg? problem.? If we want to >> experiment with simplified initialization conditions, we will have to >> break such loops.? It is possible, and may even be profitable for >> us.? In the end, simpler initialization sequences will be easier to >> optimize and cache. >> >>> So how do we meet this requirement? >>> >>> >>> *(B) Existing Solution in JDK Mainline* >>> >>> In the current JDK mainline, cached objects are "loaded" into a Java >>> program via explicit CDS.initializeFromArchive() calls. See [3] for >>> an example in java/lang/Integer$IntegerCache >>> >>> class IntegerCache { >>> ?? ... >>> ?? // at this point, IntegerCache::archivedCache is null >>> ?? CDS.initializeFromArchive(IntegerCache.class); >>> ?? // at this point, IntegerCache::archivedCache is loaded from the >>> AOT cache >> The field IntegerCache.archivedCache (N.B. the :: syntax is only for >> methods, not fields) is a root which points into the AOT heap graph.? >> Very cool!? This does not violate the Java language rules, as long as >> the strange object graph is indistinguishable from an object graph >> which might have been created according to the usual rules of >> computation, from the context of the clinit method of the relevant >> class (IntegerCache).? In fact, when booting an exploded build there >> is no AOT cache at all, and the necessary integer cache is built ?the >> hard way? and stored into a variable that CDS knows about.? This >> handshake (by which the cache built the hard way is converted into an >> AOT asset, and then adopted into a production run) will get more and >> more regular over time, we think. >> >>> As part of the CDS.initializeFromArchive() call, the classes of all >>> objects that are reachable from archivedCache are initialized. >> (I am assuming that ?classes of all objects reachable? is closely >> aligned with my definition above, of class reachability!) > > Yes > >> >> Ioi:? Please explain in a bit more detail why this is true. What part >> of the JVM (or JDK) grabs all the reachable classes and forcibly >> initializes them?? Or, more subtly, why are we so very lucky that, by >> the time we can grab a pointer to that archived heap subgraph, >> somehow magically the classes are already initialized? >> >> (And are they really in the DONE init state, or might they be in the >> STARTED state in the current thread?) > > In the AOT cache, there's a data structure that remembers the list of > classes that are printed by the "IntegerCache ( 1) => > java.lang.Integer" logs below. When CDS.initializeFromArchive() is > called to fetch IntegerCache::archivedCache, it will finish > initializing that list of classes before returning control back to the > Java code. > > >>> You can see this list classes by: >>> >>> $ java -Xshare:dump -Xlog:cds+heap | grep IntegerCache >>> [...] >>> [1.063s][info][cds,heap] Archived object klass >>> java.lang.Integer$IntegerCache ( 0) => [Ljava.lang.Integer; >>> [1.063s][info][cds,heap] Archived object klass >>> java.lang.Integer$IntegerCache ( 1) => java.lang.Integer >>> >>> All classes listed above will be initialized before archivedCache >>> becomes non-null. >> This is the crucial property to engineer into our system! >> >>> >>> *(C) New Challenges with java.lang.invoke* >>> >>> In JEP 483, in order to support AOT-linking of invokedynamic, we run >>> into a few issues. >>> >>> #1. We can no longer use the CDS.initializeFromArchive() design due >>> to a circular dependency between MethodType and DirectMethodHandle >>> [4] [5]. >> Maybe we can find a solution here which embraces the circularity, by >> making the whole bundle of mutually-recursive classes be >> AOT-initialized.? So it doesn?t matter what order they are >> initialized, for the very special reason that the initialization >> takes place ?as if instantaneously?. >> >> Maybe in this case, or in future similar cases, we will need to break >> the circularity.? If that is the case, then something like this will >> happen:? First MethodType gets fully initialized, and during that >> process NO INSTANTIATION of MethodHandles is performed.? (How >> draconian!)? Later, MethodHandle is fully initialized and all its >> code enjoys the full initialization of MethodType.? For the class >> MethodHandle, there might be hundreds or thousands of AOT heap >> objects that are method handles, containing pointers to AOT method >> type objects. >> >> The present problem is that a MethodType has a cached struct (or >> array) of invokers, and each invoker is a MH, and each MH has a MT.? >> That is a circularity.? Can it be broken?? Yes, by changes to JDK >> code.? I suspect this is in our future, although at present I hope we >> can get away with the trick (mentioned above) of simultaneous >> initialization (of MT and MH at the same time, also entangled classes >> like DMH). >> >>> #2. Some cached objects in java.lang.invoke may point to static >>> fields whose identity is significant. A simplified example looks >>> like this: >>> >>> ???? class A { >>> ????????? static final Object x = new Object(); >>> ???? } >>> ???? class B { >>> ?????????? Object y = A.x; >>> ?????????? boolean isValid() { return y == A.x; } >>> ???? } >>> >>> ?? ? B cachedB = new B(); ??? /* executed during assembly phase */ >>> >>> If we store?cachedB into the AOT cache, we will recursively store >>> the cachedB.y field, which points to the version of A.x during the >>> assembly phase. During the production run, if we allow A. to >>> be executed again, cacheB.isValid() will return false because >>> cachedB.y is now a different instance than A.x. >>> >>> In fact, #2 is not a new problem. There's already a debugging class >>> - CDSHeapVerifier - that checks for potential errors [6] >> We need rules for object identities as well.? I see two of them.? >> First, if an object X is known to be private, and all the private >> code that works on it does not inspect its identity (via X==Y or >> System::identityHashCode(X)) we can certify that there is no danger.? >> Second, if X is public or escapes in some way to ?random? user code >> (that might do X==Y etc.) then we must ensure that, IF the AOT heap >> graph including X is adopted, THEN all environmental queries have >> been respected, and there will never be a reason to un-adopt X. >> >>> *(D) Solution in JEP 483* >>> >>> In JEP 483, the solution is "AOT-initialized classes". For the above >>> example, we store class A in the AOT cache in the "initialized" >>> state. During the production run, A. is no longer executed, >>> and A.x maintains its value as in the assembly phase. >> >> Definition:? An ?AOT initialized class? is one whose Class object >> exists in the AOT heap graph, and that object is populated with the >> initial values of all static fields of that class. >> >> Definition:? A post-AOT initialized class is any class that is not >> AOT-initialized (in some Leyden AOT cache configuration). Post-AOT >> initialized classes can be further split into ?startup initialized? >> classes (whose clinit methods the JVM runs directly in the premain >> phase) and ?JIT initialized? classes (whose clinit methods are run at >> the last possible moment). >> >> Definition:? A ?premain initialized? class is either AOT initialized, >> or else startup initialized, but not JIT initialized.? Recall that >> ?premain? is the bootstrapping phase before the application main is >> invoked.? The init actions that happen during premain might be AOT >> actions (which seem to happen immediately) or startup actions (slower >> but hopefully still very fast). >> >> When we can do this AOT initialization optimization for some class C, >> it is very powerful.? It allows us to include AOT graph objects at >> will, from which C is reachable, and not worry about the timing of >> their adoption.? It is as if all such C were initialized very, very >> quickly, at JVM startup, before any other action happens. >> >>> The process of finding all the "AOT-initialized classes" needed by >>> JEP 483: >>> >>> - Perform a training run with an application that uses many lambda >>> expressions >>> >>> - Create an AOT cache using data from this training run. Look for >>> warnings produced by CDSHeapVerifier: >>> >>> Archive heap points to a static field that may be reinitialized at >>> runtime: >> I have a problem with this formulation:? We never set out to >> ?reinitialize? any class, so ?may be reinitialized? is a >> counter-factual statement.? We only set out to AOT-initialize classes >> if the user?s observation of them sees the classes to be initialized >> exactly once, but very, very quickly. >> >> I would prefer to rephrase the error message (and underlying concept) >> as: >> >> ?Archive heap points to a static field that requires post-AOT >> initialization? >> >> (or ?startup initialization? or some such).? Situations which tempt >> us to think of reinitialization are situations where we are creating >> bootstrapping bugs. >> >>> Field: java/lang/invoke/SimpleMethodHandle::BMH_SPECIES >>> Value: java.lang.invoke.BoundMethodHandle$SpeciesData >>> {0x000000060e8962f0} - klass: >>> 'java/lang/invoke/BoundMethodHandle$SpeciesData' - flags: >>> [...] >>> --- trace begin --- >>> [ 0] {0x000000060f410170} [Ljava.lang.Object; @[238] >>> [ 1] {0x000000060f430520} >>> java.lang.invoke.BoundMethodHandle$Species_L::type (offset = 16) >>> [ 2] {0x000000060e8ab130} java.lang.invoke.MethodType::form (offset >>> = 20) >>> [ 3] {0x000000060e883b70} >>> java.lang.invoke.MethodTypeForm::lambdaForms (offset = 28) >>> [ 4] {0x000000060e883b90} [Ljava.lang.Object; @[7] >>> [ 5] {0x000000060e89a428} java.lang.invoke.LambdaForm::names (offset >>> = 32) >>> [ 6] {0x000000060e89a3b0} [Ljava.lang.invoke.LambdaForm$Name; @[0] >>> [ 7] {0x000000060e897fb8} >>> java.lang.invoke.LambdaForm$Name::constraint (offset = 24) >>> [ 8] {0x000000060e896ab8} >>> java.lang.invoke.BoundMethodHandle$SpeciesData::this$0 (offset = 40) >>> [ 9] {0x000000060e895aa0} >>> java.lang.invoke.BoundMethodHandle$Specializer::topSpecies (offset = >>> 44) >>> [10] {0x000000060e8962f0} >>> java.lang.invoke.BoundMethodHandle$SpeciesData >>> --- trace end --- >>> >>> In this example, we see a cached object? (0x000000060e895aa0) points >>> to {0x000000060e8962f0}, which is in the static field >>> SimpleMethodHandle::BMH_SPECIES. >>> >>> To get rid of this warning, we add SimpleMethodHandle to the list in >>> AOTClassInitializer::can_archive_initialized_mirror [7] >>> >>> - Create the AOT cache again. You may see new warnings because the >>> mirror of SimpleMethodHandle may point to the static fields of other >>> clases. >>> >>> - Keep doing this until you can no longer see these warnings >> This is a good process.? I think we want to build in enough bootstrap >> checking logic into the JVM so that a maintainer who breaks this >> discipline will hear about it quickly, without having to enable >> warnings and then sift through them. >> >> I am beginning to think that we should experiment with annotations on >> java.base classes that express our intention to AOT-initialize them, >> with VM checks (at least in debug builds) that ensure this is safe to >> do. >> >>> *(E) List of aot-initialized classes* >>> >>> For a traning run like "javac HelloWorld.java", we can produce an >>> AOT cache that contains the following 22 aot-initialized classes >>> >>> java.lang.constant.ConstantDescs >>> java.lang.constant.DynamicConstantDesc >>> java.lang.Enum >>> java.lang.invoke.BoundMethodHandle >>> java.lang.invoke.BoundMethodHandle$Specializer >>> java.lang.invoke.BoundMethodHandle$Species_L >>> java.lang.invoke.BoundMethodHandle$Species_LL >>> java.lang.invoke.ClassSpecializer >>> java.lang.invoke.ClassSpecializer$1 >>> java.lang.invoke.ClassSpecializer$Factory >>> java.lang.invoke.ClassSpecializer$SpeciesData >>> java.lang.invoke.DelegatingMethodHandle >>> java.lang.invoke.DirectMethodHandle >>> java.lang.invoke.DirectMethodHandle$Holder >>> java.lang.invoke.LambdaForm >>> java.lang.invoke.LambdaForm$NamedFunction >>> java.lang.invoke.MethodHandle >>> java.lang.invoke.MethodType$AOTHolder >>> java.lang.invoke.SimpleMethodHandle >>> java.lang.Object >>> jdk.internal.constant.PrimitiveClassDescImpl >>> jdk.internal.constant.ReferenceClassDescImpl >>> >>> >>> Plus the following 7 enum types that have customized code >>> >>> java.lang.constant.DirectMethodHandleDesc$Kind >>> java.lang.invoke.LambdaForm$BasicType >>> java.lang.invoke.VarHandle$AccessMode >>> java.lang.invoke.VarHandle$AccessType >>> java.lang.reflect.AccessFlag$Location >>> java.util.stream.StreamOpFlag >>> sun.invoke.util.Wrapper >>> >>> >>> *(F) List of Init-at-JVM-start classes* >>> >>> During the production run, these classes are loaded into the VM in >>> the "initialized" state. As a result, the static fields of these >>> classes become reachable. We must initialize the classes of all >>> objects that are reachable from these static fields. There are 24 >>> such classes. >> I am not following here.? If the class is in an initialized state, is >> there some process that happens later which runs the clinit again?? >> (Is this the dreaded ?reinitialization??)? If we allow this, it is >> technical debt, and we have to have a plan to eliminate it, lest it >> eventually become visible.? (We can and must perform some kinds of >> non-standard actions to boot up the first few classes, but they need >> to be minimized.) > > > For an example like this: > > /* @aot-initialized */ class A { > ??? static final B b = new B(); > } > > A is AOT-initialized, but B is not. When class A is loaded into the > JVM, A.b becomes reachable from Java code. Therefore, we must > initialize B, which is reachable from A's mirror. > > We are not "re-initializing B" in the sense that B's mirror already > contains some non-default values before B. is executed. > Instead, when B. is executed, B's static fields are all zeros > and nulls. >> >>> java.lang.ArithmeticException >>> java.lang.ArrayIndexOutOfBoundsException >>> java.lang.ArrayStoreException >>> java.lang.Class >>> java.lang.ClassCastException >>> java.lang.Double >>> java.lang.Float >>> java.lang.Integer >>> java.lang.InternalError >>> java.lang.NullPointerException >>> java.lang.invoke.BoundMethodHandle$Specializer$Factory >>> java.lang.invoke.BoundMethodHandle$SpeciesData >>> java.lang.invoke.DirectMethodHandle$Accessor >>> java.lang.invoke.DirectMethodHandle$Constructor >>> java.lang.invoke.Invokers >>> java.lang.invoke.LambdaForm$Name >>> java.lang.invoke.LambdaFormEditor$Transform >>> java.lang.invoke.MemberName >>> java.lang.invoke.MemberName$Factory >>> java.lang.invoke.MethodHandleImpl$IntrinsicMethodHandle >>> java.lang.invoke.MethodType >>> java.lang.invoke.MethodTypeForm >>> java.util.EnumMap >>> java.util.concurrent.ConcurrentHashMap >>> >>> (E.g., MethodType$AOTHolder contains a HashMap that stores many >>> MethodTypes, so we must initialize the MethodType class. Note that >>> HashMap is not in the list because it doesn't have a . For >>> clarify, I have omitted all classes that can be trivially initialized). >> The only thing that might stop us from AOT-initializing a class with >> no clinit would be a superclass (or interface) that has a clinit >> which is not AOT initializable. >> >> Connecting back to the reachability concept:? As soon as some X in >> the AOT heap become reachable (in the normal GC sense), then all >> classes C reachable from X must be initialized (or perhaps ?started? >> in the current thread).? It would be best, of course, if those >> classes were all AOT initialized.? If not, we need a story to ensure >> they are startup initialized (if not AOT initialized). >> >> I think this means that if some class C is AOT initialized, then its >> super S must also be AOT initialized, or else any access to an >> instance X which can reach C must be organized so that the startup >> initialization of S gets run first. >> >> I think our current state of the art is that we run such startup >> initializers ASAP, and test that there are no bugs.? It would be good >> to have more accurate checks as well, if we can define them suitably. >> >>> (G) Testing and Validation >>> >>> The output "Archive heap points to a static field that may be >>> reinitialized" is checked by more than 300 CDS test cases [8]. This >>> ensures that we have a correct list of AOT-initialized classes. This >>> will also catch any future changes in the Java classes in >>> java.lang.invoke that may be incompatible with JEP 483. >>> >>> Also, since the (E) and (F) lists are small (about 50 classes), it's >>> possible for a human to examine those classes to find potential >>> problems >>> >>> - For example, an AOT-initialized class shouldn't be dependent on >>> the environment, such as storing the current time of day, etc. >> I agree that human examination is sufficient to start with, even to >> detect environmental dependencies.? This is what we should ship >> with.? But we should build better detection tools soon, so that >> routine enhancements don?t run afoul of those checks (the dreaded >> ?reinitialization?). >> >>> *(H) Extensibility, or lack thereof* >>> >>> This design limits future Leyden optimization as any significant >>> increase of the list of classes in (E) and (F) will make human >>> validation much more difficult. We should consider using automated >>> validation tools, as well as refactoring the Java classes to make it >>> easier to decide what classes can be AOT-initialized. >> Yes!? Preach it! >> >> ? John >> >>> >>> ======= >>> >>> [1] https://openjdk.org/jeps/483 >>> >>> [2] Due to circularity, it may be possible to created an >>> instance of X before X:: finishes. >>> >>> [3] >>> https://github.com/openjdk/jdk/blob/602408e4f3848b30299ea94264e88ead5361a310/src/java.base/share/classes/java/lang/Integer.java#L957-L969 >>> >>> [4] >>> https://mail.openjdk.org/pipermail/leyden-dev/2024-August/000911.html >>> >>> [5] >>> https://github.com/openjdk/leyden/blob/3a84df9d9860e743684e335282e3910b14cc982b/src/hotspot/share/cds/heapShared.cpp#L1415-L1466 >>> >>> [6] >>> https://github.com/openjdk/jdk/blob/master/src/hotspot/share/cds/cdsHeapVerifier.cpp >>> >>> [7] >>> https://github.com/iklam/jdk/blob/49eb47b6a9889625dc8bac6922cec6a5625a26b2/src/hotspot/share/cds/aotClassInitializer.cpp#L178-L192 >>> >>> [8] >>> https://github.com/iklam/jdk/blob/49eb47b6a9889625dc8bac6922cec6a5625a26b2/test/lib/jdk/test/lib/cds/CDSTestUtils.java#L289 From john.r.rose at oracle.com Mon Oct 7 22:29:12 2024 From: john.r.rose at oracle.com (John Rose) Date: Mon, 07 Oct 2024 15:29:12 -0700 Subject: Spring Boot BackgroundPreinitializer In-Reply-To: References: <21b68ca3-46f7-44cc-b0f0-c2fd4e5b5b07@oracle.com> Message-ID: <70586755-E2D3-4671-AE24-D96C3454E117@oracle.com> On 4 Oct 2024, at 3:29, Sebastien Deleuze wrote: > I like the idea of a property, but it would be really nice if it could be > set automatically by the AOT support without requiring an additional action > from the users because they typically don't add such property when > documented and we just want to detect the actual AOT caching mode in a > reliable and consistent way. > > What about having an aot.mode property reflecting the actual mode: > - "record" when "-XX:AOTMode=record" is specified or a potential future > "-XX:AOTMode=autocreate" (replacement of "-XX:CacheDataStore=app.cds") is > specified and no cache files exist > - "on" when "-XX:AOTMode=on" is specified or a potential future > "-XX:AOTMode=autocreate" (replacement of "-XX:CacheDataStore=app.cds") is > specified and cache files exist > - "off" when "-XX:AOTMode=off" is specified That makes sense, partly. There is a risk with code which runs only during training, or only during production; on the one hand you risk creating resources which are useless during production (since you trained non-production code), and on the other you don?t have resources that are probably useful (since you didn?t train production code). I think one way to reduce those risks is to use a real Java API instead of string-based property. My thought here is that it will always be useful to survey who calls that API. You can?t do this when the API is hidden under the generic property access API. For example, you can?t put a breakpoint on a query to a particular property, and so on. Also, you can have javadoc on an API, not on a property. The principle underlying the ?unreasonable effectiveness? of training runs is that a training run is a faithful predictor of production behavior. Taking different paths in training and production is an experts-only move. I know you know this, but we will have to make this contract very, very clear to everyone. > I can see multiple use cases for that with Spring (reporting, disabling > BackgroundPreinitializer, refining Spring behavior during the training run, > etc.) that will likely be useful for others as well. Yes. Proper use of the flag might let you cause training runs to be MORE similar to production runs, as long as you are successful in manually forcing the execution of truly representative code paths in your special training logic. There are many ways to go wrong also; eventually we want tools for auditing the success of an AOT cache. For example, it should be possible to detect when assets in an AOT cache have gone unused in a production run. When that happens, something is probably wrong, especially if there are many assets (or they are by some measure ?big? in the AOT cache). A report of such assets would make a good feedback into the engineering cycle, and might even be useful to an automatic policy, which would note events during a (future) training run that match unused assets in a (past) production run; the policy would refrain from taking those events into account when choosing assets for the AOT cache. There should be a tracking RFE filed in bugs.ojo for the above idea, so here it is: https://bugs.openjdk.org/browse/JDK-8341676 (?There?s a lot of work here, and it will be an enjoyable adventure building out all the pieces and parts and tools and tricks; it will take years?) > Side note: we really hope that a "-XX:CacheDataStore=app.cds" successor > will be introduced because it really helps to not have to change the java > command line between training and deployment runs for some deployment > scenarios. We should have a tracking RFE for this; I think Ioi might have one. ? John From ioi.lam at oracle.com Tue Oct 8 04:45:25 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Mon, 7 Oct 2024 21:45:25 -0700 Subject: Spring Boot BackgroundPreinitializer In-Reply-To: <70586755-E2D3-4671-AE24-D96C3454E117@oracle.com> References: <21b68ca3-46f7-44cc-b0f0-c2fd4e5b5b07@oracle.com> <70586755-E2D3-4671-AE24-D96C3454E117@oracle.com> Message-ID: <1b7646ab-fd21-4110-9cd1-3adaffa3a8d3@oracle.com> On 10/7/24 3:29 PM, John Rose wrote: > On 4 Oct 2024, at 3:29, Sebastien Deleuze wrote: > > >> Side note: we really hope that a "-XX:CacheDataStore=app.cds" successor >> will be introduced because it really helps to not have to change the java >> command line between training and deployment runs for some deployment >> scenarios. > We should have a tracking RFE for this; I think Ioi > might have one. > > ? John I updated https://bugs.openjdk.org/browse/JDK-8338476 to include two variants of creating Leyden-enabled AOT caches: [1] Identical replacement of the -XX:CacheDataStore flag (aka "one step workflow", ??? where the AOT cache is created with a single "java" command). ???? java -XX:CacheDataStore=app.cds -cp app.jar App => ???? java -XX:AOTMode=autocreate -XX:AOTCache=app.aot -cp app.jar App ??? - If app.aot exists, it will be used to run the application ??? - Otherwise, app.aot will be created when the application exits [2] "Two step work flow" (as proposed in JEP 483), where two "java" commands are ??? executed: one to perform the training run, the other to perform the assembly phase. ??? java -XX:AOTMode=record -XX:AOTConfiguration=foo.aotconfig -cp app.jar App ??? java -XX:AOTMode=create -XX:AOTConfiguration=foo.aotconfig -XX:AOTCache=foo.aot -cp app.jar From sebastien.deleuze at broadcom.com Tue Oct 8 08:28:17 2024 From: sebastien.deleuze at broadcom.com (Sebastien Deleuze) Date: Tue, 8 Oct 2024 10:28:17 +0200 Subject: Spring Boot BackgroundPreinitializer In-Reply-To: <1b7646ab-fd21-4110-9cd1-3adaffa3a8d3@oracle.com> References: <21b68ca3-46f7-44cc-b0f0-c2fd4e5b5b07@oracle.com> <70586755-E2D3-4671-AE24-D96C3454E117@oracle.com> <1b7646ab-fd21-4110-9cd1-3adaffa3a8d3@oracle.com> Message-ID: Ioi, thanks for updating https://bugs.openjdk.org/browse/JDK-8338476, looks great. John, thanks for your feedback, I indeed see how it could go wrong if you introduce some properties or APIs that allow to differentiate training from deployment runs without any control. If I take a step back, our main need is to get a boolean status that indicated if an AOT cache is being recorded or used, without needing to differentiate training from deployment runs (the use case here is to disable Spring Boot BackgroundPreinitializer when AOT cache is enabled regardless of the kind of run). A potential future additional need would be to provide the capability to run additional code only during the training run, maybe via a lambda parameter (the use case here is to preload some additional classes or to perform additional processing to warm up the JVM when the -Dspring.context.exit=onRefresh flag documented in https://docs.spring.io/spring-framework/reference/integration/cds.html is used). But I am less confident on that use case that probably deserves more concrete use cases and experimentation. So I think for now our ask is only about this undifferentiated boolean flag (property or API) that would be true if "-XX:AOTMode=record/autocreate/on/auto" is set. On Tue, Oct 8, 2024 at 6:46?AM wrote: > > On 10/7/24 3:29 PM, John Rose wrote: > > On 4 Oct 2024, at 3:29, Sebastien Deleuze wrote: > > > > > >> Side note: we really hope that a "-XX:CacheDataStore=app.cds" successor > >> will be introduced because it really helps to not have to change the > java > >> command line between training and deployment runs for some deployment > >> scenarios. > > We should have a tracking RFE for this; I think Ioi > > might have one. > > > > ? John > > > I updated https://bugs.openjdk.org/browse/JDK-8338476 to include two > variants > of creating Leyden-enabled AOT caches: > > [1] Identical replacement of the -XX:CacheDataStore flag (aka "one step > workflow", > where the AOT cache is created with a single "java" command). > > java -XX:CacheDataStore=app.cds -cp app.jar App > => > java -XX:AOTMode=autocreate -XX:AOTCache=app.aot -cp app.jar App > > - If app.aot exists, it will be used to run the application > - Otherwise, app.aot will be created when the application exits > > [2] "Two step work flow" (as proposed in JEP 483), where two "java" > commands are > executed: one to perform the training run, the other to perform the > assembly phase. > > java -XX:AOTMode=record -XX:AOTConfiguration=foo.aotconfig -cp > app.jar App > java -XX:AOTMode=create -XX:AOTConfiguration=foo.aotconfig > -XX:AOTCache=foo.aot -cp app.jar > > -- This electronic communication and the information and any files transmitted with it, or attached to it, are confidential and are intended solely for the use of the individual or entity to whom it is addressed and may contain information that is confidential, legally privileged, protected by privacy laws, or otherwise restricted from disclosure to anyone else. If you are not the intended recipient or the person responsible for delivering the e-mail to the intended recipient, you are hereby notified that any use, copying, distributing, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited. If you received this e-mail in error, please return the e-mail to the sender, delete it from your computer, and destroy any printed copy of it. -------------- next part -------------- An HTML attachment was scrubbed... URL: From adinn at redhat.com Tue Oct 8 16:38:28 2024 From: adinn at redhat.com (Andrew Dinn) Date: Tue, 8 Oct 2024 17:38:28 +0100 Subject: Missing email for comments on 8293337? Message-ID: I received an initial RFR email from Ioi notifying PR 21143 with tile RFR: 8293336 - AOT-linking of invokedynamic for lambda expression and string concat However, it was sent to leyden-dev, not hotspot-dev or core-libs-dev as would be expected given the labels attached to the PR. I have not received any update emails to leyden-dev, hotspot-dev or core-libs-dev for the PR comments I added today. I also failed to receive any emails for the comments made by Chen Liang, Aleksey Shipilev and Andrey Turbanoff over the last week or two. Has anyone else received comment emails? Is there a problem with the Skara bots? regards, Andrew Dinn ----------- From ioi.lam at oracle.com Tue Oct 8 20:44:26 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Tue, 8 Oct 2024 13:44:26 -0700 Subject: Missing email for comments on 8293337? In-Reply-To: References: Message-ID: <72474c05-bdc2-48b0-80b2-681d625e95d5@oracle.com> On 10/8/24 9:38 AM, Andrew Dinn wrote: > I received an initial RFR email from Ioi notifying PR 21143 with tile > > ? RFR: 8293336 - AOT-linking of invokedynamic for lambda expression > and string concat > > However, it was sent to leyden-dev, I sent that e-mail manually to leyden-dev. > not hotspot-dev or core-libs-dev as would be expected given the labels > attached to the PR. > That's wried. I checked the mail.openjdk.org archive and couldn't find any e-mails sent by the bot to those two mailing lists. I'll ask our infra team to diagnose the problem. Thanks - Ioi > I have not received any update emails to leyden-dev, hotspot-dev or > core-libs-dev for the PR comments I added today. I also failed to > receive any emails for the comments made by Chen Liang, Aleksey > Shipilev and Andrey Turbanoff over the last week or two. > > Has anyone else received comment emails? Is there a problem with the > Skara bots? > > regards, > > > Andrew Dinn > ----------- > From ioi.lam at oracle.com Tue Oct 8 22:54:11 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Tue, 8 Oct 2024 15:54:11 -0700 Subject: Missing email for comments on 8293337? In-Reply-To: <72474c05-bdc2-48b0-80b2-681d625e95d5@oracle.com> References: <72474c05-bdc2-48b0-80b2-681d625e95d5@oracle.com> Message-ID: On 10/8/24 1:44 PM, ioi.lam at oracle.com wrote: > On 10/8/24 9:38 AM, Andrew Dinn wrote: > >> I received an initial RFR email from Ioi notifying PR 21143 with tile >> >> ? RFR: 8293336 - AOT-linking of invokedynamic for lambda expression >> and string concat >> >> However, it was sent to leyden-dev, > > > I sent that e-mail manually to leyden-dev. > > >> not hotspot-dev or core-libs-dev as would be expected given the >> labels attached to the PR. >> > That's wried. I checked the mail.openjdk.org archive and couldn't find > any e-mails sent by the bot to those two mailing lists. I'll ask our > infra team to diagnose the problem. > > It turned out I had some whitespace errors which prevented the PR to get the RFR label, which is required before the bot sends any e-mails to the mailing list. I've fixed that and the bots should start sending e-mails to hotspot-dev and core-libs-dev. > Thanks > > - Ioi > > >> I have not received any update emails to leyden-dev, hotspot-dev or >> core-libs-dev for the PR comments I added today. I also failed to >> receive any emails for the comments made by Chen Liang, Aleksey >> Shipilev and Andrey Turbanoff over the last week or two. >> >> Has anyone else received comment emails? Is there a problem with the >> Skara bots? >> >> regards, >> >> >> Andrew Dinn >> ----------- >> From duke at openjdk.org Wed Oct 9 05:59:50 2024 From: duke at openjdk.org (duke) Date: Wed, 9 Oct 2024 05:59:50 GMT Subject: git: openjdk/leyden: premain: 101 new changesets Message-ID: Changeset: 66f16398 Branch: premain Author: Alisen Chung Date: 2024-09-26 01:16:13 +0000 URL: https://git.openjdk.org/leyden/commit/66f1639846645f1d3b4096ef6d62f2b301cf7ed2 8339271: giflib attribution correction Reviewed-by: dnguyen, prr ! src/java.desktop/share/legal/giflib.md Changeset: 47c10694 Branch: premain Author: Tobias Hartmann Date: 2024-09-26 06:03:29 +0000 URL: https://git.openjdk.org/leyden/commit/47c10694c66bc131c8a5e1572340415b8daaba08 8340812: LambdaForm customization via MethodHandle::updateForm is not thread safe Reviewed-by: liach, shade, jvernee ! src/java.base/share/classes/java/lang/invoke/MethodHandle.java + test/jdk/java/lang/invoke/TestLambdaFormCustomization.java Changeset: 8c8f0d85 Branch: premain Author: Chen Liang Date: 2024-09-26 06:34:18 +0000 URL: https://git.openjdk.org/leyden/commit/8c8f0d85ce30e45c34d4b096f7f1430cd9e7fd70 8339260: Move rarely used constants out of ClassFile Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/AnnotationValue.java ! src/java.base/share/classes/java/lang/classfile/ClassFile.java ! src/java.base/share/classes/java/lang/classfile/Opcode.java ! src/java.base/share/classes/java/lang/classfile/TypeAnnotation.java ! src/java.base/share/classes/java/lang/classfile/attribute/CharacterRangeInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/StackMapFrameInfo.java ! src/java.base/share/classes/java/lang/classfile/constantpool/PoolEntry.java ! src/java.base/share/classes/java/lang/classfile/instruction/CharacterRange.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationReader.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassHierarchyImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassPrinterImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassReaderImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CodeImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectClassBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/RawBytecodeHelper.java ! src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackCounter.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java ! src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationBytecodes.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerifierImpl.java ! src/jdk.jdeps/share/classes/com/sun/tools/javap/AttributeWriter.java ! src/jdk.jdeps/share/classes/com/sun/tools/javap/ClassWriter.java ! src/jdk.jdeps/share/classes/com/sun/tools/javap/ConstantWriter.java ! src/jdk.jdeps/share/classes/com/sun/tools/javap/StackMapWriter.java ! src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java ! src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/StringSharingPlugin.java ! test/jdk/jdk/classfile/LimitsTest.java ! test/jdk/jdk/classfile/StackMapsTest.java ! test/jdk/jdk/classfile/VerifierSelfTest.java ! test/jdk/jdk/classfile/helpers/ClassRecord.java Changeset: 10da2c21 Branch: premain Author: Johan Sj?len Date: 2024-09-26 08:47:32 +0000 URL: https://git.openjdk.org/leyden/commit/10da2c21a19affe93a3f5d67a70db5d9cd37181c 8340923: The class LogSelection copies uninitialized memory Reviewed-by: mbaesken, jwaters, stefank ! src/hotspot/share/logging/logSelection.cpp Changeset: e2626db2 Branch: premain Author: Alexey Ivanov Date: 2024-09-26 11:34:30 +0000 URL: https://git.openjdk.org/leyden/commit/e2626db2f00d0cc9f3ff8ea374a1ccc89373e398 8340899: Remove wildcard bound in PositionWindows.positionTestWindows Reviewed-by: azvegint, prr ! test/jdk/java/awt/regtesthelpers/PassFailJFrame.java Changeset: 3762ec39 Branch: premain Author: Alexey Ivanov Date: 2024-09-26 11:36:42 +0000 URL: https://git.openjdk.org/leyden/commit/3762ec3978bfe9910929ab22aaf238e9f4c84630 8340466: Add description for PassFailJFrame constructors Reviewed-by: prr, honkar ! test/jdk/java/awt/regtesthelpers/PassFailJFrame.java Changeset: 777c20cb Branch: premain Author: Lutz Schmidt Date: 2024-09-26 11:45:09 +0000 URL: https://git.openjdk.org/leyden/commit/777c20cb14010b6726834246ae4c61bc4ccb3f9b 8339542: compiler/codecache/CheckSegmentedCodeCache.java fails Reviewed-by: mdoerr, shade ! test/hotspot/jtreg/compiler/codecache/CheckSegmentedCodeCache.java Changeset: 47fcf5a3 Branch: premain Author: Alexander Zvegintsev Date: 2024-09-26 12:33:23 +0000 URL: https://git.openjdk.org/leyden/commit/47fcf5a3b0796ffeb6407be961ceb552ca2a40f8 8340687: Open source closed frame tests #1 Reviewed-by: aivanov + test/jdk/java/awt/Frame/DefaultFrameIconTest.java + test/jdk/java/awt/Frame/DisposeTest.java + test/jdk/java/awt/Frame/FramePaintTest.java + test/jdk/java/awt/Frame/MenuCrash.java Changeset: 95d3e9d1 Branch: premain Author: Fernando Guallini Committer: Sean Mullan Date: 2024-09-26 13:20:14 +0000 URL: https://git.openjdk.org/leyden/commit/95d3e9d199600bac0284f9151b99aef152e027ac 8339560: Unaddressed comments during code review of JDK-8337664 Reviewed-by: mullan - test/jdk/sun/security/ssl/X509TrustManagerImpl/Entrust/Distrust.java - test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/Distrust.java + test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/Distrust.java + test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/Entrust.java + test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/Symantec.java = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustcommercialca-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustnetworkingca-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustpremiumca-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustpremiumeccca-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/entrust2048ca-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/entrustevca-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/entrustrootcaec1-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/entrustrootcag2-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/entrustrootcag4-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/appleistca8g1-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/geotrustprimarycag2-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/geotrustprimarycag3-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/geotrustuniversalca-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/thawteprimaryrootca-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/thawteprimaryrootcag2-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/thawteprimaryrootcag3-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/verisignclass3g3ca-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/verisignclass3g4ca-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/verisignclass3g5ca-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/verisignclass3g5ca-codesigning-chain.pem = test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/verisignuniversalrootca-chain.pem Changeset: e36ce5f0 Branch: premain Author: Liam Miller-Cushon Date: 2024-09-26 15:11:03 +0000 URL: https://git.openjdk.org/leyden/commit/e36ce5f0341e8d0ec06cb12d0b2c0aa084401021 8336942: Improve test coverage for class loading elements with annotations of different retentions Reviewed-by: vromero ! test/langtools/tools/javac/processing/model/type/BasicAnnoTests.java Changeset: 376056ca Branch: premain Author: Aleksey Shipilev Date: 2024-09-26 15:14:21 +0000 URL: https://git.openjdk.org/leyden/commit/376056ca48fb5dbe3d57cea01a9fbf2ea4c35616 8336468: Reflection and MethodHandles should use more precise initializer checks Reviewed-by: liach, coleenp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/runtime/reflection.cpp Changeset: aeaa4f78 Branch: premain Author: Brian Burkhalter Date: 2024-09-26 15:20:51 +0000 URL: https://git.openjdk.org/leyden/commit/aeaa4f78ebd634c2020d0f0dd100fcb55d5130af 8336895: BufferedReader doesn't read full \r\n line ending when it doesn't fit in buffer Reviewed-by: jpai, alanb ! src/java.base/share/classes/java/io/BufferedInputStream.java ! src/java.base/share/classes/java/io/BufferedOutputStream.java ! src/java.base/share/classes/java/io/BufferedReader.java ! src/java.base/share/classes/java/io/BufferedWriter.java Changeset: aceae76f Branch: premain Author: Maxim Kartashev Date: 2024-09-26 15:40:31 +0000 URL: https://git.openjdk.org/leyden/commit/aceae76fb5853ab65851225aeb35a425af8f7af8 8339460: CDS error when module is located in a directory with space in the name Reviewed-by: ccheung, iklam ! src/hotspot/share/cds/classListParser.cpp ! src/hotspot/share/cds/classListWriter.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoader.hpp ! src/hotspot/share/classfile/classLoaderExt.cpp ! test/hotspot/jtreg/TEST.groups + test/hotspot/jtreg/runtime/cds/appcds/complexURI/ComplexURITest.java + test/hotspot/jtreg/runtime/cds/appcds/complexURI/mypackage/Another.java + test/hotspot/jtreg/runtime/cds/appcds/complexURI/mypackage/Main.java Changeset: 8225a5f5 Branch: premain Author: Joe Darcy Date: 2024-09-26 16:03:04 +0000 URL: https://git.openjdk.org/leyden/commit/8225a5f58a62ddf4acbb879bfcb53cf7bfd8542f 8340981: Update citations to "Hacker's Delight" Reviewed-by: bpb, iris, liach, jwaters ! src/java.base/share/classes/java/lang/Integer.java ! src/java.base/share/classes/java/lang/Long.java Changeset: bb040ef4 Branch: premain Author: Joe Darcy Date: 2024-09-26 16:04:45 +0000 URL: https://git.openjdk.org/leyden/commit/bb040ef4cc2b626f282cbf6af5b359d1c2505385 8340983: Use index and definition tags in Object and Double Reviewed-by: bpb, liach ! src/java.base/share/classes/java/lang/Double.java ! src/java.base/share/classes/java/lang/Object.java Changeset: a02d895f Branch: premain Author: Ravi Gupta Committer: Alexey Ivanov Date: 2024-09-26 16:31:31 +0000 URL: https://git.openjdk.org/leyden/commit/a02d895f7ad59fe33f8a761dbd7bceb0b8dfefc0 8333403: Write a test to check various components events are triggered properly Reviewed-by: aivanov + test/jdk/java/awt/Component/ComponentEventTest.java Changeset: 1447967f Branch: premain Author: Fernando Guallini Committer: Rajan Halade Date: 2024-09-26 16:47:49 +0000 URL: https://git.openjdk.org/leyden/commit/1447967f53fe27f67e4bb766464f941e39506d41 8339261: Logs truncated in test javax/net/ssl/DTLS/DTLSRehandshakeTest.java Reviewed-by: rhalade, hchao ! test/jdk/javax/net/ssl/DTLS/TEST.properties Changeset: 5d062e24 Branch: premain Author: Doug Simon Date: 2024-09-26 19:36:26 +0000 URL: https://git.openjdk.org/leyden/commit/5d062e248ec4be7b35f85c341e76aa6d8d6d8b2b 8340576: Some JVMCI flags are inconsistent Reviewed-by: never ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/share/compiler/oopMap.inline.hpp ! src/hotspot/share/jvmci/jvmci_globals.cpp ! src/hotspot/share/jvmci/jvmci_globals.hpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/escapeBarrier.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp Changeset: 2349bb7a Branch: premain Author: Todd V. Jonker Committer: Paul Hohensee Date: 2024-09-26 21:38:08 +0000 URL: https://git.openjdk.org/leyden/commit/2349bb7ace0c40c0f19dee81b4a86bed0e855043 8340974: Ambiguous name of jtreg property vm.libgraal.enabled Reviewed-by: dnsimon, phh ! test/hotspot/jtreg/TEST.ROOT ! test/jtreg-ext/requires/VMProps.java ! test/lib/jdk/test/whitebox/code/Compiler.java Changeset: e6373b52 Branch: premain Author: Coleen Phillimore Date: 2024-09-26 21:54:30 +0000 URL: https://git.openjdk.org/leyden/commit/e6373b52380b35ed13b5ea308dfd5ade454f0e99 8340679: Misc tests fail assert(!set || SafepointSynchronize::is_at_safepoint()) failed: set once or at safepoint Reviewed-by: matsaave, iklam ! src/hotspot/share/classfile/systemDictionary.cpp Changeset: 1bc13a1c Branch: premain Author: Florian Weimer Date: 2024-09-26 22:37:45 +0000 URL: https://git.openjdk.org/leyden/commit/1bc13a1c10a580f84f1b7686c95344ec2633f611 8340552: Harden TzdbZoneRulesCompiler against missing zone names Reviewed-by: andrew, jlu, naoto ! make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesCompiler.java Changeset: 85dba479 Branch: premain Author: Hannes Walln?fer Date: 2024-09-27 06:34:02 +0000 URL: https://git.openjdk.org/leyden/commit/85dba479256a59ea66997d5c408f290e6b5ad384 8325090: javadoc fails when -subpackages option is used with non-modular -source Reviewed-by: liach, jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ElementsTable.java + test/langtools/jdk/javadoc/tool/subpackageNoModules/SubpackageNoModules.java Changeset: 2a2ecc99 Branch: premain Author: Matthias Baesken Date: 2024-09-27 07:27:29 +0000 URL: https://git.openjdk.org/leyden/commit/2a2ecc994e02049d6d84f083b8e92a51368577bf 8339475: Clean up return code handling for pthread calls in library coding Reviewed-by: clanger, jwaters ! src/java.base/macosx/native/libjli/java_md_macosx.m ! src/java.base/unix/native/libjli/java_md_common.c ! src/java.desktop/macosx/native/libsplashscreen/splashscreen_sys.m ! src/java.desktop/unix/native/libsplashscreen/splashscreen_sys.c Changeset: 9003e2c5 Branch: premain Author: Stefan Karlsson Date: 2024-09-27 08:28:59 +0000 URL: https://git.openjdk.org/leyden/commit/9003e2c519e63fa547e2f072e47f74057094efa2 8341027: Crash in java/runtime/Unsafe/InternalErrorTest when running with -XX:-UseCompressedClassPointers Reviewed-by: aboldtch, coleenp ! test/hotspot/jtreg/runtime/Unsafe/InternalErrorTest.java Changeset: 6587909c Branch: premain Author: Aleksey Shipilev Date: 2024-09-27 09:44:00 +0000 URL: https://git.openjdk.org/leyden/commit/6587909c7db6482bda92d314096a2a1795900ffd 8341015: OopStorage location decoder crashes accessing non-initalized OopStorage Reviewed-by: kbarrett, tschatzl ! src/hotspot/share/gc/shared/oopStorageSet.cpp Changeset: 25e89291 Branch: premain Author: Kim Barrett Date: 2024-09-27 10:58:10 +0000 URL: https://git.openjdk.org/leyden/commit/25e892911dabe32cc0d13b0d4322c5d89585b8f1 8340620: Fix -Wzero-as-null-pointer-constant warnings for CompressedOops Reviewed-by: shade, stefank, mli, amitkumar ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/s390/s390.ad ! src/hotspot/share/oops/compressedOops.cpp Changeset: 12de4fbc Branch: premain Author: Leonid Mesnik Date: 2024-09-27 15:02:01 +0000 URL: https://git.openjdk.org/leyden/commit/12de4fbce7a314a1c5c84340526cd65b9a4a29d1 8340826: Should not send unload notification for scratch classes Reviewed-by: sspitsyn, coleenp ! src/hotspot/share/code/dependencyContext.cpp ! src/hotspot/share/code/dependencyContext.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp ! src/hotspot/share/oops/instanceKlass.cpp Changeset: 68c4f368 Branch: premain Author: Liam Miller-Cushon Date: 2024-09-27 16:21:05 +0000 URL: https://git.openjdk.org/leyden/commit/68c4f36857a8ce62731cc73e251e969d48e526ef 8340024: In ClassReader, extract a constant for the superclass supertype_index Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java Changeset: 5aae3d40 Branch: premain Author: Daniel D. Daugherty Date: 2024-09-27 16:26:30 +0000 URL: https://git.openjdk.org/leyden/commit/5aae3d40856d92e1e0ff744cb1a0d3421c3dfd5b 8341096: ProblemList compiler/cha/TypeProfileFinalMethod.java in Xcomp mode Reviewed-by: azvegint ! test/hotspot/jtreg/ProblemList-Xcomp.txt Changeset: 824a297a Branch: premain Author: Rajan Halade Date: 2024-09-27 16:57:02 +0000 URL: https://git.openjdk.org/leyden/commit/824a297aae15ba16cf6d7aded4b95fc9d6bf55e5 8341057: Add 2 SSL.com TLS roots Reviewed-by: mullan + src/java.base/share/data/cacerts/ssltlsrootecc2022 + src/java.base/share/data/cacerts/ssltlsrootrsa2022 ! test/jdk/security/infra/java/security/cert/CertPathValidator/certification/CAInterop.java ! test/jdk/sun/security/lib/cacerts/VerifyCACerts.java Changeset: 65200a95 Branch: premain Author: Xiaolong Peng Committer: Aleksey Shipilev Date: 2024-09-27 17:06:18 +0000 URL: https://git.openjdk.org/leyden/commit/65200a9589e46956a2194b20c4c90d003351a539 8340490: Shenandoah: Optimize ShenandoahPacer Reviewed-by: shade, kdnilsen ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp Changeset: f554c3ff Branch: premain Author: Rajan Halade Date: 2024-09-27 17:16:13 +0000 URL: https://git.openjdk.org/leyden/commit/f554c3ffce7599fdb535b03db4a6ea96870b3c2d 8341059: Change Entrust TLS distrust date to November 12, 2024 Reviewed-by: mullan ! src/java.base/share/classes/sun/security/validator/CADistrustPolicy.java ! src/java.base/share/classes/sun/security/validator/EntrustTLSPolicy.java ! src/java.base/share/conf/security/java.security ! test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/Entrust.java Changeset: a7bfced6 Branch: premain Author: Yagmur Eren Committer: Vladimir Kozlov Date: 2024-09-27 17:36:48 +0000 URL: https://git.openjdk.org/leyden/commit/a7bfced60540fe8d4fa7360bff512337ea47b890 8337679: Memset warning in src/hotspot/share/adlc/adlArena.cpp Reviewed-by: stefank, thartmann, jwaters ! src/hotspot/share/adlc/adlArena.cpp Changeset: 082125d6 Branch: premain Author: Justin Lu Date: 2024-09-27 18:26:08 +0000 URL: https://git.openjdk.org/leyden/commit/082125d61e4b7e0fd53528c0271ca8be621f242b 8340404: CharsetProvider specification updates Reviewed-by: alanb, naoto ! src/java.base/share/classes/java/nio/charset/spi/CharsetProvider.java + test/jdk/java/nio/charset/spi/CharsetProviderAsModuleTest.java = test/jdk/java/nio/charset/spi/provider/module-info.java + test/jdk/java/nio/charset/spi/provider/spi/BazProvider.java Changeset: ed140f5d Branch: premain Author: Boris Ulasevich Date: 2024-09-27 23:11:41 +0000 URL: https://git.openjdk.org/leyden/commit/ed140f5d5e2dec1217e2efbee815d84306de0563 8341101: [ARM32] Error: ShouldNotReachHere() in TemplateInterpreterGenerator::generate_math_entry after 8338694 Reviewed-by: shade ! src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp Changeset: 73ebb848 Branch: premain Author: Joe Darcy Date: 2024-09-27 23:34:04 +0000 URL: https://git.openjdk.org/leyden/commit/73ebb848fdb66861e912ea747c039ddd1f7a5f48 8340721: Clarify special case handling of unboxedType and getWildcardType Reviewed-by: prappo, mcimadamore ! src/java.compiler/share/classes/javax/lang/model/util/Types.java + test/langtools/tools/javac/processing/model/util/types/TestInvalidInputs.java Changeset: ade17ecb Branch: premain Author: Phil Race Date: 2024-09-29 17:05:01 +0000 URL: https://git.openjdk.org/leyden/commit/ade17ecb6cb5125d048401a878b557e5afefc08c 8340560: Open Source several AWT/2D font and rendering tests Reviewed-by: kizune + test/jdk/sun/awt/font/CacheFlushTest.java + test/jdk/sun/awt/font/TestArabicHebrew.java + test/jdk/sun/awt/font/TestDevTransform.java + test/jdk/sun/awt/windows/TestPen.java Changeset: dd569909 Branch: premain Author: Prasanta Sadhukhan Date: 2024-09-30 02:43:32 +0000 URL: https://git.openjdk.org/leyden/commit/dd56990962d58e4f482773f67bc43383d7748536 8340639: Open source few more AWT List tests Reviewed-by: prr + test/jdk/java/awt/List/HorizScrollWorkTest.java + test/jdk/java/awt/List/HorizScrollbarEraseTest.java + test/jdk/java/awt/List/ScrollbarPresenceTest.java + test/jdk/java/awt/List/SetForegroundTest.java Changeset: ae4d2f15 Branch: premain Author: Prasanta Sadhukhan Date: 2024-09-30 02:43:49 +0000 URL: https://git.openjdk.org/leyden/commit/ae4d2f15901bf02efceaac26ee4aa3ae666bf467 8340621: Open source several AWT List tests Reviewed-by: prr + test/jdk/java/awt/List/DisabledListIsGreyTest.java + test/jdk/java/awt/List/ListFrameResizeTest.java + test/jdk/java/awt/List/MultiSelectionListCrashTest.java + test/jdk/java/awt/List/ScrollbarPositionTest.java + test/jdk/java/awt/List/SelectedItemVisibilityTest.java Changeset: 6514aef8 Branch: premain Author: Axel Boldt-Christmas Date: 2024-09-30 06:20:08 +0000 URL: https://git.openjdk.org/leyden/commit/6514aef8403fa5fc09e5c064a783ff0f1fccd0cf 8340419: ZGC: Create an UseLargePages adaptation of TestAllocateHeapAt.java Reviewed-by: stefank, sjohanss, jsikstro + test/hotspot/jtreg/gc/z/TestAllocateHeapAtWithHugeTLBFS.java Changeset: 822a7738 Branch: premain Author: Abhishek Kumar Date: 2024-09-30 06:38:42 +0000 URL: https://git.openjdk.org/leyden/commit/822a773873c42ea27a6be90da92b2b2c9fb8caee 8340605: Open source several AWT PopupMenu tests Reviewed-by: tr + test/jdk/java/awt/PopupMenu/PeripheryOfScreen.java + test/jdk/java/awt/PopupMenu/PopupLeadingSeparatorTest.java + test/jdk/java/awt/PopupMenu/PopupMenuShowTest.java + test/jdk/java/awt/PopupMenu/PopupMenuWithMenuBar.java + test/jdk/java/awt/PopupMenu/PopupOnButton.java Changeset: 988a531b Branch: premain Author: Aleksey Shipilev Date: 2024-09-30 07:02:55 +0000 URL: https://git.openjdk.org/leyden/commit/988a531b097ccbd699d233059d73f41cae24dc5b 8340181: Shenandoah: Cleanup ShenandoahRuntime stubs Reviewed-by: adinn, phh, wkemper ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/ppc/gc/shenandoah/shenandoahBarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/riscv/gc/shenandoah/shenandoahBarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.hpp Changeset: 52ba7282 Branch: premain Author: Sebastian L?vdahl Committer: Severin Gehwolf Date: 2024-09-30 08:33:12 +0000 URL: https://git.openjdk.org/leyden/commit/52ba72823be0c969ab873ead2863ec48f883210b 8327114: Attach in Linux may have wrong behaviour when pid == ns_pid (Kubernetes debug container) Co-authored-by: Larry Cable Reviewed-by: kevinw, sgehwolf ! src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java ! test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java Changeset: 475b8943 Branch: premain Author: Mikhail Ablakatov <164922675+mikabl-arm at users.noreply.github.com> Date: 2024-09-30 09:02:59 +0000 URL: https://git.openjdk.org/leyden/commit/475b8943c672349609a4839ce0a02ef995764698 8322770: Implement C2 VectorizedHashCode on AArch64 Reviewed-by: aph, adinn ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.hpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp + src/hotspot/share/utilities/intpow.hpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h Changeset: 1cf26a51 Branch: premain Author: Oli Gillespie Committer: Hamlin Li Date: 2024-09-30 10:53:20 +0000 URL: https://git.openjdk.org/leyden/commit/1cf26a5179e619f17909426fdb26a3fb3b748483 8341013: Optimize x86/aarch64 MD5 intrinsics by reducing data dependency Reviewed-by: mli, ascarpino ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/x86/macroAssembler_x86_md5.cpp Changeset: 58b6fc5b Branch: premain Author: Tobias Hartmann Date: 2024-09-30 10:56:52 +0000 URL: https://git.openjdk.org/leyden/commit/58b6fc5baa0931fa6f2aa37bf0bb125497cf6cc9 8341197: [BACKOUT] 8322770: Implement C2 VectorizedHashCode on AArch64 Reviewed-by: shade, jpai ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.hpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp - src/hotspot/share/utilities/intpow.hpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h Changeset: e19c7d80 Branch: premain Author: Jayathirth D V Date: 2024-09-30 11:24:48 +0000 URL: https://git.openjdk.org/leyden/commit/e19c7d80f722395583fbdb4cc10dc9051c8602f2 8340874: Open source some of the AWT Geometry/Button tests Reviewed-by: prr + test/jdk/java/awt/Button/BadActionEventTest/BadActionEventTest.java + test/jdk/java/awt/geom/Arc2D/Arc2DHitTest.java + test/jdk/java/awt/geom/Arc2D/BoundsBug.java + test/jdk/java/awt/geom/Area/Translate.java Changeset: 180affc5 Branch: premain Author: Fredrik Bredberg Date: 2024-09-30 12:28:35 +0000 URL: https://git.openjdk.org/leyden/commit/180affc5718c9bf2f009d6a7aa129cc36335384a 8320318: ObjectMonitor Responsible thread Reviewed-by: aboldtch, coleenp, pchilanomate, eosterlund ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp ! src/hotspot/cpu/s390/macroAssembler_s390.cpp ! src/hotspot/cpu/x86/c2_CodeStubs_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/share/opto/c2_CodeStubs.hpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/objectMonitor.cpp ! src/hotspot/share/runtime/objectMonitor.hpp ! src/hotspot/share/runtime/objectMonitor.inline.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! test/micro/org/openjdk/bench/vm/lang/LockUnlock.java Changeset: cff420d8 Branch: premain Author: Eirik Bj?rsn?s Date: 2024-09-30 13:06:49 +0000 URL: https://git.openjdk.org/leyden/commit/cff420d8d3cfbbb729ee47b00c8fe38e410eab1a 8339711: ZipFile.Source.initCEN needlessly reads END header Reviewed-by: lancea, jpai, redestad ! src/java.base/share/classes/java/util/zip/ZipFile.java ! test/jdk/java/util/zip/ZipFile/CenSizeTooLarge.java ! test/jdk/java/util/zip/ZipFile/EndOfCenValidation.java Changeset: 860d49db Branch: premain Author: Ramkumar Sunderbabu Committer: Kim Barrett Date: 2024-09-30 13:43:40 +0000 URL: https://git.openjdk.org/leyden/commit/860d49db22cf352eaf1b3b20fff43d090f0eebc8 8211400: nsk.share.gc.Memory::getArrayLength returns wrong value Reviewed-by: kbarrett, tschatzl ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/Memory.java Changeset: f1bf469b Branch: premain Author: Shaojin Wen Date: 2024-09-30 14:12:01 +0000 URL: https://git.openjdk.org/leyden/commit/f1bf469b4ee07b48b629a126111e307d3cab7fd7 8341199: Use ClassFile's new API loadConstant(int) Reviewed-by: liach, redestad ! src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java ! src/java.base/share/classes/java/lang/runtime/SwitchBootstraps.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventClassBuilder.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventInstrumentation.java Changeset: 4168faf5 Branch: premain Author: Joe Darcy Date: 2024-09-30 16:10:02 +0000 URL: https://git.openjdk.org/leyden/commit/4168faf54c0558a7cff4ef6ac643bbbfdea0cec3 8341100: Add index entries for terms used in java.lang.Class Reviewed-by: liach ! src/java.base/share/classes/java/lang/Class.java Changeset: 5586f83e Branch: premain Author: Joe Darcy Date: 2024-09-30 16:13:35 +0000 URL: https://git.openjdk.org/leyden/commit/5586f83e34c2fe0bdc48daef8c456678cea55af1 8341064: Define anchor point and index term for "wrapper classes" Reviewed-by: prappo, liach ! src/java.base/share/classes/java/lang/Boolean.java ! src/java.base/share/classes/java/lang/Byte.java ! src/java.base/share/classes/java/lang/Character.java ! src/java.base/share/classes/java/lang/Double.java ! src/java.base/share/classes/java/lang/Float.java ! src/java.base/share/classes/java/lang/Integer.java ! src/java.base/share/classes/java/lang/Long.java ! src/java.base/share/classes/java/lang/Short.java ! src/java.base/share/classes/java/lang/package-info.java ! src/java.compiler/share/classes/javax/lang/model/util/Types.java Changeset: a6b31886 Branch: premain Author: Smita Kamath Date: 2024-09-30 17:00:13 +0000 URL: https://git.openjdk.org/leyden/commit/a6b318863fa2775b6381977875b4f466af47beb8 8337632: AES-GCM Algorithm optimization for x86_64 Reviewed-by: jbhateja, sviswanathan ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.hpp ! src/hotspot/cpu/x86/stubGenerator_x86_64_aes.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64_ghash.cpp ! src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java ! test/micro/org/openjdk/bench/javax/crypto/full/AESGCMBench.java ! test/micro/org/openjdk/bench/javax/crypto/full/BenchBase.java Changeset: bfdeb33e Branch: premain Author: Harshitha Onkar Date: 2024-09-30 18:45:40 +0000 URL: https://git.openjdk.org/leyden/commit/bfdeb33e6f1d4f9f0cc65925ea792be98b1f4d61 8340332: Open source mixed AWT tests - Set3 Reviewed-by: aivanov + test/jdk/java/awt/MouseInfo/ContainerResizeMousePositionTest.java + test/jdk/java/awt/color/XAWTDifference/XAWTColors.jpg + test/jdk/java/awt/color/XAWTDifference/XAWTDifference.java Changeset: 31858fc4 Branch: premain Author: David Holmes Date: 2024-09-30 22:06:23 +0000 URL: https://git.openjdk.org/leyden/commit/31858fc4107a616aefd785cc06e932d1f03e2697 8340491: Thread stack-base assertion should report which thread has the un-set stack Reviewed-by: shade, kevinw, stefank ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp Changeset: a32c3b43 Branch: premain Author: Alexander Zuev Date: 2024-09-30 22:09:39 +0000 URL: https://git.openjdk.org/leyden/commit/a32c3b43aaefdebf5be229f90d9cd26db1859b95 8340407: Open source a few more Component related tests Reviewed-by: prr + test/jdk/java/awt/Component/ComponentLeakTest/ComponentLeakTest.java + test/jdk/java/awt/Component/ComponentSerializationTest/ComponentSerializationTest.java + test/jdk/java/awt/Component/MinMaxSizeDefensive/GetSizesTest.java + test/jdk/java/awt/Component/ZOrderTest/ZOrderTest.java Changeset: b11066b5 Branch: premain Author: Prasanta Sadhukhan Date: 2024-10-01 02:47:40 +0000 URL: https://git.openjdk.org/leyden/commit/b11066b56b69b2c526539e712cef47723098597f 8340719: Open source AWT List tests Reviewed-by: prr ! test/jdk/ProblemList.txt + test/jdk/java/awt/List/HandlingKeyEventIfMousePressedTest.java + test/jdk/java/awt/List/ListActionEventTest.java + test/jdk/java/awt/List/MultiSelectionListHorizScrollbar.java + test/jdk/java/awt/List/RepaintAfterResize.java Changeset: 988f13a3 Branch: premain Author: Abhishek Kumar Date: 2024-10-01 04:32:55 +0000 URL: https://git.openjdk.org/leyden/commit/988f13a3875a6d29d7de07c5e97fcd6e7f9a31ff 8340354: Open source AWT desktop properties and print related tests Reviewed-by: prr + test/jdk/java/awt/DesktopProperties/FontSmoothing.java + test/jdk/java/awt/DesktopProperties/ThreeDBackgroundColor.java + test/jdk/java/awt/PrintJob/PrintCompatibilityTest.java + test/jdk/java/awt/PrintJob/PrintComponentTest.java + test/jdk/java/awt/PrintJob/ScaledImagePrintingTest.java Changeset: 9bd47859 Branch: premain Author: Abhishek Kumar Date: 2024-10-01 04:40:16 +0000 URL: https://git.openjdk.org/leyden/commit/9bd478593cc92a716151d1373f3426f1d92143bb 8340437: Open source few more AWT Frame related tests Reviewed-by: prr, kizune + test/jdk/java/awt/Frame/DisabledParentOfToplevel.java + test/jdk/java/awt/Frame/FrameVisualTest.java + test/jdk/java/awt/Frame/IMStatusBar.java + test/jdk/java/awt/Frame/MultiScreenTest.java Changeset: 1b46fea5 Branch: premain Author: Matthias Baesken Date: 2024-10-01 07:15:42 +0000 URL: https://git.openjdk.org/leyden/commit/1b46fea59cf8f53b23e5c16a604b4decc8c7dbbe 8341024: [test] build/AbsPathsInImage.java fails with OOM when using ubsan-enabled binaries Reviewed-by: erikj ! test/jdk/build/AbsPathsInImage.java Changeset: ad5ffccf Branch: premain Author: Axel Boldt-Christmas Date: 2024-10-01 08:02:56 +0000 URL: https://git.openjdk.org/leyden/commit/ad5ffccffa89359dac6ad44b9e43242e5bf3e398 8341168: Cleanup dead code after JDK-8322630 Reviewed-by: stefank, tschatzl, mli, shade ! src/hotspot/share/code/compiledIC.cpp ! src/hotspot/share/compiler/compilerDefinitions.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/vmOperation.hpp ! src/hotspot/share/runtime/vmOperations.hpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/code/StubQueue.java Changeset: 2dc3b1a7 Branch: premain Author: Nizar Benalla Date: 2024-10-01 10:27:07 +0000 URL: https://git.openjdk.org/leyden/commit/2dc3b1a71ffe71bc08ec967bb6b24ccf803037f3 8341201: Broken link in AbstractAnnotationValueVisitor7 due to extra quotation mark Reviewed-by: iris, darcy ! src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java Changeset: f7c7958f Branch: premain Author: Axel Boldt-Christmas Date: 2024-10-01 11:33:11 +0000 URL: https://git.openjdk.org/leyden/commit/f7c7958f001b3242eb485efd25bbcf9e1be75d85 8340420: ZGC: Should call `vm_shutdown_during_initialization` if initialization fails Reviewed-by: stefank, mli ! src/hotspot/os/bsd/gc/z/zPhysicalMemoryBacking_bsd.cpp ! src/hotspot/os/linux/gc/z/zPhysicalMemoryBacking_linux.cpp ! src/hotspot/share/gc/z/zCollectedHeap.cpp ! src/hotspot/share/gc/z/zCollectedHeap.hpp ! src/hotspot/share/gc/z/zHeap.cpp ! src/hotspot/share/gc/z/zInitialize.cpp ! src/hotspot/share/gc/z/zInitialize.hpp ! src/hotspot/share/gc/z/zMarkStackAllocator.cpp ! src/hotspot/share/gc/z/zVirtualMemory.cpp Changeset: 7cc7c080 Branch: premain Author: Raphael Mosaner Committer: Doug Simon Date: 2024-10-01 11:46:13 +0000 URL: https://git.openjdk.org/leyden/commit/7cc7c080b5dbab61914512bf63227944697c0cbe 8337493: [JVMCI] Number of libgraal threads might be too low Reviewed-by: dnsimon ! src/hotspot/share/jvmci/jvmci_globals.hpp Changeset: 684d246c Branch: premain Author: Aleksey Shipilev Date: 2024-10-01 13:29:56 +0000 URL: https://git.openjdk.org/leyden/commit/684d246ccf497f599ffcd498f2fbe4b1b2357e27 8341242: Shenandoah: LRB node is not matched as GC barrier after JDK-8340183 Reviewed-by: rkennke, phh ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp Changeset: 2120a841 Branch: premain Author: Yudi Zheng Date: 2024-10-01 13:59:36 +0000 URL: https://git.openjdk.org/leyden/commit/2120a8414ef9c34d5875d33ac9a16594908fe403 8341333: [JVMCI] Export JavaThread::_unlocked_inflated_monitor to JVMCI Reviewed-by: dnsimon ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp Changeset: 7b1e6f8e Branch: premain Author: joseph.jackson Committer: Zhengyu Gu Date: 2024-10-01 14:00:39 +0000 URL: https://git.openjdk.org/leyden/commit/7b1e6f8ed9dbc07158717a32d341393afaa54b66 8337389: Parallel: Remove unnecessary forward declarations in psScavenge.hpp Reviewed-by: kbarrett, tschatzl ! src/hotspot/share/gc/parallel/psScavenge.hpp Changeset: f2a767f5 Branch: premain Author: Alexander Zvegintsev Date: 2024-10-01 14:28:22 +0000 URL: https://git.openjdk.org/leyden/commit/f2a767f59b1f66966665bc8601273b532961395a 8340907: Open source closed frame tests # 2 Reviewed-by: prr, honkar ! test/jdk/ProblemList.txt + test/jdk/java/awt/Frame/DeiconifyClipTest.java + test/jdk/java/awt/Frame/FrameSetCursorTest.java + test/jdk/java/awt/Frame/InitialIconifiedTest.java + test/jdk/java/awt/Frame/InsetCorrectionTest.java Changeset: 9a7817b1 Branch: premain Author: Leonid Mesnik Date: 2024-10-01 16:02:02 +0000 URL: https://git.openjdk.org/leyden/commit/9a7817b1376d055c5a7c1005b275cc1f198e5364 8340988: Update jdk/jfr/event/gc/collection tests to accept "CodeCache GC Threshold" as valid GC reason Reviewed-by: tschatzl ! test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithG1ConcurrentMark.java ! test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithG1FullCollection.java ! test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithParallelOld.java ! test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithSerial.java Changeset: 021bf630 Branch: premain Author: Alexander Zuev Date: 2024-10-01 18:27:25 +0000 URL: https://git.openjdk.org/leyden/commit/021bf630351fd5369fac732b1099bc2bfe8b5e19 8340458: Open source additional Component tests (part 2) Reviewed-by: psadhukhan + test/jdk/java/awt/Component/BackgroundColorTest/InitialBackgroundSettingTest.java + test/jdk/java/awt/Component/FlickeringOnScroll/FlickeringOnScroll.java + test/jdk/java/awt/Component/FocusRepaintTest/FocusRepaintTest.java + test/jdk/java/awt/Component/ListDoubleIndentTest/ListDoubleIndentTest.java Changeset: 03149735 Branch: premain Author: Alex Menkov Date: 2024-10-01 18:50:37 +0000 URL: https://git.openjdk.org/leyden/commit/03149735e59b7d1d409a6e29ee05ae0537e03d53 8341060: Cleanup statics in HeapDumper Reviewed-by: shade, sspitsyn ! src/hotspot/share/services/heapDumper.cpp Changeset: d2e77089 Branch: premain Author: Harshitha Onkar Date: 2024-10-01 21:08:41 +0000 URL: https://git.openjdk.org/leyden/commit/d2e77089aaeef83e6f659fd77fdd0a360def760a 8341367: Problemlist ShapeNotSetSometimes.java on macOS Reviewed-by: aivanov ! test/jdk/ProblemList.txt Changeset: 83dcb02d Branch: premain Author: Sandhya Viswanathan Date: 2024-10-01 22:48:31 +0000 URL: https://git.openjdk.org/leyden/commit/83dcb02d776448aa04f3f41df489bd4355443a4d 8340079: Modify rearrange/selectFrom Vector API methods to perform wrapIndexes instead of checkIndexes Reviewed-by: jbhateja, psandoz ! src/hotspot/share/adlc/formssel.cpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/library_call.hpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/AbstractShuffle.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template Changeset: 8d6d37fe Branch: premain Author: Tobias Holenstein Date: 2024-10-01 23:52:46 +0000 URL: https://git.openjdk.org/leyden/commit/8d6d37fea133380d4143f5db38ad3790efa84f68 8320308: C2 compilation crashes in LibraryCallKit::inline_unsafe_access Reviewed-by: thartmann, kvn, vlivanov, epeter, roland ! src/hotspot/share/opto/library_call.cpp ! test/hotspot/jtreg/ProblemList.txt + test/hotspot/jtreg/compiler/parsing/TestUnsafeArrayAccessWithNullBase.java Changeset: 0f381137 Branch: premain Author: Eirik Bj?rsn?s Committer: Jaikiran Pai Date: 2024-10-02 01:27:03 +0000 URL: https://git.openjdk.org/leyden/commit/0f381137cb9338453a7d77a7ebdfaa9b34b5028b 8341243: Use ArraySupport.SOFT_MAX_ARRAY_LENGTH for max array size in java.base Reviewed-by: jpai, smarks ! src/java.base/share/classes/java/io/InputStream.java ! src/java.base/share/classes/java/util/ArrayDeque.java ! src/java.base/share/classes/java/util/BitSet.java ! src/java.base/share/classes/java/util/Hashtable.java ! src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java ! src/java.base/share/classes/java/util/regex/Pattern.java ! src/java.base/share/classes/java/util/stream/Nodes.java ! src/java.base/share/classes/jdk/internal/foreign/AbstractMemorySegmentImpl.java ! src/java.base/share/classes/sun/security/util/SignatureFileVerifier.java ! test/jdk/java/lang/StringBuffer/HugeCapacity.java ! test/jdk/java/lang/StringBuilder/HugeCapacity.java ! test/jdk/java/nio/charset/CharsetDecoder/XcodeOverflow.java ! test/jdk/java/util/Base64/TestEncodingDecodingLength.java ! test/jdk/java/util/concurrent/tck/ArrayDeque8Test.java ! test/jdk/java/util/concurrent/tck/JSR166TestCase.java Changeset: 39c17b39 Branch: premain Author: Chen Liang Date: 2024-10-02 03:30:02 +0000 URL: https://git.openjdk.org/leyden/commit/39c17b392699007496816f788fca9fbe670dd6f8 8341277: Validate slot argument for instruction factories Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/CodeBuilder.java ! src/java.base/share/classes/java/lang/classfile/instruction/DiscontinuedInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/IncrementInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/LoadInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/LocalVariable.java ! src/java.base/share/classes/java/lang/classfile/instruction/LocalVariableType.java ! src/java.base/share/classes/java/lang/classfile/instruction/NewMultiArrayInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/StoreInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPseudoInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CodeImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java + test/jdk/jdk/classfile/InstructionValidationTest.java - test/jdk/jdk/classfile/OpcodesValidationTest.java Changeset: 90c944fe Branch: premain Author: Roland Westrelin Date: 2024-10-02 07:11:10 +0000 URL: https://git.openjdk.org/leyden/commit/90c944fefe4a7827c08a8e6a81f137c3157a749b 8340824: C2: Memory for TypeInterfaces not reclaimed by hashcons() Reviewed-by: vlivanov, qamai ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/type.hpp Changeset: 52c2ea65 Branch: premain Author: Hamlin Li Date: 2024-10-02 07:48:22 +0000 URL: https://git.openjdk.org/leyden/commit/52c2ea65c4ab6a2d25e9de465fbf20034fe79028 8340732: RISC-V: Refactor crc32 scalar version Reviewed-by: fyang ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp Changeset: efe3573b Branch: premain Author: Matthias Baesken Date: 2024-10-02 07:58:17 +0000 URL: https://git.openjdk.org/leyden/commit/efe3573b9b4ecec0630fdc1c61c765713a5b68e6 8340109: Ubsan: ciEnv.cpp:1660:65: runtime error: member call on null pointer of type 'struct CompileTask' Reviewed-by: kvn, lucy ! src/hotspot/share/ci/ciEnv.cpp Changeset: c8c4ff20 Branch: premain Author: Matthias Baesken Date: 2024-10-02 08:14:48 +0000 URL: https://git.openjdk.org/leyden/commit/c8c4ff2035c4e19a71f4395d23f036ba88d2e291 8341135: Incorrect format string after JDK-8339475 Reviewed-by: shade, clanger, alanb ! src/java.base/macosx/native/libjli/java_md_macosx.m Changeset: a4ca6267 Branch: premain Author: Feilong Jiang Date: 2024-10-02 09:14:31 +0000 URL: https://git.openjdk.org/leyden/commit/a4ca6267e17815153f8fa119db19b97b1da2bd84 8341146: RISC-V: Unnecessary fences used for load-acquire in template interpreter Reviewed-by: fyang, rehn ! src/hotspot/cpu/riscv/templateTable_riscv.cpp Changeset: d6820d13 Branch: premain Author: fabioromano1 <51378941+fabioromano1 at users.noreply.github.com> Committer: Raffaello Giulietti Date: 2024-10-02 09:45:43 +0000 URL: https://git.openjdk.org/leyden/commit/d6820d1324711eac95a297dd68ec94e6f6be4b35 8336274: MutableBigInteger.leftShift(int) optimization Reviewed-by: rgiulietti ! src/java.base/share/classes/java/math/MutableBigInteger.java + test/jdk/java/math/BigInteger/MutableBigIntegerShiftTests.java + test/jdk/java/math/BigInteger/java.base/java/math/MutableBigIntegerBox.java Changeset: 855c8a7d Branch: premain Author: Ramkumar Sunderbabu Date: 2024-10-02 10:48:21 +0000 URL: https://git.openjdk.org/leyden/commit/855c8a7def21025bc2fc47594f7285a55924c213 8334305: Remove all code for nsk.share.Log verbose mode Reviewed-by: mli, cjplummer, lmesnik ! test/hotspot/jtreg/vmTestbase/jit/escape/LockElision/MatMul/MatMul.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/LaunchingConnector/launchnosuspend/launchnosuspend001.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/filter_tagged/HeapFilter.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded001.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded001.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/stress/lowmem/lowmem001.java ! test/hotspot/jtreg/vmTestbase/nsk/share/Log.java ! test/hotspot/jtreg/vmTestbase/nsk/share/aod/AODTestRunner.java ! test/hotspot/jtreg/vmTestbase/nsk/share/aod/AbstractJarAgent.java ! test/hotspot/jtreg/vmTestbase/nsk/share/aod/DummyTargetApplication.java ! test/hotspot/jtreg/vmTestbase/nsk/share/aod/TargetApplicationWaitingAgents.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/JVMTITest.java ! test/hotspot/jtreg/vmTestbase/vm/compiler/coverage/parentheses/Parentheses.java Changeset: 5e980072 Branch: premain Author: Roman Kennke Date: 2024-10-02 13:27:57 +0000 URL: https://git.openjdk.org/leyden/commit/5e9800721a29dbb85be76a6f56c2e2677a3274f2 8307532: Implement LM_LIGHTWEIGHT for Zero Reviewed-by: aboldtch, jwaters ! src/hotspot/cpu/zero/vm_version_zero.cpp ! src/hotspot/cpu/zero/zeroInterpreter_zero.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/basicLock.inline.hpp Changeset: 88380484 Branch: premain Author: Matias Saavedra Silva Date: 2024-10-02 14:45:56 +0000 URL: https://git.openjdk.org/leyden/commit/883804841ef9319a18f90a852272c69bc54f5395 8324259: Classes used by CDS at runtime should be archived Reviewed-by: iklam, ccheung ! src/hotspot/share/cds/metaspaceShared.cpp ! test/hotspot/jtreg/TEST.groups + test/hotspot/jtreg/runtime/cds/appcds/DumpRuntimeClassesTest.java Changeset: 49501fe9 Branch: premain Author: Ramkumar Sunderbabu Committer: Leonid Mesnik Date: 2024-10-02 15:13:27 +0000 URL: https://git.openjdk.org/leyden/commit/49501fe9c4d0fc4d6285ba4f5d403754e5a147bd 8341412: Various test failures after JDK-8334305 Reviewed-by: lmesnik, dcubed ! test/hotspot/jtreg/vmTestbase/nsk/share/Log.java Changeset: 85f04427 Branch: premain Author: Alexey Ivanov Date: 2024-10-02 15:16:32 +0000 URL: https://git.openjdk.org/leyden/commit/85f0442727201e0d36ed0a71d2199e602501c98d 8317116: Provide layouts for multiple test UI in PassFailJFrame Reviewed-by: azvegint, prr ! test/jdk/java/awt/regtesthelpers/PassFailJFrame.java + test/jdk/java/awt/regtesthelpers/WindowLayouts.java Changeset: 5063494f Branch: premain Author: Alexey Ivanov Date: 2024-10-02 15:16:55 +0000 URL: https://git.openjdk.org/leyden/commit/5063494f5b0859a396b4e41096793c777d4650b8 8340785: Update description of PassFailJFrame and samples Reviewed-by: prr ! test/jdk/java/awt/regtesthelpers/PassFailJFrame.java Changeset: 9fc1c684 Branch: premain Author: Sorin Basca Committer: Liam Miller-Cushon Date: 2024-10-02 15:30:21 +0000 URL: https://git.openjdk.org/leyden/commit/9fc1c684421043ac8df9ac7cd10fefd2a75e7a6b 8339850: Restore the interrupt status in FileSystemPreferences.lockFile() Reviewed-by: bpb, djelinski, vtewari ! src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java Changeset: 0bdfe88e Branch: premain Author: Calvin Cheung Date: 2024-10-02 15:51:56 +0000 URL: https://git.openjdk.org/leyden/commit/0bdfe88e4c5d2f2364b07b803aae16ca0ba7b9d2 8328313: Archived module graph should allow identical --module-path to be specified during dump time and run time Reviewed-by: alanb, dholmes, iklam ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoaderExt.cpp ! src/hotspot/share/classfile/classLoaderExt.hpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp ! src/java.base/share/classes/jdk/internal/loader/BuiltinClassLoader.java ! src/java.base/share/classes/jdk/internal/loader/ClassLoaders.java ! src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java ! src/java.base/share/classes/jdk/internal/module/ModuleReferences.java ! test/hotspot/jtreg/TEST.groups ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/MainModuleOnly.java ! test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/MainModuleOnly.java + test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/ModulePathAndFMG.java ! test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/OptimizeModuleHandlingTest.java Changeset: 76283dd2 Branch: premain Author: SendaoYan Date: 2024-10-02 16:07:10 +0000 URL: https://git.openjdk.org/leyden/commit/76283dd2701ca4ad5c1c99a66f3e8e3d0fe55d44 8341246: Test com/sun/tools/attach/PermissionTest.java fails access denied after JDK-8327114 Reviewed-by: kevinw, sgehwolf ! test/jdk/com/sun/tools/attach/java.policy.allow Changeset: c43202ba Branch: premain Author: Alexey Ivanov Date: 2024-10-02 16:10:48 +0000 URL: https://git.openjdk.org/leyden/commit/c43202baf6eb7e49ec458037971a9efa392d053e 8341037: Use standard layouts in DefaultFrameIconTest.java and MenuCrash.java Reviewed-by: azvegint, prr ! test/jdk/java/awt/Frame/DefaultFrameIconTest.java ! test/jdk/java/awt/Frame/MenuCrash.java Changeset: dc0ce1b2 Branch: premain Author: Kim Barrett Date: 2024-10-02 21:58:26 +0000 URL: https://git.openjdk.org/leyden/commit/dc0ce1b2f2ebf457de9524adcbce2b473749e815 8341336: Fix -Wzero-as-null-pointer-constant warnings in PRODUCT-only code Reviewed-by: stefank, iwalulya, shade ! src/hotspot/share/c1/c1_LIR.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.hpp ! src/hotspot/share/oops/constantPool.hpp ! src/hotspot/share/opto/memnode.hpp ! src/hotspot/share/utilities/macros.hpp Changeset: 57c1db58 Branch: premain Author: William Kemper Date: 2024-10-02 22:54:18 +0000 URL: https://git.openjdk.org/leyden/commit/57c1db5843db5f2c864318f3234767f436a836e3 8332697: ubsan: shenandoahSimpleBitMap.inline.hpp:68:23: runtime error: signed integer overflow: -9223372036854775808 - 1 cannot be represented in type 'long int' Reviewed-by: phh, kdnilsen ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.inline.hpp Changeset: bdfb41f9 Branch: premain Author: Weijun Wang Date: 2024-10-02 22:55:50 +0000 URL: https://git.openjdk.org/leyden/commit/bdfb41f977258831e4b0ceaef5d016d095ab6e7f 8309841: Jarsigner should print a warning if an entry is removed Reviewed-by: mullan, hchao ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources.java + test/jdk/sun/security/tools/jarsigner/RemovedFiles.java + test/lib-test/jdk/test/lib/util/JarUtilsTest.java ! test/lib/jdk/test/lib/util/JarUtils.java Changeset: 602408e4 Branch: premain Author: Prasanta Sadhukhan Date: 2024-10-03 02:51:23 +0000 URL: https://git.openjdk.org/leyden/commit/602408e4f3848b30299ea94264e88ead5361a310 8341177: Opensource few List and a Window test Reviewed-by: prr + test/jdk/java/awt/List/ActionEventWhenHitEnterTest.java + test/jdk/java/awt/List/ListAddPerfTest.java + test/jdk/java/awt/List/MouseDraggedOriginatedByScrollBarTest.java + test/jdk/java/awt/Window/bug4189244.java Changeset: 50ec1691 Branch: premain Author: Abhishek Kumar Date: 2024-10-03 04:16:10 +0000 URL: https://git.openjdk.org/leyden/commit/50ec169116b486a49dc2dcb4218264bd48db79cc 8341191: Open source few more AWT FileDialog tests Reviewed-by: prr, psadhukhan + test/jdk/java/awt/FileDialog/KeyboardInteractionTest.java + test/jdk/java/awt/FileDialog/PathChoiceDisposeTest.java + test/jdk/java/awt/FileDialog/PathChoiceWorkArrowsTest.java + test/jdk/java/awt/FileDialog/SavedDirInitTest.java Changeset: ff3e849b Branch: premain Author: Alexander Zvegintsev Date: 2024-10-03 05:31:10 +0000 URL: https://git.openjdk.org/leyden/commit/ff3e849b8a1de3741dcd728636e1a804996f96fe 8341239: Open source closed frame tests # 3 Reviewed-by: prr + test/jdk/java/awt/Frame/FrameMenuPackTest.java + test/jdk/java/awt/Frame/FrameResizeTest/FrameResizeTest_3.java + test/jdk/java/awt/Frame/FrameResizeTest/FrameResizeTest_4.java + test/jdk/java/awt/Frame/FrameResizeTest/FrameResizeTest_5.java Changeset: c6e7e551 Branch: premain Author: Aleksey Shipilev Date: 2024-10-03 07:25:42 +0000 URL: https://git.openjdk.org/leyden/commit/c6e7e551928c04b74775b5d4c03eb31232aeb2c9 8341091: CDS: Segmented roots array misses roots Reviewed-by: adinn, iklam ! src/hotspot/share/cds/archiveHeapLoader.cpp ! src/hotspot/share/cds/archiveHeapWriter.cpp ! src/hotspot/share/cds/archiveUtils.hpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp Changeset: b187389b Branch: premain Author: iklam Date: 2024-10-08 20:16:55 +0000 URL: https://git.openjdk.org/leyden/commit/b187389b2399ce7713b44c5fc9883ef65d9dfd6e Merge branch 'master' into premain ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/share/cds/archiveHeapLoader.cpp ! src/hotspot/share/cds/archiveHeapWriter.cpp ! src/hotspot/share/cds/archiveUtils.hpp ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/classListParser.cpp ! src/hotspot/share/cds/classListWriter.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoader.hpp ! src/hotspot/share/classfile/classLoaderExt.cpp ! src/hotspot/share/classfile/classLoaderExt.hpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/code/dependencyContext.cpp ! src/hotspot/share/code/dependencyContext.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.hpp ! src/hotspot/share/oops/compressedOops.cpp ! src/hotspot/share/oops/constantPool.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/java.base/share/classes/java/lang/Boolean.java ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/jdk/internal/loader/BuiltinClassLoader.java ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/TEST.ROOT ! test/hotspot/jtreg/TEST.groups ! test/jtreg-ext/requires/VMProps.java ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/share/cds/archiveHeapLoader.cpp ! src/hotspot/share/cds/archiveHeapWriter.cpp ! src/hotspot/share/cds/archiveUtils.hpp ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/classListParser.cpp ! src/hotspot/share/cds/classListWriter.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoader.hpp ! src/hotspot/share/classfile/classLoaderExt.cpp ! src/hotspot/share/classfile/classLoaderExt.hpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/code/dependencyContext.cpp ! src/hotspot/share/code/dependencyContext.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.hpp ! src/hotspot/share/oops/compressedOops.cpp ! src/hotspot/share/oops/constantPool.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/java.base/share/classes/java/lang/Boolean.java ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/jdk/internal/loader/BuiltinClassLoader.java ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/TEST.ROOT ! test/hotspot/jtreg/TEST.groups ! test/jtreg-ext/requires/VMProps.java From ioi.lam at oracle.com Wed Oct 9 06:08:34 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Tue, 8 Oct 2024 23:08:34 -0700 Subject: [premain] need help merging g1BarrierSetC2.cpp Message-ID: In the premain branch, we have made some changes in g1BarrierSetC2.cpp ??? commit cc111760a0dd123935e039feb19eaac742f865b2 ??? Author: Vladimir Kozlov ??? Date:?? Mon Aug 26 14:21:28 2024 ??? Cleanup AOT runtime constants code ??? commit c319a3ee2be0236feab88c9be66d71e6e93b53fc ??? Author: Andrew Dinn ??? Date:?? Wed Aug 21 07:48:22 2024 ??? AOT G1 barrier loads region grain and card shifts via runtime constants data area Recently, the following changes in g1BarrierSetC2.cpp have been pushed to mainline that caused conflicts with the leyden changes. ??? commit 81ebbb2463df8b014bb209dc4028668fc78e8327 ??? Author: Roberto Casta?eda Lozano ??? Date:?? Mon Oct 7 01:28:18 2024 ??? 8341525: G1: use bit clearing to remove tightly-coupled initialization store pre-barriers ??? commit 0b467e902d591ae9feeec1669918d1588987cd1c ??? Author: Roberto Casta?eda Lozano ??? Date:?? Thu Oct 3 01:36:33 2024 ??? 8334060: Implementation of Late Barrier Expansion for G1 When I tried merging with mainline, I couldn't merge these changes, so I ended up merging to this one (just an hour prior to 0b467e9), and pushed the result to premain. ??? commit c6e7e551928c04b74775b5d4c03eb31232aeb2c9 (master) ??? Author: Aleksey Shipilev ??? Date:?? Thu Oct 3 00:25:42 2024 ??? 8341091: CDS: Segmented roots array misses roots Andrew Dinn or Vladimir Kozlov, could you help merging with mainline? Thanks - Ioi From shade at openjdk.org Wed Oct 9 06:29:40 2024 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 9 Oct 2024 06:29:40 GMT Subject: RFR: Enable 1-step workflow with Shenandoah GC [v4] In-Reply-To: References: Message-ID: > WIP, includes upstream [JDK-8293650](https://bugs.openjdk.org/browse/JDK-8293650). > > I checked this works well: > > > #!/bin/bash > make images > J=build/macosx-aarch64-server-fastdebug/images/jdk/bin/java > rm -fv JavacBenchApp.cds* > $J -XX:+UseShenandoahGC -XX:CacheDataStore=JavacBenchApp.cds -cp JavacBenchApp.jar JavacBenchApp 50 > $J -XX:+UseShenandoahGC -XX:CacheDataStore=JavacBenchApp.cds -cp JavacBenchApp.jar JavacBenchApp 50 > > > I'll look around what other tests I need to run. Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision: - Fix Shenandoah stub names - Merge branch 'premain' into shenandoah-support - Make sure LeydenGCFlags passes when some GCs are not configured - Shenandoah support ------------- Changes: - all: https://git.openjdk.org/leyden/pull/8/files - new: https://git.openjdk.org/leyden/pull/8/files/f7e41c00..75872f62 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=8&range=03 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=8&range=02-03 Stats: 20270 lines in 426 files changed: 15466 ins; 2487 del; 2317 mod Patch: https://git.openjdk.org/leyden/pull/8.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/8/head:pull/8 PR: https://git.openjdk.org/leyden/pull/8 From shade at openjdk.org Wed Oct 9 07:48:23 2024 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 9 Oct 2024 07:48:23 GMT Subject: RFR: Enable 1-step workflow with Shenandoah GC [v2] In-Reply-To: References: Message-ID: On Tue, 17 Sep 2024 04:40:40 GMT, Ioi Lam wrote: >> Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. > > LGTM Thanks for the merge, @iklam! I think we are ready to integrate this. ------------- PR Comment: https://git.openjdk.org/leyden/pull/8#issuecomment-2401583727 From duke at openjdk.org Wed Oct 9 08:09:33 2024 From: duke at openjdk.org (duke) Date: Wed, 9 Oct 2024 08:09:33 GMT Subject: RFR: Enable 1-step workflow with Shenandoah GC [v4] In-Reply-To: References: Message-ID: On Wed, 9 Oct 2024 06:29:40 GMT, Aleksey Shipilev wrote: >> WIP, includes upstream [JDK-8293650](https://bugs.openjdk.org/browse/JDK-8293650). >> >> I checked this works well: >> >> >> #!/bin/bash >> make images >> J=build/macosx-aarch64-server-fastdebug/images/jdk/bin/java >> rm -fv JavacBenchApp.cds* >> $J -XX:+UseShenandoahGC -XX:CacheDataStore=JavacBenchApp.cds -cp JavacBenchApp.jar JavacBenchApp 50 >> $J -XX:+UseShenandoahGC -XX:CacheDataStore=JavacBenchApp.cds -cp JavacBenchApp.jar JavacBenchApp 50 >> >> >> I'll look around what other tests I need to run. > > Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision: > > - Fix Shenandoah stub names > - Merge branch 'premain' into shenandoah-support > - Make sure LeydenGCFlags passes when some GCs are not configured > - Shenandoah support @shipilev Your change (at version 75872f62857a9d921651a8010473299658df7713) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/leyden/pull/8#issuecomment-2401631403 From adinn at redhat.com Wed Oct 9 14:46:31 2024 From: adinn at redhat.com (Andrew Dinn) Date: Wed, 9 Oct 2024 15:46:31 +0100 Subject: [premain] need help merging g1BarrierSetC2.cpp In-Reply-To: References: Message-ID: <979c8d6e-cff9-473d-b5eb-b0b8b3a05f8c@redhat.com> Hi Ioi/Vladimir, I merged the rest of master into premain, fixed the conflicts and pushed the result to my premain branch. https://github.com/adinn/leyden/tree/premain The merged code built and ran ok on aarch64. On x86 it built ok but crashed during the assembly run. The problem was that the x86 post barrier can now be called from C2 with tmp and tmp2 allocated by the register allocator. So, that means both rcx and rscratch1 are possible values for register tmp. This is a problem because the x86 AOT variant of the barrier code pushes rcx and rscratch1 to the stack, loads the region grain shift address in to rscratch1 and the grain shift into into rcx. It has to be able to use rcx in order to be able to execute shrptr(tmp). However, if tmp == rcx then the unshifted value is restored into tmp when rcx is popped. I pushed a follow-up patch to my premain that avoids this problem. It uses a pushed register to do the shift and ensures that register differs from tmp and rcx. regards, Andrew Dinn ----------- On 09/10/2024 07:08, ioi.lam at oracle.com wrote: > In the premain branch, we have made some changes in g1BarrierSetC2.cpp > > ??? commit cc111760a0dd123935e039feb19eaac742f865b2 > ??? Author: Vladimir Kozlov > ??? Date:?? Mon Aug 26 14:21:28 2024 > > ??? Cleanup AOT runtime constants code > > ??? commit c319a3ee2be0236feab88c9be66d71e6e93b53fc > ??? Author: Andrew Dinn > ??? Date:?? Wed Aug 21 07:48:22 2024 > > ??? AOT G1 barrier loads region grain and card shifts via runtime > constants data area > > Recently, the following changes in g1BarrierSetC2.cpp have been pushed > to mainline that caused conflicts with the leyden changes. > > ??? commit 81ebbb2463df8b014bb209dc4028668fc78e8327 > ??? Author: Roberto Casta?eda Lozano > ??? Date:?? Mon Oct 7 01:28:18 2024 > > ??? 8341525: G1: use bit clearing to remove tightly-coupled > initialization store pre-barriers > > ??? commit 0b467e902d591ae9feeec1669918d1588987cd1c > ??? Author: Roberto Casta?eda Lozano > ??? Date:?? Thu Oct 3 01:36:33 2024 > > ??? 8334060: Implementation of Late Barrier Expansion for G1 > > > When I tried merging with mainline, I couldn't merge these changes, so I > ended up merging to this one (just an hour prior to 0b467e9), and pushed > the result to premain. > > ??? commit c6e7e551928c04b74775b5d4c03eb31232aeb2c9 (master) > ??? Author: Aleksey Shipilev > ??? Date:?? Thu Oct 3 00:25:42 2024 > > ??? 8341091: CDS: Segmented roots array misses roots > > Andrew Dinn or Vladimir Kozlov, could you help merging with mainline? > > Thanks > > - Ioi > From iklam at openjdk.org Wed Oct 9 15:01:30 2024 From: iklam at openjdk.org (Ioi Lam) Date: Wed, 9 Oct 2024 15:01:30 GMT Subject: git: openjdk/leyden: premain: Enable 1-step workflow with Shenandoah GC Message-ID: <395d5ecd-67e5-40df-a7e4-37d11798d64e@openjdk.org> Changeset: 4e0412e6 Branch: premain Author: Aleksey Shipilev Committer: Ioi Lam Date: 2024-10-09 14:59:22 +0000 URL: https://git.openjdk.org/leyden/commit/4e0412e6c004931871b1f37a09cfb593f6b7f7b2 Enable 1-step workflow with Shenandoah GC Reviewed-by: iklam ! README.md ! src/hotspot/share/cds/heapShared.hpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/code/SCCache.cpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp ! test/hotspot/jtreg/runtime/cds/appcds/leyden/LeydenGCFlags.java From shade at openjdk.org Wed Oct 9 15:03:44 2024 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 9 Oct 2024 15:03:44 GMT Subject: Integrated: Enable 1-step workflow with Shenandoah GC In-Reply-To: References: Message-ID: On Mon, 22 Jul 2024 12:00:12 GMT, Aleksey Shipilev wrote: > WIP, includes upstream [JDK-8293650](https://bugs.openjdk.org/browse/JDK-8293650). > > I checked this works well: > > > #!/bin/bash > make images > J=build/macosx-aarch64-server-fastdebug/images/jdk/bin/java > rm -fv JavacBenchApp.cds* > $J -XX:+UseShenandoahGC -XX:CacheDataStore=JavacBenchApp.cds -cp JavacBenchApp.jar JavacBenchApp 50 > $J -XX:+UseShenandoahGC -XX:CacheDataStore=JavacBenchApp.cds -cp JavacBenchApp.jar JavacBenchApp 50 > > > I'll look around what other tests I need to run. This pull request has now been integrated. Changeset: 4e0412e6 Author: Aleksey Shipilev Committer: Ioi Lam URL: https://git.openjdk.org/leyden/commit/4e0412e6c004931871b1f37a09cfb593f6b7f7b2 Stats: 73 lines in 6 files changed: 49 ins; 3 del; 21 mod Enable 1-step workflow with Shenandoah GC Reviewed-by: iklam ------------- PR: https://git.openjdk.org/leyden/pull/8 From ioi.lam at oracle.com Wed Oct 9 15:23:51 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Wed, 9 Oct 2024 08:23:51 -0700 Subject: [premain] need help merging g1BarrierSetC2.cpp In-Reply-To: <979c8d6e-cff9-473d-b5eb-b0b8b3a05f8c@redhat.com> References: <979c8d6e-cff9-473d-b5eb-b0b8b3a05f8c@redhat.com> Message-ID: <28476c49-9f26-4f0a-baf0-f85469e8391a@oracle.com> Thanks Andrew. I'll test your merge on our CI and then push to premain. - Ioi On 10/9/24 7:46 AM, Andrew Dinn wrote: > Hi Ioi/Vladimir, > > I merged the rest of master into premain, fixed the conflicts and > pushed the result to my premain branch. > > https://urldefense.com/v3/__https://github.com/adinn/leyden/tree/premain__;!!ACWV5N9M2RV99hQ!L_H5Q7HrxgwFxgFHEDodn9bmN5PlYgD0PbjCSMB0D8AJpVB-zvJog8wGxXubkqGBozWm8phOCOc$ > > The merged code built and ran ok on aarch64. On x86 it built ok but > crashed during the assembly run. > > The problem was that the x86 post barrier can now be called from C2 > with tmp and tmp2 allocated by the register allocator. So, that means > both rcx and rscratch1 are possible values for register tmp. This is a > problem because the x86 AOT variant of the barrier code pushes rcx and > rscratch1 to the stack, loads the region grain shift address in to > rscratch1 and the grain shift into into rcx. It has to be able to use > rcx in order to be able to execute shrptr(tmp). However, if tmp == rcx > then the unshifted value is restored into tmp when rcx is popped. > > I pushed a follow-up patch to my premain that avoids this problem. It > uses a pushed register to do the shift and ensures that register > differs from tmp and rcx. > > regards, > > > Andrew Dinn > ----------- > > > On 09/10/2024 07:08, ioi.lam at oracle.com wrote: >> In the premain branch, we have made some changes in g1BarrierSetC2.cpp >> >> ???? commit cc111760a0dd123935e039feb19eaac742f865b2 >> ???? Author: Vladimir Kozlov >> ???? Date:?? Mon Aug 26 14:21:28 2024 >> >> ???? Cleanup AOT runtime constants code >> >> ???? commit c319a3ee2be0236feab88c9be66d71e6e93b53fc >> ???? Author: Andrew Dinn >> ???? Date:?? Wed Aug 21 07:48:22 2024 >> >> ???? AOT G1 barrier loads region grain and card shifts via runtime >> constants data area >> >> Recently, the following changes in g1BarrierSetC2.cpp have been >> pushed to mainline that caused conflicts with the leyden changes. >> >> ???? commit 81ebbb2463df8b014bb209dc4028668fc78e8327 >> ???? Author: Roberto Casta?eda Lozano >> ???? Date:?? Mon Oct 7 01:28:18 2024 >> >> ???? 8341525: G1: use bit clearing to remove tightly-coupled >> initialization store pre-barriers >> >> ???? commit 0b467e902d591ae9feeec1669918d1588987cd1c >> ???? Author: Roberto Casta?eda Lozano >> ???? Date:?? Thu Oct 3 01:36:33 2024 >> >> ???? 8334060: Implementation of Late Barrier Expansion for G1 >> >> >> When I tried merging with mainline, I couldn't merge these changes, >> so I ended up merging to this one (just an hour prior to 0b467e9), >> and pushed the result to premain. >> >> ???? commit c6e7e551928c04b74775b5d4c03eb31232aeb2c9 (master) >> ???? Author: Aleksey Shipilev >> ???? Date:?? Thu Oct 3 00:25:42 2024 >> >> ???? 8341091: CDS: Segmented roots array misses roots >> >> Andrew Dinn or Vladimir Kozlov, could you help merging with mainline? >> >> Thanks >> >> - Ioi >> > From ioi.lam at oracle.com Wed Oct 9 16:02:22 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Wed, 9 Oct 2024 09:02:22 -0700 Subject: [premain] need help merging g1BarrierSetC2.cpp In-Reply-To: <28476c49-9f26-4f0a-baf0-f85469e8391a@oracle.com> References: <979c8d6e-cff9-473d-b5eb-b0b8b3a05f8c@redhat.com> <28476c49-9f26-4f0a-baf0-f85469e8391a@oracle.com> Message-ID: <59f862d1-2834-4247-884e-4a956ab3edb0@oracle.com> I am seeing some failures on linux/x64 with various assertion failures in the GC code, either during collection or gc verification.? I merged up to d504df0e3d7928f0e7ff10ace03e002953c6a58f from Andrew's repo. runtime/cds/appcds/applications/HelidonQuickStartSE.java#leyden runtime/cds/appcds/applications/HelidonQuickStartSE.java#leyden_old runtime/cds/appcds/applications/JavacBench.java#leyden runtime/cds/appcds/applications/JavacBench.java#leyden_old runtime/cds/appcds/applications/SpringPetClinic.java#leyden_old runtime/cds/appcds/leyden/ExcludedClasses.java A sample stack trace #? SIGSEGV (0xb) at pc=0x00007ff1d9260f78, pid=472145, tid=472252 V? [libjvm.so+0x636f78]? oopDesc::size_given_klass(Klass*)+0x28 (oop.inline.hpp:196) V? [libjvm.so+0xd9e66d] G1ParScanThreadState::do_copy_to_survivor_space(G1HeapRegionAttr, oop, markWord)+0x9d? (g1ParScanThreadState.cpp:480) V? [libjvm.so+0xda43db]? void G1ParScanThreadState::do_oop_evac(narrowOop*)+0x12b (g1ParScanThreadState.cpp:221) V? [libjvm.so+0xd9fa98] G1ParScanThreadState::trim_queue_to_threshold(unsigned int)+0x488 (g1ParScanThreadState.cpp:334) V? [libjvm.so+0xdb96fa] G1ParScanThreadState::trim_queue_partially()+0x3a (g1ParScanThreadState.inline.hpp:53) V? [libjvm.so+0xdbe943]? void G1ScanHRForRegionClosure::ChunkScanner::on_dirty_cards(G1ScanHRForRegionClosure::scan_heap_roots(G1HeapRegion*)::{lambda(unsigned char*, unsigned char*)#1}&&)+0x2c3? (g1RemSet.cpp:519) V? [libjvm.so+0xdb6f39] G1RemSet::scan_heap_roots(G1ParScanThreadState*, unsigned int, G1GCPhaseTimes::GCParPhases, G1GCPhaseTimes::GCParPhases, bool)+0x5e9? (g1RemSet.cpp:664) V? [libjvm.so+0xdea89b] G1EvacuateRegionsTask::scan_roots(G1ParScanThreadState*, unsigned int)+0x4b? (g1YoungCollector.cpp:670) V? [libjvm.so+0xdeac6a]? G1EvacuateRegionsBaseTask::work(unsigned int)+0x8a? (g1YoungCollector.cpp:656) V? [libjvm.so+0x1a2b480]? WorkerThread::run()+0x80 (workerThread.cpp:70) V? [libjvm.so+0x18cc40a]? Thread::call_run()+0xba (thread.cpp:245) V? [libjvm.so+0x159e0f9]? thread_native_entry(Thread*)+0x1c9 (os_linux.cpp:858) siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x000000000000010e I'll run tests on aarch64 as well and will report back when I get the results. Thanks - Ioi On 10/9/24 8:23 AM, ioi.lam at oracle.com wrote: > Thanks Andrew. > > I'll test your merge on our CI and then push to premain. > > - Ioi > > On 10/9/24 7:46 AM, Andrew Dinn wrote: >> Hi Ioi/Vladimir, >> >> I merged the rest of master into premain, fixed the conflicts and >> pushed the result to my premain branch. >> >> https://urldefense.com/v3/__https://github.com/adinn/leyden/tree/premain__;!!ACWV5N9M2RV99hQ!L_H5Q7HrxgwFxgFHEDodn9bmN5PlYgD0PbjCSMB0D8AJpVB-zvJog8wGxXubkqGBozWm8phOCOc$ >> >> The merged code built and ran ok on aarch64. On x86 it built ok but >> crashed during the assembly run. >> >> The problem was that the x86 post barrier can now be called from C2 >> with tmp and tmp2 allocated by the register allocator. So, that means >> both rcx and rscratch1 are possible values for register tmp. This is >> a problem because the x86 AOT variant of the barrier code pushes rcx >> and rscratch1 to the stack, loads the region grain shift address in >> to rscratch1 and the grain shift into into rcx. It has to be able to >> use rcx in order to be able to execute shrptr(tmp). However, if tmp >> == rcx then the unshifted value is restored into tmp when rcx is popped. >> >> I pushed a follow-up patch to my premain that avoids this problem. It >> uses a pushed register to do the shift and ensures that register >> differs from tmp and rcx. >> >> regards, >> >> >> Andrew Dinn >> ----------- >> >> >> On 09/10/2024 07:08, ioi.lam at oracle.com wrote: >>> In the premain branch, we have made some changes in g1BarrierSetC2.cpp >>> >>> ???? commit cc111760a0dd123935e039feb19eaac742f865b2 >>> ???? Author: Vladimir Kozlov >>> ???? Date:?? Mon Aug 26 14:21:28 2024 >>> >>> ???? Cleanup AOT runtime constants code >>> >>> ???? commit c319a3ee2be0236feab88c9be66d71e6e93b53fc >>> ???? Author: Andrew Dinn >>> ???? Date:?? Wed Aug 21 07:48:22 2024 >>> >>> ???? AOT G1 barrier loads region grain and card shifts via runtime >>> constants data area >>> >>> Recently, the following changes in g1BarrierSetC2.cpp have been >>> pushed to mainline that caused conflicts with the leyden changes. >>> >>> ???? commit 81ebbb2463df8b014bb209dc4028668fc78e8327 >>> ???? Author: Roberto Casta?eda Lozano >>> ???? Date:?? Mon Oct 7 01:28:18 2024 >>> >>> ???? 8341525: G1: use bit clearing to remove tightly-coupled >>> initialization store pre-barriers >>> >>> ???? commit 0b467e902d591ae9feeec1669918d1588987cd1c >>> ???? Author: Roberto Casta?eda Lozano >>> ???? Date:?? Thu Oct 3 01:36:33 2024 >>> >>> ???? 8334060: Implementation of Late Barrier Expansion for G1 >>> >>> >>> When I tried merging with mainline, I couldn't merge these changes, >>> so I ended up merging to this one (just an hour prior to 0b467e9), >>> and pushed the result to premain. >>> >>> ???? commit c6e7e551928c04b74775b5d4c03eb31232aeb2c9 (master) >>> ???? Author: Aleksey Shipilev >>> ???? Date:?? Thu Oct 3 00:25:42 2024 >>> >>> ???? 8341091: CDS: Segmented roots array misses roots >>> >>> Andrew Dinn or Vladimir Kozlov, could you help merging with mainline? >>> >>> Thanks >>> >>> - Ioi >>> >> From ioi.lam at oracle.com Wed Oct 9 21:23:09 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Wed, 9 Oct 2024 14:23:09 -0700 Subject: [premain] need help merging g1BarrierSetC2.cpp In-Reply-To: <59f862d1-2834-4247-884e-4a956ab3edb0@oracle.com> References: <979c8d6e-cff9-473d-b5eb-b0b8b3a05f8c@redhat.com> <28476c49-9f26-4f0a-baf0-f85469e8391a@oracle.com> <59f862d1-2834-4247-884e-4a956ab3edb0@oracle.com> Message-ID: <7495f174-5980-4b5a-953c-8cdc0a095979@oracle.com> I'm also seeing failures on macos-aarch64 and linux-aarch64.? In addition to the tests I listed below, these two also fail reliably runtime/cds/appcds/applications/MicronautFirstApp.java#leyden runtime/cds/appcds/applications/MicronautFirstApp.java#leyden_old - Ioi On 10/9/24 9:02 AM, ioi.lam at oracle.com wrote: > I am seeing some failures on linux/x64 with various assertion failures > in the GC code, either during collection or gc verification.? I merged > up to d504df0e3d7928f0e7ff10ace03e002953c6a58f from Andrew's repo. > > runtime/cds/appcds/applications/HelidonQuickStartSE.java#leyden > runtime/cds/appcds/applications/HelidonQuickStartSE.java#leyden_old > runtime/cds/appcds/applications/JavacBench.java#leyden > runtime/cds/appcds/applications/JavacBench.java#leyden_old > runtime/cds/appcds/applications/SpringPetClinic.java#leyden_old > runtime/cds/appcds/leyden/ExcludedClasses.java > > A sample stack trace > > #? SIGSEGV (0xb) at pc=0x00007ff1d9260f78, pid=472145, tid=472252 > V? [libjvm.so+0x636f78]? oopDesc::size_given_klass(Klass*)+0x28 > (oop.inline.hpp:196) > V? [libjvm.so+0xd9e66d] > G1ParScanThreadState::do_copy_to_survivor_space(G1HeapRegionAttr, oop, > markWord)+0x9d? (g1ParScanThreadState.cpp:480) > V? [libjvm.so+0xda43db]? void > G1ParScanThreadState::do_oop_evac(narrowOop*)+0x12b > (g1ParScanThreadState.cpp:221) > V? [libjvm.so+0xd9fa98] > G1ParScanThreadState::trim_queue_to_threshold(unsigned int)+0x488 > (g1ParScanThreadState.cpp:334) > V? [libjvm.so+0xdb96fa] > G1ParScanThreadState::trim_queue_partially()+0x3a > (g1ParScanThreadState.inline.hpp:53) > V? [libjvm.so+0xdbe943]? void > G1ScanHRForRegionClosure::ChunkScanner::on_dirty_cards char*, unsigned > char*)#1}>(G1ScanHRForRegionClosure::scan_heap_roots(G1HeapRegion*)::{lambda(unsigned > char*, unsigned char*)#1}&&)+0x2c3? (g1RemSet.cpp:519) > V? [libjvm.so+0xdb6f39] > G1RemSet::scan_heap_roots(G1ParScanThreadState*, unsigned int, > G1GCPhaseTimes::GCParPhases, G1GCPhaseTimes::GCParPhases, bool)+0x5e9? > (g1RemSet.cpp:664) > V? [libjvm.so+0xdea89b] > G1EvacuateRegionsTask::scan_roots(G1ParScanThreadState*, unsigned > int)+0x4b? (g1YoungCollector.cpp:670) > V? [libjvm.so+0xdeac6a]? G1EvacuateRegionsBaseTask::work(unsigned > int)+0x8a? (g1YoungCollector.cpp:656) > V? [libjvm.so+0x1a2b480]? WorkerThread::run()+0x80 (workerThread.cpp:70) > V? [libjvm.so+0x18cc40a]? Thread::call_run()+0xba (thread.cpp:245) > V? [libjvm.so+0x159e0f9]? thread_native_entry(Thread*)+0x1c9 > (os_linux.cpp:858) > > siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: > 0x000000000000010e > > I'll run tests on aarch64 as well and will report back when I get the > results. > > Thanks > > - Ioi > > > On 10/9/24 8:23 AM, ioi.lam at oracle.com wrote: >> Thanks Andrew. >> >> I'll test your merge on our CI and then push to premain. >> >> - Ioi >> >> On 10/9/24 7:46 AM, Andrew Dinn wrote: >>> Hi Ioi/Vladimir, >>> >>> I merged the rest of master into premain, fixed the conflicts and >>> pushed the result to my premain branch. >>> >>> https://urldefense.com/v3/__https://github.com/adinn/leyden/tree/premain__;!!ACWV5N9M2RV99hQ!L_H5Q7HrxgwFxgFHEDodn9bmN5PlYgD0PbjCSMB0D8AJpVB-zvJog8wGxXubkqGBozWm8phOCOc$ >>> >>> The merged code built and ran ok on aarch64. On x86 it built ok but >>> crashed during the assembly run. >>> >>> The problem was that the x86 post barrier can now be called from C2 >>> with tmp and tmp2 allocated by the register allocator. So, that >>> means both rcx and rscratch1 are possible values for register tmp. >>> This is a problem because the x86 AOT variant of the barrier code >>> pushes rcx and rscratch1 to the stack, loads the region grain shift >>> address in to rscratch1 and the grain shift into into rcx. It has to >>> be able to use rcx in order to be able to execute shrptr(tmp). >>> However, if tmp == rcx then the unshifted value is restored into tmp >>> when rcx is popped. >>> >>> I pushed a follow-up patch to my premain that avoids this problem. >>> It uses a pushed register to do the shift and ensures that register >>> differs from tmp and rcx. >>> >>> regards, >>> >>> >>> Andrew Dinn >>> ----------- >>> >>> >>> On 09/10/2024 07:08, ioi.lam at oracle.com wrote: >>>> In the premain branch, we have made some changes in g1BarrierSetC2.cpp >>>> >>>> ???? commit cc111760a0dd123935e039feb19eaac742f865b2 >>>> ???? Author: Vladimir Kozlov >>>> ???? Date:?? Mon Aug 26 14:21:28 2024 >>>> >>>> ???? Cleanup AOT runtime constants code >>>> >>>> ???? commit c319a3ee2be0236feab88c9be66d71e6e93b53fc >>>> ???? Author: Andrew Dinn >>>> ???? Date:?? Wed Aug 21 07:48:22 2024 >>>> >>>> ???? AOT G1 barrier loads region grain and card shifts via runtime >>>> constants data area >>>> >>>> Recently, the following changes in g1BarrierSetC2.cpp have been >>>> pushed to mainline that caused conflicts with the leyden changes. >>>> >>>> ???? commit 81ebbb2463df8b014bb209dc4028668fc78e8327 >>>> ???? Author: Roberto Casta?eda Lozano >>>> ???? Date:?? Mon Oct 7 01:28:18 2024 >>>> >>>> ???? 8341525: G1: use bit clearing to remove tightly-coupled >>>> initialization store pre-barriers >>>> >>>> ???? commit 0b467e902d591ae9feeec1669918d1588987cd1c >>>> ???? Author: Roberto Casta?eda Lozano >>>> ???? Date:?? Thu Oct 3 01:36:33 2024 >>>> >>>> ???? 8334060: Implementation of Late Barrier Expansion for G1 >>>> >>>> >>>> When I tried merging with mainline, I couldn't merge these changes, >>>> so I ended up merging to this one (just an hour prior to 0b467e9), >>>> and pushed the result to premain. >>>> >>>> ???? commit c6e7e551928c04b74775b5d4c03eb31232aeb2c9 (master) >>>> ???? Author: Aleksey Shipilev >>>> ???? Date:?? Thu Oct 3 00:25:42 2024 >>>> >>>> ???? 8341091: CDS: Segmented roots array misses roots >>>> >>>> Andrew Dinn or Vladimir Kozlov, could you help merging with mainline? >>>> >>>> Thanks >>>> >>>> - Ioi >>>> >>> From Matthew.Carter at microsoft.com Thu Oct 10 01:42:50 2024 From: Matthew.Carter at microsoft.com (Mat Carter) Date: Thu, 10 Oct 2024 01:42:50 +0000 Subject: Optimal place for inserting calls to the VM from interpreted java methods Message-ID: Is there a place to encode calls to the VM in the interpreted methods other than the method prologs? I've recently discovered the interpreted method adaptors which seems like a candidate, but there's no examples of the adaptors calling into the VM. Follows is the rational as to why I'm looking for an alternative to the method prologs The AOTEndTrainingOnMethodEntry feature [1] introduces calls from java methods into the VM (upcalls) when specific methods are entered. The methods are identified via a pattern in a similar manner to the CompileOnly option. Following the initial PR review we?re looking at removing the knowledge of this AOT feature from the compilers/interpreter and introducing a more generic system (RuntimeUpcalls) that can be used by other parts of the VM [2]. In building out the RuntimeUpcalls system we've come across an inefficiency that isn't an immediate problem for this feature, but should another feature use this new system then it's less than optimal. Interpreted code uses a shared method prolog (there are 8 variants for 'regular' methods [more for some special math/zip methods]), the AOTEndTrainingOnMethodEntry feature introduces a further 5 prolog types. When there is a single upcall (eg. AOTEndTrainingOnMethodEntry) to the VM everything is efficient. The inefficiency issue arises as soon as there are two or more upcalls; which upcalls relate to which methods is contained within the RuntimeUpcalls system. When the interpreter examines the method flags they only indicate whether there are any upcalls (but not how many or which ones). As the interpreter can't encode which upcalls should be called in the prolog (without an explosion of new runtime generated prologs), it needs to call the RuntimeUpcalls system which in turn iterates over the upcalls and calls the appropriate ones; the problem is that during that iteration the methods need to be compared against the pattern. So we either pay a memory cost to cache the method to upcall relationships or we pay a performance cost to repeatedly test the method against the pattern. This is not a problem for C1 and C2 as we pay this cost only when the methods are compiled and create the multiple upcalls in those methods, eliminating the need for pattern matching by the RuntimeUpcalls system during method execution Thanks in advance Mat [1] https://github.com/openjdk/leyden/pull/21 [2] https://github.com/macarte/leyden/pull/2 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 117081 bytes Desc: image.png URL: From john.r.rose at oracle.com Thu Oct 10 01:51:39 2024 From: john.r.rose at oracle.com (John Rose) Date: Thu, 10 Oct 2024 01:51:39 +0000 Subject: Optimal place for inserting calls to the VM from interpreted java methods In-Reply-To: References: Message-ID: <51B9A639-46C0-4956-A326-CFD6845C0D6B@oracle.com> Generally speaking, when trading off complexity against performance in interpreted code paths, performance always loses. We only add complexity after the less complex solution has proven itself to be a measurable problem for real workloads. On Oct 9, 2024, at 6:43?PM, Mat Carter wrote: ? Is there a place to encode calls to the VM in the interpreted methods other than the method prologs? I've recently discovered the interpreted method adaptors which seems like a candidate, but there's no examples of the adaptors calling into the VM. Follows is the rational as to why I'm looking for an alternative to the method prologs The AOTEndTrainingOnMethodEntry feature [1] introduces calls from java methods into the VM (upcalls) when specific methods are entered. The methods are identified via a pattern in a similar manner to the CompileOnly option. Following the initial PR review we?re looking at removing the knowledge of this AOT feature from the compilers/interpreter and introducing a more generic system (RuntimeUpcalls) that can be used by other parts of the VM [2]. In building out the RuntimeUpcalls system we've come across an inefficiency that isn't an immediate problem for this feature, but should another feature use this new system then it's less than optimal. Interpreted code uses a shared method prolog (there are 8 variants for 'regular' methods [more for some special math/zip methods]), the AOTEndTrainingOnMethodEntry feature introduces a further 5 prolog types. When there is a single upcall (eg. AOTEndTrainingOnMethodEntry) to the VM everything is efficient. The inefficiency issue arises as soon as there are two or more upcalls; which upcalls relate to which methods is contained within the RuntimeUpcalls system. When the interpreter examines the method flags they only indicate whether there are any upcalls (but not how many or which ones). As the interpreter can't encode which upcalls should be called in the prolog (without an explosion of new runtime generated prologs), it needs to call the RuntimeUpcalls system which in turn iterates over the upcalls and calls the appropriate ones; the problem is that during that iteration the methods need to be compared against the pattern. So we either pay a memory cost to cache the method to upcall relationships or we pay a performance cost to repeatedly test the method against the pattern. This is not a problem for C1 and C2 as we pay this cost only when the methods are compiled and create the multiple upcalls in those methods, eliminating the need for pattern matching by the RuntimeUpcalls system during method execution Thanks in advance Mat [1] https://github.com/openjdk/leyden/pull/21 [2] https://github.com/macarte/leyden/pull/2 -------------- next part -------------- An HTML attachment was scrubbed... URL: From adinn at redhat.com Thu Oct 10 08:46:48 2024 From: adinn at redhat.com (Andrew Dinn) Date: Thu, 10 Oct 2024 09:46:48 +0100 Subject: [premain] need help merging g1BarrierSetC2.cpp In-Reply-To: <7495f174-5980-4b5a-953c-8cdc0a095979@oracle.com> References: <979c8d6e-cff9-473d-b5eb-b0b8b3a05f8c@redhat.com> <28476c49-9f26-4f0a-baf0-f85469e8391a@oracle.com> <59f862d1-2834-4247-884e-4a956ab3edb0@oracle.com> <7495f174-5980-4b5a-953c-8cdc0a095979@oracle.com> Message-ID: <5749d803-f2b7-464b-8dd8-0f3de99ae002@redhat.com> On 09/10/2024 22:23, ioi.lam at oracle.com wrote: > I'm also seeing failures on macos-aarch64 and linux-aarch64.? In > addition to the tests I listed below, these two also fail reliably > > runtime/cds/appcds/applications/MicronautFirstApp.java#leyden > runtime/cds/appcds/applications/MicronautFirstApp.java#leyden_old I'll see if I can debug these failures. regards, Andrew Dinn ----------- > On 10/9/24 9:02 AM, ioi.lam at oracle.com wrote: >> I am seeing some failures on linux/x64 with various assertion failures >> in the GC code, either during collection or gc verification.? I merged >> up to d504df0e3d7928f0e7ff10ace03e002953c6a58f from Andrew's repo. >> >> runtime/cds/appcds/applications/HelidonQuickStartSE.java#leyden >> runtime/cds/appcds/applications/HelidonQuickStartSE.java#leyden_old >> runtime/cds/appcds/applications/JavacBench.java#leyden >> runtime/cds/appcds/applications/JavacBench.java#leyden_old >> runtime/cds/appcds/applications/SpringPetClinic.java#leyden_old >> runtime/cds/appcds/leyden/ExcludedClasses.java >> >> A sample stack trace >> >> #? SIGSEGV (0xb) at pc=0x00007ff1d9260f78, pid=472145, tid=472252 >> V? [libjvm.so+0x636f78]? oopDesc::size_given_klass(Klass*)+0x28 >> (oop.inline.hpp:196) >> V? [libjvm.so+0xd9e66d] >> G1ParScanThreadState::do_copy_to_survivor_space(G1HeapRegionAttr, oop, >> markWord)+0x9d? (g1ParScanThreadState.cpp:480) >> V? [libjvm.so+0xda43db]? void >> G1ParScanThreadState::do_oop_evac(narrowOop*)+0x12b >> (g1ParScanThreadState.cpp:221) >> V? [libjvm.so+0xd9fa98] >> G1ParScanThreadState::trim_queue_to_threshold(unsigned int)+0x488 >> (g1ParScanThreadState.cpp:334) >> V? [libjvm.so+0xdb96fa] >> G1ParScanThreadState::trim_queue_partially()+0x3a >> (g1ParScanThreadState.inline.hpp:53) >> V? [libjvm.so+0xdbe943]? void >> G1ScanHRForRegionClosure::ChunkScanner::on_dirty_cards(G1ScanHRForRegionClosure::scan_heap_roots(G1HeapRegion*)::{lambda(unsigned char*, unsigned char*)#1}&&)+0x2c3? (g1RemSet.cpp:519) >> V? [libjvm.so+0xdb6f39] >> G1RemSet::scan_heap_roots(G1ParScanThreadState*, unsigned int, >> G1GCPhaseTimes::GCParPhases, G1GCPhaseTimes::GCParPhases, bool)+0x5e9 >> (g1RemSet.cpp:664) >> V? [libjvm.so+0xdea89b] >> G1EvacuateRegionsTask::scan_roots(G1ParScanThreadState*, unsigned >> int)+0x4b? (g1YoungCollector.cpp:670) >> V? [libjvm.so+0xdeac6a]? G1EvacuateRegionsBaseTask::work(unsigned >> int)+0x8a? (g1YoungCollector.cpp:656) >> V? [libjvm.so+0x1a2b480]? WorkerThread::run()+0x80 (workerThread.cpp:70) >> V? [libjvm.so+0x18cc40a]? Thread::call_run()+0xba (thread.cpp:245) >> V? [libjvm.so+0x159e0f9]? thread_native_entry(Thread*)+0x1c9 >> (os_linux.cpp:858) >> >> siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: >> 0x000000000000010e >> >> I'll run tests on aarch64 as well and will report back when I get the >> results. >> >> Thanks >> >> - Ioi >> >> >> On 10/9/24 8:23 AM, ioi.lam at oracle.com wrote: >>> Thanks Andrew. >>> >>> I'll test your merge on our CI and then push to premain. >>> >>> - Ioi >>> >>> On 10/9/24 7:46 AM, Andrew Dinn wrote: >>>> Hi Ioi/Vladimir, >>>> >>>> I merged the rest of master into premain, fixed the conflicts and >>>> pushed the result to my premain branch. >>>> >>>> https://urldefense.com/v3/__https://github.com/adinn/leyden/tree/premain__;!!ACWV5N9M2RV99hQ!L_H5Q7HrxgwFxgFHEDodn9bmN5PlYgD0PbjCSMB0D8AJpVB-zvJog8wGxXubkqGBozWm8phOCOc$ >>>> The merged code built and ran ok on aarch64. On x86 it built ok but >>>> crashed during the assembly run. >>>> >>>> The problem was that the x86 post barrier can now be called from C2 >>>> with tmp and tmp2 allocated by the register allocator. So, that >>>> means both rcx and rscratch1 are possible values for register tmp. >>>> This is a problem because the x86 AOT variant of the barrier code >>>> pushes rcx and rscratch1 to the stack, loads the region grain shift >>>> address in to rscratch1 and the grain shift into into rcx. It has to >>>> be able to use rcx in order to be able to execute shrptr(tmp). >>>> However, if tmp == rcx then the unshifted value is restored into tmp >>>> when rcx is popped. >>>> >>>> I pushed a follow-up patch to my premain that avoids this problem. >>>> It uses a pushed register to do the shift and ensures that register >>>> differs from tmp and rcx. >>>> >>>> regards, >>>> >>>> >>>> Andrew Dinn >>>> ----------- >>>> >>>> >>>> On 09/10/2024 07:08, ioi.lam at oracle.com wrote: >>>>> In the premain branch, we have made some changes in g1BarrierSetC2.cpp >>>>> >>>>> ???? commit cc111760a0dd123935e039feb19eaac742f865b2 >>>>> ???? Author: Vladimir Kozlov >>>>> ???? Date:?? Mon Aug 26 14:21:28 2024 >>>>> >>>>> ???? Cleanup AOT runtime constants code >>>>> >>>>> ???? commit c319a3ee2be0236feab88c9be66d71e6e93b53fc >>>>> ???? Author: Andrew Dinn >>>>> ???? Date:?? Wed Aug 21 07:48:22 2024 >>>>> >>>>> ???? AOT G1 barrier loads region grain and card shifts via runtime >>>>> constants data area >>>>> >>>>> Recently, the following changes in g1BarrierSetC2.cpp have been >>>>> pushed to mainline that caused conflicts with the leyden changes. >>>>> >>>>> ???? commit 81ebbb2463df8b014bb209dc4028668fc78e8327 >>>>> ???? Author: Roberto Casta?eda Lozano >>>>> ???? Date:?? Mon Oct 7 01:28:18 2024 >>>>> >>>>> ???? 8341525: G1: use bit clearing to remove tightly-coupled >>>>> initialization store pre-barriers >>>>> >>>>> ???? commit 0b467e902d591ae9feeec1669918d1588987cd1c >>>>> ???? Author: Roberto Casta?eda Lozano >>>>> ???? Date:?? Thu Oct 3 01:36:33 2024 >>>>> >>>>> ???? 8334060: Implementation of Late Barrier Expansion for G1 >>>>> >>>>> >>>>> When I tried merging with mainline, I couldn't merge these changes, >>>>> so I ended up merging to this one (just an hour prior to 0b467e9), >>>>> and pushed the result to premain. >>>>> >>>>> ???? commit c6e7e551928c04b74775b5d4c03eb31232aeb2c9 (master) >>>>> ???? Author: Aleksey Shipilev >>>>> ???? Date:?? Thu Oct 3 00:25:42 2024 >>>>> >>>>> ???? 8341091: CDS: Segmented roots array misses roots >>>>> >>>>> Andrew Dinn or Vladimir Kozlov, could you help merging with mainline? >>>>> >>>>> Thanks >>>>> >>>>> - Ioi >>>>> >>>> > -- regards, Andrew Dinn ----------- Red Hat Distinguished Engineer Red Hat UK Ltd Registered in England and Wales under Company Registration No. 03798903 Directors: Michael Cunningham, Michael ("Mike") O'Neill From adinn at redhat.com Thu Oct 10 19:13:17 2024 From: adinn at redhat.com (Andrew Dinn) Date: Thu, 10 Oct 2024 20:13:17 +0100 Subject: [premain] need help merging g1BarrierSetC2.cpp In-Reply-To: <5749d803-f2b7-464b-8dd8-0f3de99ae002@redhat.com> References: <979c8d6e-cff9-473d-b5eb-b0b8b3a05f8c@redhat.com> <28476c49-9f26-4f0a-baf0-f85469e8391a@oracle.com> <59f862d1-2834-4247-884e-4a956ab3edb0@oracle.com> <7495f174-5980-4b5a-953c-8cdc0a095979@oracle.com> <5749d803-f2b7-464b-8dd8-0f3de99ae002@redhat.com> Message-ID: <0b40e445-548f-43bd-b8ca-728a77ef3463@redhat.com> On 10/10/2024 09:46, Andrew Dinn wrote: > On 09/10/2024 22:23, ioi.lam at oracle.com wrote: >> I'm also seeing failures on macos-aarch64 and linux-aarch64.? In >> addition to the tests I listed below, these two also fail reliably >> >> runtime/cds/appcds/applications/MicronautFirstApp.java#leyden >> runtime/cds/appcds/applications/MicronautFirstApp.java#leyden_old > > I'll see if I can debug these failures. I have been debugging MicronautFirstApp.java#leyden on aarch64 and found a few details of what is going wrong but no fix yet. The error happens in the production VM run. It is bailing out with a SEGV at a pc that is at a mapped address but does not identify real code. The problem appears consistently but not always in the same place. I have been able to identify some details of what is happening under calls to ConcurrentHashMap$ValueIterator::next or ReentrantLock$NonfairSync::initialTryLock. It also crashes in interpreted code but in that case I have not been yet able to decipher the stack and identify the method. When the crash happens it is under compiled code that has been loaded from the AOT cache. The methods cited above are actually the ones whose return address is on the stack when the SEGV happens. The preceding instruction in both cases is a branch to a stub that links to another method pulled from the cache. So, for ConcurrentHashMap$ValueIterator::next the stub transfers control to ConcurrentHashMap$Traverser::advance. The frame that sits above the return address and frame pointer certainly looks like we are in method advance (the frame is certainly the right size) but somehow we have branched off into hyperspace and hit a SEGV. I assumed this might relate to the GC change I made to the post barrier to indirectly load grain and card shift from the AOTConstants area. The called methods both included object writes and gc post barriers. So, I reverted the GC Barrier code to use hard wired shifts. The error continued to happen in the same places. So, I am leaning towards the idea that this is some other conflict with the GC changes to implement late barriers. I'll keep on debugging and post when I make progress. Perhaps Vladimir or Ashu could check the merge and also the tweak I made to the x86 barrier code to make the register pushes safe. regards, Andrew Dinn ----------- >> On 10/9/24 9:02 AM, ioi.lam at oracle.com wrote: >>> I am seeing some failures on linux/x64 with various assertion >>> failures in the GC code, either during collection or gc >>> verification.? I merged up to ReentrantLock$NonfairSync::initialTryLocku >>> d504df0e3d7928f0e7ff10ace03e002953c6a58f from Andrew's repo. >>> >>> runtime/cds/appcds/applications/HelidonQuickStartSE.java#leyden >>> runtime/cds/appcds/applications/HelidonQuickStartSE.java#leyden_old >>> runtime/cds/appcds/applications/JavacBench.java#leyden >>> runtime/cds/appcds/applications/JavacBench.java#leyden_old >>> runtime/cds/appcds/applications/SpringPetClinic.java#leyden_old >>> runtime/cds/appcds/leyden/ExcludedClasses.java >>> >>> A sample stack trace >>> >>> #? SIGSEGV (0xb) at pc=0x00007ff1d9260f78, pid=472145, tid=472252 >>> V? [libjvm.so+0x636f78]? oopDesc::size_given_klass(Klass*)+0x28 >>> (oop.inline.hpp:196) >>> V? [libjvm.so+0xd9e66d] >>> G1ParScanThreadState::do_copy_to_survivor_space(G1HeapRegionAttr, >>> oop, markWord)+0x9d? (g1ParScanThreadState.cpp:480) >>> V? [libjvm.so+0xda43db]? void >>> G1ParScanThreadState::do_oop_evac(narrowOop*)+0x12b >>> (g1ParScanThreadState.cpp:221) >>> V? [libjvm.so+0xd9fa98] >>> G1ParScanThreadState::trim_queue_to_threshold(unsigned int)+0x488 >>> (g1ParScanThreadState.cpp:334) >>> V? [libjvm.so+0xdb96fa] >>> G1ParScanThreadState::trim_queue_partially()+0x3a >>> (g1ParScanThreadState.inline.hpp:53) >>> V? [libjvm.so+0xdbe943]? void >>> G1ScanHRForRegionClosure::ChunkScanner::on_dirty_cards(G1ScanHRForRegionClosure::scan_heap_roots(G1HeapRegion*)::{lambda(unsigned char*, unsigned char*)#1}&&)+0x2c3? (g1RemSet.cpp:519) >>> V? [libjvm.so+0xdb6f39] >>> G1RemSet::scan_heap_roots(G1ParScanThreadState*, unsigned int, >>> G1GCPhaseTimes::GCParPhases, G1GCPhaseTimes::GCParPhases, bool)+0x5e9 >>> (g1RemSet.cpp:664) >>> V? [libjvm.so+0xdea89b] >>> G1EvacuateRegionsTask::scan_roots(G1ParScanThreadState*, unsigned >>> int)+0x4b? (g1YoungCollector.cpp:670) >>> V? [libjvm.so+0xdeac6a]? G1EvacuateRegionsBaseTask::work(unsigned >>> int)+0x8a? (g1YoungCollector.cpp:656) >>> V? [libjvm.so+0x1a2b480]? WorkerThread::run()+0x80 (workerThread.cpp:70) >>> V? [libjvm.so+0x18cc40a]? Thread::call_run()+0xba (thread.cpp:245) >>> V? [libjvm.so+0x159e0f9]? thread_native_entry(Thread*)+0x1c9 >>> (os_linux.cpp:858) >>> >>> siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: >>> 0x000000000000010e >>> >>> I'll run tests on aarch64 as well and will report back when I get the >>> results. >>> >>> Thanks >>> >>> - Ioi >>> >>> >>> On 10/9/24 8:23 AM, ioi.lam at oracle.com wrote: >>>> Thanks Andrew. >>>> >>>> I'll test your merge on our CI and then push to premain. >>>> >>>> - Ioi >>>> >>>> On 10/9/24 7:46 AM, Andrew Dinn wrote: >>>>> Hi Ioi/Vladimir, >>>>> >>>>> I merged the rest of master into premain, fixed the conflicts and >>>>> pushed the result to my premain branch. >>>>> >>>>> https://urldefense.com/v3/__https://github.com/adinn/leyden/tree/premain__;!!ACWV5N9M2RV99hQ!L_H5Q7HrxgwFxgFHEDodn9bmN5PlYgD0PbjCSMB0D8AJpVB-zvJog8wGxXubkqGBozWm8phOCOc$ >>>>> The merged code built and ran ok on aarch64. On x86 it built ok but >>>>> crashed during the assembly run. >>>>> >>>>> The problem was that the x86 post barrier can now be called from C2 >>>>> with tmp and tmp2 allocated by the register allocator. So, that >>>>> means both rcx and rscratch1 are possible values for register tmp. >>>>> This is a problem because the x86 AOT variant of the barrier code >>>>> pushes rcx and rscratch1 to the stack, loads the region grain shift >>>>> address in to rscratch1 and the grain shift into into rcx. It has >>>>> to be able to use rcx in order to be able to execute shrptr(tmp). >>>>> However, if tmp == rcx then the unshifted value is restored into >>>>> tmp when rcx is popped. >>>>> >>>>> I pushed a follow-up patch to my premain that avoids this problem. >>>>> It uses a pushed register to do the shift and ensures that register >>>>> differs from tmp and rcx. >>>>> >>>>> regards, >>>>> >>>>> >>>>> Andrew Dinn >>>>> ----------- >>>>> >>>>> >>>>> On 09/10/2024 07:08, ioi.lam at oracle.com wrote: >>>>>> In the premain branch, we have made some changes in >>>>>> g1BarrierSetC2.cpp >>>>>> >>>>>> ???? commit cc111760a0dd123935e039feb19eaac742f865b2 >>>>>> ???? Author: Vladimir Kozlov >>>>>> ???? Date:?? Mon Aug 26 14:21:28 2024 >>>>>> >>>>>> ???? Cleanup AOT runtime constants code >>>>>> >>>>>> ???? commit c319a3ee2be0236feab88c9be66d71e6e93b53fc >>>>>> ???? Author: Andrew Dinn >>>>>> ???? Date:?? Wed Aug 21 07:48:22 2024 >>>>>> >>>>>> ???? AOT G1 barrier loads region grain and card shifts via runtime >>>>>> constants data area >>>>>> >>>>>> Recently, the following changes in g1BarrierSetC2.cpp have been >>>>>> pushed to mainline that caused conflicts with the leyden changes. >>>>>> >>>>>> ???? commit 81ebbb2463df8b014bb209dc4028668fc78e8327 >>>>>> ???? Author: Roberto Casta?eda Lozano >>>>>> ???? Date:?? Mon Oct 7 01:28:18 2024 >>>>>> >>>>>> ???? 8341525: G1: use bit clearing to remove tightly-coupled >>>>>> initialization store pre-barriers >>>>>> >>>>>> ???? commit 0b467e902d591ae9feeec1669918d1588987cd1c >>>>>> ???? Author: Roberto Casta?eda Lozano >>>>>> ???? Date:?? Thu Oct 3 01:36:33 2024 >>>>>> >>>>>> ???? 8334060: Implementation of Late Barrier Expansion for G1 >>>>>> >>>>>> >>>>>> When I tried merging with mainline, I couldn't merge these >>>>>> changes, so I ended up merging to this one (just an hour prior to >>>>>> 0b467e9), and pushed the result to premain. >>>>>> >>>>>> ???? commit c6e7e551928c04b74775b5d4c03eb31232aeb2c9 (master) >>>>>> ???? Author: Aleksey Shipilev >>>>>> ???? Date:?? Thu Oct 3 00:25:42 2024 >>>>>> >>>>>> ???? 8341091: CDS: Segmented roots array misses roots >>>>>> >>>>>> Andrew Dinn or Vladimir Kozlov, could you help merging with mainline? >>>>>> >>>>>> Thanks >>>>>> >>>>>> - Ioi >>>>>> >>>>> >> From adinn at redhat.com Mon Oct 14 14:49:16 2024 From: adinn at redhat.com (Andrew Dinn) Date: Mon, 14 Oct 2024 15:49:16 +0100 Subject: [premain] need help merging g1BarrierSetC2.cpp In-Reply-To: <0b40e445-548f-43bd-b8ca-728a77ef3463@redhat.com> References: <979c8d6e-cff9-473d-b5eb-b0b8b3a05f8c@redhat.com> <28476c49-9f26-4f0a-baf0-f85469e8391a@oracle.com> <59f862d1-2834-4247-884e-4a956ab3edb0@oracle.com> <7495f174-5980-4b5a-953c-8cdc0a095979@oracle.com> <5749d803-f2b7-464b-8dd8-0f3de99ae002@redhat.com> <0b40e445-548f-43bd-b8ca-728a77ef3463@redhat.com> Message-ID: <0828cf20-4339-42b4-afc1-30603c7fcd11@redhat.com> Hi Ioi, I believe I have worked out what was causing the aarch64 code to break. A call from archived C2 code to G1BarrierSetRuntime::write_ref_field_pre_entry was not being relocated and so we ended up jumping to an address in the old VM 0xffff76c77578 rather than the correct address in the new VM 0xfffff4c77578. This was happening because the C2 barrier code was refactored to use some new helper methods and one of them, generate_c2_barrier_runtime_call, failed to load its branch target using a RuntimeAddress wrapper static void generate_c2_barrier_runtime_call(MacroAssembler* masm, G1BarrierStubC2* stub, const Register arg, const address runtime_path) { SaveLiveRegisters save_registers(masm, stub); if (c_rarg0 != arg) { __ mov(c_rarg0, arg); } __ mov(c_rarg1, rthread); __ mov(rscratch1, runtime_path); __ blr(rscratch1); } The mov to rscratch1 above needs to be replaced with __ lea(rscratch1, RuntimeAddress(runtime_path)); I have pushed a patch to the branch in my repo and with this patch the ExcludedClasses, JavacBench, MicronautFirstApp, HelidonQuickStart and SpringPetclinic tests all passed. I am not sure what is breaking x86 but it is not the same problem -- the x86 implementation of generate_c2_barrier_runtime_call is defined correctly as follows: static void generate_c2_barrier_runtime_call(MacroAssembler* masm, G1BarrierStubC2* stub, const Register arg, const address runtime_path) { #ifdef _LP64 SaveLiveRegisters save_registers(masm, stub); if (c_rarg0 != arg) { __ mov(c_rarg0, arg); } __ mov(c_rarg1, r15_thread); // rax is a caller-saved, non-argument-passing register, so it does not // interfere with c_rarg0 or c_rarg1. If it contained any live value before // entering this stub, it is saved at this point, and restored after the // call. If it did not contain any live value, it is free to be used. In // either case, it is safe to use it here as a call scratch register. __ call(RuntimeAddress(runtime_path), rax); #else Unimplemented(); #endif // _LP64 } I will move on now to debugging the problems on x86. regards, Andrew Dinn ----------- From duke at openjdk.org Tue Oct 15 03:37:01 2024 From: duke at openjdk.org (duke) Date: Tue, 15 Oct 2024 03:37:01 GMT Subject: git: openjdk/leyden: hermetic-java-runtime: 101 new changesets Message-ID: <825bd033-ceeb-4ec9-afdd-9c59dc767da2@openjdk.org> Changeset: 33595189 Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-07 16:28:02 +0000 URL: https://git.openjdk.org/leyden/commit/3359518986bd12b0d97e5df5b0154d0539639818 8341593: Problemlist java/foreign/TestUpcallStress.java in Xcomp mode Reviewed-by: jvernee ! test/jdk/ProblemList-Xcomp.txt Changeset: d0c5e4bc Branch: hermetic-java-runtime Author: Alexander Zvegintsev Date: 2024-10-07 16:32:01 +0000 URL: https://git.openjdk.org/leyden/commit/d0c5e4bc50cc2cbb65efe827ae8cf3e077f45e07 8341373: Open source closed frame tests # 4 Reviewed-by: prr + test/jdk/java/awt/Frame/AddRemoveMenuBarTest_5.java + test/jdk/java/awt/Frame/FrameResizableTest.java + test/jdk/java/awt/Frame/I18NTitle.java + test/jdk/java/awt/Frame/MenuBarOffsetTest.java + test/jdk/java/awt/Frame/MinimumSizeTest.java Changeset: f7bb647d Branch: hermetic-java-runtime Author: Eirik Bj?rsn?s Date: 2024-10-07 16:34:08 +0000 URL: https://git.openjdk.org/leyden/commit/f7bb647dc88f835fe819e7ab0434c931f243304a 8341595: Clean up iteration of CEN headers in ZipFile.Source.initCEN Reviewed-by: lancea, redestad ! src/java.base/share/classes/java/util/zip/ZipFile.java + test/jdk/java/util/zip/ZipFile/CenSizeMaximum.java Changeset: fc7244da Branch: hermetic-java-runtime Author: Harshitha Onkar Date: 2024-10-07 17:42:17 +0000 URL: https://git.openjdk.org/leyden/commit/fc7244da96a9423146c4a46bcc3bbfc205900c3b 8340713: Open source DnD tests - Set5 Reviewed-by: azvegint, dnguyen ! test/jdk/ProblemList.txt + test/jdk/java/awt/dnd/DragExitBeforeDropTest.java + test/jdk/java/awt/dnd/DragThresholdTest.java + test/jdk/java/awt/dnd/WinMoveFileToShellTest.java Changeset: 23f3ca25 Branch: hermetic-java-runtime Author: Mikael Vidstedt Date: 2024-10-07 19:33:48 +0000 URL: https://git.openjdk.org/leyden/commit/23f3ca254a2558ddaaf29714b0a5fc22daeed013 8330206: Bump minimum boot jdk to JDK 23 Reviewed-by: darcy, iris, erikj ! make/conf/github-actions.conf ! make/conf/jib-profiles.js ! make/conf/version-numbers.conf Changeset: 4d50cbb5 Branch: hermetic-java-runtime Author: Harshitha Onkar Date: 2024-10-07 21:29:21 +0000 URL: https://git.openjdk.org/leyden/commit/4d50cbb5a73ad1f84ecd6a895045ecfdb0835adc 8341278: Open source few TrayIcon tests - Set7 Reviewed-by: azvegint ! test/jdk/ProblemList.txt + test/jdk/java/awt/TrayIcon/ClearPrevImageTest.java + test/jdk/java/awt/TrayIcon/FocusLostAfterTrayTest.java + test/jdk/java/awt/TrayIcon/MouseMoveTest.java + test/jdk/java/awt/TrayIcon/TrayIconKeySelectTest.java Changeset: d996ca86 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-07 23:30:06 +0000 URL: https://git.openjdk.org/leyden/commit/d996ca863deef50ba7c1c8878cc4c202fa1a9d6b 8341581: Optimize BytecodeHelpers validate slot Reviewed-by: liach ! src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java Changeset: 45a63595 Branch: hermetic-java-runtime Author: William Kemper Date: 2024-10-08 01:26:16 +0000 URL: https://git.openjdk.org/leyden/commit/45a6359588996d25e5e8dadebdcd8d6a00ef786f 8341668: Shenandoah: assert(tail_bits < (idx_t)BitsPerWord) failed: precondition Reviewed-by: ysr ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.inline.hpp Changeset: b6a40473 Branch: hermetic-java-runtime Author: Tejesh R Date: 2024-10-08 06:33:11 +0000 URL: https://git.openjdk.org/leyden/commit/b6a4047387dbe4e07df0032dfdd7ee5ad8f571a4 8339982: Open source several AWT Mouse tests - Batch 2 Reviewed-by: psadhukhan ! test/jdk/ProblemList.txt + test/jdk/java/awt/GraphicsEnvironment/DefaultScreenDeviceTest.java + test/jdk/java/awt/Mouse/DoubleClickTest.java + test/jdk/java/awt/Mouse/MouseClickCount.java + test/jdk/java/awt/Mouse/MouseDragEnterExitTest.java + test/jdk/java/awt/Mouse/MouseDragTest.java Changeset: 57c859e4 Branch: hermetic-java-runtime Author: Tejesh R Date: 2024-10-08 06:33:22 +0000 URL: https://git.openjdk.org/leyden/commit/57c859e4adfedc963b1f4b3bf066453ace41ee36 8339836: Open source several AWT Mouse tests - Batch 1 Reviewed-by: honkar, prr + test/jdk/java/awt/Mouse/MouseEnterExitTest.java + test/jdk/java/awt/Mouse/MouseEnterExitTest2.java + test/jdk/java/awt/Mouse/MouseEnterExitTest3.java + test/jdk/java/awt/Mouse/MouseEnterExitTest4.java + test/jdk/java/awt/Mouse/MousePressedTest.java Changeset: ffb60e55 Branch: hermetic-java-runtime Author: Claes Redestad Date: 2024-10-08 08:14:40 +0000 URL: https://git.openjdk.org/leyden/commit/ffb60e55cd77a92d19e1fde305f5d204b9fae429 8341594: Use Unsafe to coalesce reads in java.util.zip.ZipUtils Reviewed-by: lancea ! src/java.base/share/classes/java/util/zip/ZipEntry.java ! src/java.base/share/classes/java/util/zip/ZipFile.java ! src/java.base/share/classes/java/util/zip/ZipInputStream.java ! src/java.base/share/classes/java/util/zip/ZipUtils.java ! test/micro/org/openjdk/bench/java/util/zip/ZipFileOpen.java Changeset: 59ac7039 Branch: hermetic-java-runtime Author: Amit Kumar Date: 2024-10-08 09:19:40 +0000 URL: https://git.openjdk.org/leyden/commit/59ac7039d3ace0ec481742c3a10c81f1675e12da 8339220: [s390x] TestIfMinMax.java failure Reviewed-by: lucy, aph ! src/hotspot/cpu/s390/matcher_s390.hpp ! test/hotspot/jtreg/ProblemList.txt Changeset: f62dba36 Branch: hermetic-java-runtime Author: Eirik Bj?rsn?s Date: 2024-10-08 09:59:29 +0000 URL: https://git.openjdk.org/leyden/commit/f62dba3651719bc0031522e171a6e42b362c1363 8341597: ZipFileInflaterInputStream input buffer size uses uncompressed size Reviewed-by: lancea ! src/java.base/share/classes/java/util/zip/ZipFile.java Changeset: 7a1e832e Branch: hermetic-java-runtime Author: Eirik Bj?rsn?s Date: 2024-10-08 10:08:31 +0000 URL: https://git.openjdk.org/leyden/commit/7a1e832ea997f9984eb5fc18474a8f1650ddb1bf 8336843: Deprecate java.util.zip.ZipError for removal Reviewed-by: liach, lancea ! src/java.base/share/classes/java/util/zip/ZipError.java Changeset: 6e486181 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2024-10-08 12:36:31 +0000 URL: https://git.openjdk.org/leyden/commit/6e486181613bde8da6874eeed680c7136e8d778a 8341644: Compile error in cgroup coding when using toolchain clang Reviewed-by: stefank, mdoerr ! src/hotspot/os/linux/cgroupV2Subsystem_linux.hpp Changeset: 4a12f5b2 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2024-10-08 14:12:53 +0000 URL: https://git.openjdk.org/leyden/commit/4a12f5b26e2b7fb638ee0946d3938451f5effd3d 8341643: G1: Merged cards counter skewed by merge cards cache Reviewed-by: iwalulya, mli ! src/hotspot/share/gc/g1/g1RemSet.cpp Changeset: 580eb62d Branch: hermetic-java-runtime Author: Hamlin Li Date: 2024-10-08 15:15:13 +0000 URL: https://git.openjdk.org/leyden/commit/580eb62dc097efeb51c76b095c1404106859b673 8320500: [vectorapi] RISC-V: Optimize vector math operations with SLEEF Reviewed-by: luhenry, ihse, erikj, fyang, rehn ! make/modules/jdk.incubator.vector/Lib.gmk ! src/hotspot/cpu/riscv/assembler_riscv.hpp ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/library_call.hpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/prims/vectorSupport.cpp ! src/hotspot/share/prims/vectorSupport.hpp ! src/hotspot/share/runtime/stubRoutines.cpp ! src/hotspot/share/runtime/stubRoutines.hpp + src/jdk.incubator.vector/linux/native/libsleef/lib/vector_math_rvv.c Changeset: 65463536 Branch: hermetic-java-runtime Author: Hannes Walln?fer Date: 2024-10-08 16:16:14 +0000 URL: https://git.openjdk.org/leyden/commit/65463536e6b7d792edb96bfddc2cd397276c7bd8 8340203: Link color is hard to distinguish from text color in API documentation Reviewed-by: prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/stylesheet.css Changeset: b9db74a6 Branch: hermetic-java-runtime Author: Harshitha Onkar Date: 2024-10-08 16:34:45 +0000 URL: https://git.openjdk.org/leyden/commit/b9db74a64577bf2b79570a789c91de6549a50788 8341378: Open source few TrayIcon tests - Set8 Reviewed-by: azvegint, dnguyen ! test/jdk/ProblemList.txt + test/jdk/java/awt/TrayIcon/TrayIconTest.java Changeset: 966eb723 Branch: hermetic-java-runtime Author: Alexander Zvegintsev Date: 2024-10-08 17:37:48 +0000 URL: https://git.openjdk.org/leyden/commit/966eb7232ff867d9a68269d5a2007da20259565f 8341447: Open source closed frame tests # 5 Reviewed-by: honkar ! test/jdk/ProblemList.txt + test/jdk/java/awt/Frame/FocusTest.java ! test/jdk/java/awt/Frame/InitialIconifiedTest.java Changeset: 7312eea3 Branch: hermetic-java-runtime Author: Leonid Mesnik Date: 2024-10-08 17:44:35 +0000 URL: https://git.openjdk.org/leyden/commit/7312eea382eed048b6abdb6409c006fc8e8f45b4 8341131: Some jdk/jfr/event/compiler tests shouldn't be executed with Xcomp Reviewed-by: chagedorn ! test/jdk/jdk/jfr/event/compiler/TestCompilerCompile.java ! test/jdk/jdk/jfr/event/compiler/TestCompilerInlining.java ! test/jdk/jdk/jfr/event/compiler/TestDeoptimization.java Changeset: 62acc9c1 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-08 20:35:14 +0000 URL: https://git.openjdk.org/leyden/commit/62acc9c174f23acd2807c8214ffc28d73799da16 8341548: More concise use of classfile API Reviewed-by: liach ! src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java ! src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java ! src/java.base/share/classes/java/lang/invoke/MethodHandleProxies.java ! src/java.base/share/classes/java/lang/runtime/SwitchBootstraps.java ! src/java.base/share/classes/jdk/internal/foreign/abi/BindingSpecializer.java Changeset: 7eab0a50 Branch: hermetic-java-runtime Author: Igor Veresov Date: 2024-10-08 23:21:44 +0000 URL: https://git.openjdk.org/leyden/commit/7eab0a506adffac7bed940cc020e37754f0adbdb 8337066: Repeated call of StringBuffer.reverse with double byte string returns wrong result Reviewed-by: kvn, thartmann ! src/hotspot/share/opto/gcm.cpp + test/hotspot/jtreg/compiler/controldependency/TestAntiDependencyForPinnedLoads.java Changeset: f276f58f Branch: hermetic-java-runtime Author: Daniel D. Daugherty Date: 2024-10-09 00:00:09 +0000 URL: https://git.openjdk.org/leyden/commit/f276f58fb427a849549a525a200e95e28952edf4 8341803: ProblemList containers/docker/TestJcmdWithSideCar.java on linux-x64 8341805: ProblemList five mlvm/indy/func/jvmti tests in Xcomp mode Reviewed-by: psandoz ! test/hotspot/jtreg/ProblemList-Xcomp.txt ! test/hotspot/jtreg/ProblemList.txt Changeset: de90204b Branch: hermetic-java-runtime Author: Ramkumar Sunderbabu Date: 2024-10-09 03:11:59 +0000 URL: https://git.openjdk.org/leyden/commit/de90204b60c408ef258a2d2515ad252de4b23536 8341588: Remove CollectionUsageThreshold.java from ProblemList-Xcomp for debugging Reviewed-by: lmesnik, kevinw ! test/jdk/ProblemList-Xcomp.txt ! test/jdk/java/lang/management/MemoryMXBean/MemoryUtil.java ! test/jdk/java/lang/management/MemoryMXBean/RunUtil.java Changeset: d809bc0e Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-09 05:47:58 +0000 URL: https://git.openjdk.org/leyden/commit/d809bc0e21b145758f21c4324772faf6aa6a276a 8341658: RISC-V: Test DateFormatProviderTest.java run timeouted Reviewed-by: naoto ! test/jdk/java/util/PluggableLocale/DateFormatProviderTest.java Changeset: d3f3c6a8 Branch: hermetic-java-runtime Author: Daniel Skantz Date: 2024-10-09 07:01:23 +0000 URL: https://git.openjdk.org/leyden/commit/d3f3c6a8cdf862df3a72f60c824ce50d37231061 8330157: C2: Add a stress flag for bailouts Reviewed-by: chagedorn, thartmann ! src/hotspot/share/opto/block.cpp ! src/hotspot/share/opto/c2_globals.hpp ! src/hotspot/share/opto/chaitin.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/gcm.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/lcm.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/matcher.cpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/opto/parse.hpp ! src/hotspot/share/opto/reg_split.cpp + test/hotspot/jtreg/compiler/debug/TestStressBailout.java ! test/hotspot/jtreg/testlibrary/ctw/src/sun/hotspot/tools/ctw/CtwRunner.java Changeset: d636e0d3 Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-09 09:02:52 +0000 URL: https://git.openjdk.org/leyden/commit/d636e0d31483575cb6a37cef9faf88aff52d6a14 8341688: Aarch64: Generate comments in -XX:+PrintInterpreter to link to source code Reviewed-by: aph, jsjolen, jwaters ! src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp ! src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/templateTable_aarch64.cpp Changeset: 047c2d7f Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-09 10:01:22 +0000 URL: https://git.openjdk.org/leyden/commit/047c2d7f2676b8c3c8b5645134fb5c00c540e43f 8341141: Optimize DirectCodeBuilder Co-authored-by: Claes Redestad Co-authored-by: Chen Liang Reviewed-by: liach, redestad ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationReader.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AttributeHolder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufWriterImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassReaderImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectClassBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectMethodBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/EntryMap.java ! src/java.base/share/classes/jdk/internal/classfile/impl/LabelImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java ! src/java.base/share/classes/jdk/internal/constant/MethodTypeDescImpl.java ! test/jdk/jdk/classfile/UtilTest.java ! test/micro/org/openjdk/bench/jdk/classfile/Write.java Changeset: 3fba1702 Branch: hermetic-java-runtime Author: Christian Hagedorn Date: 2024-10-09 11:42:22 +0000 URL: https://git.openjdk.org/leyden/commit/3fba1702cd8dc817b11bfa51077c41424d289281 8340786: Introduce Predicate classes with predicate iterators and visitors for simplified walking Reviewed-by: roland, thartmann ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/predicates.cpp ! src/hotspot/share/opto/predicates.hpp Changeset: d9365567 Branch: hermetic-java-runtime Author: Johan Sj?len Date: 2024-10-09 13:05:33 +0000 URL: https://git.openjdk.org/leyden/commit/d936556799dd0425ff06a79ffb69b3bf0ea1ad4e 8341633: StatSampler::assert_system_property: Print the keys and values of the assert Reviewed-by: stefank ! src/hotspot/share/runtime/statSampler.cpp Changeset: ecc77a5b Branch: hermetic-java-runtime Author: Roland Westrelin Date: 2024-10-09 14:57:37 +0000 URL: https://git.openjdk.org/leyden/commit/ecc77a5b4a84c84ffa1580174872af6df3a4f6ca 8336702: C2 compilation fails with "all memory state should have been processed" assert Reviewed-by: thartmann, chagedorn ! src/hotspot/share/opto/loopnode.cpp + test/hotspot/jtreg/compiler/longcountedloops/TestSafePointWithEAState.java Changeset: ff2f39f2 Branch: hermetic-java-runtime Author: Roland Westrelin Date: 2024-10-09 14:59:15 +0000 URL: https://git.openjdk.org/leyden/commit/ff2f39f24018436556a8956ec55da433dc697437 8340214: C2 compilation asserts with "no node with a side effect" in PhaseIdealLoop::try_sink_out_of_loop Reviewed-by: chagedorn, thartmann ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/library_call.cpp + test/hotspot/jtreg/compiler/types/TestBadMemSliceWithInterfaces.java Changeset: c30ad012 Branch: hermetic-java-runtime Author: Kangcheng Xu Date: 2024-10-09 15:07:13 +0000 URL: https://git.openjdk.org/leyden/commit/c30ad0124e7743f3a4c29ef901761f8fcc53de10 8325495: C2: implement optimization for series of Add of unique value Reviewed-by: chagedorn, roland ! src/hotspot/share/opto/addnode.cpp ! src/hotspot/share/opto/addnode.hpp + test/hotspot/jtreg/compiler/c2/TestSerialAdditions.java Changeset: e704c055 Branch: hermetic-java-runtime Author: Oli Gillespie Date: 2024-10-09 15:28:44 +0000 URL: https://git.openjdk.org/leyden/commit/e704c055a4cf2aab77cc2b3d034f5a8b8d9e3331 8340547: Starting many threads can delay safepoints Reviewed-by: shade, qamai, dholmes ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/threads.cpp Changeset: 950e3a75 Branch: hermetic-java-runtime Author: Eirik Bj?rsn?s Date: 2024-10-09 15:56:38 +0000 URL: https://git.openjdk.org/leyden/commit/950e3a7587ed3269aab0c3b6625b9cc9149d34d8 8341625: Improve ZipFile validation of the END header Reviewed-by: lancea ! src/java.base/share/classes/java/util/zip/ZipFile.java ! test/jdk/java/util/zip/ZipFile/EndOfCenValidation.java Changeset: 38c1d651 Branch: hermetic-java-runtime Author: Archie Cobbs Date: 2024-10-09 16:03:55 +0000 URL: https://git.openjdk.org/leyden/commit/38c1d6514881363ffa4ed20b34bd8cdfd8343f5f 8337980: Javac allows invocation of an inherited instance method from a static method Co-authored-by: Maurizio Cimadamore Reviewed-by: mcimadamore, jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java + test/langtools/tools/javac/resolve/MethodAmbiguityCrash1.java + test/langtools/tools/javac/resolve/MethodAmbiguityCrash1.out + test/langtools/tools/javac/resolve/MethodAmbiguityCrash2.java + test/langtools/tools/javac/resolve/MethodAmbiguityCrash2.out Changeset: fcc9c8d5 Branch: hermetic-java-runtime Author: Fredrik Bredberg Date: 2024-10-09 16:45:56 +0000 URL: https://git.openjdk.org/leyden/commit/fcc9c8d570396506068e0a1d4123e32b195e6653 8341854: Incorrect clearing of ZF in fast_unlock_lightweight on x86 Reviewed-by: stefank, aboldtch, pchilanomate, dcubed ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp Changeset: a24525b6 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-09 17:21:59 +0000 URL: https://git.openjdk.org/leyden/commit/a24525b67b97d38a33e42871bd2e8d03cd327568 8339320: Optimize ClassFile Utf8EntryImpl#inflate Reviewed-by: liach ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java Changeset: 3ab519f1 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-09 17:30:28 +0000 URL: https://git.openjdk.org/leyden/commit/3ab519f16381ab49353e67db8480ed13f52ca3e8 8341424: GHA: Collect hs_errs from build time failures Reviewed-by: ihse, jwaters ! .github/scripts/gen-build-failure-report.sh ! .github/scripts/gen-test-results.sh + .github/scripts/report-utils.sh Changeset: 3180aaa3 Branch: hermetic-java-runtime Author: Jatin Bhateja Date: 2024-10-09 17:44:15 +0000 URL: https://git.openjdk.org/leyden/commit/3180aaa370de16eb1835e1f57664b9fb15a6bb01 8341832: Incorrect continuation address of synthetic SIGSEGV for APX in product builds Reviewed-by: thartmann, sviswanathan, kvn ! src/hotspot/cpu/x86/vm_version_x86.cpp Changeset: 593c27e6 Branch: hermetic-java-runtime Author: Phil Race Date: 2024-10-09 18:17:53 +0000 URL: https://git.openjdk.org/leyden/commit/593c27e69703875115e6db5843a3743ba9bd8c18 8341535: sun/awt/font/TestDevTransform.java fails with RuntimeException: Different rendering Reviewed-by: mbaesken ! test/jdk/sun/awt/font/TestDevTransform.java Changeset: a45abf13 Branch: hermetic-java-runtime Author: Daniel D. Daugherty Date: 2024-10-09 18:20:52 +0000 URL: https://git.openjdk.org/leyden/commit/a45abf131be9ee52828c5db18a18847c45ae6994 8341860: ProblemList applications/ctw/modules/java_base_2.java on linux-x64 Reviewed-by: azvegint ! test/hotspot/jtreg/ProblemList.txt Changeset: 52eded4a Branch: hermetic-java-runtime Author: Alexander Zuev Date: 2024-10-09 20:31:02 +0000 URL: https://git.openjdk.org/leyden/commit/52eded4a9ce612a978ae15d5b606784bcf671c69 8341170: Open source several Choice related tests (part 2) Reviewed-by: honkar + test/jdk/java/awt/Choice/ChoiceDragEventsInside.java + test/jdk/java/awt/Choice/ChoiceMouseEventTest.java + test/jdk/java/awt/Choice/ChoiceRemoveTest.java + test/jdk/java/awt/Choice/PopupMenuOnChoiceArea.java + test/jdk/java/awt/Choice/ScrollbarFlickers.java Changeset: 49c7148d Branch: hermetic-java-runtime Author: Justin Lu Date: 2024-10-09 21:45:47 +0000 URL: https://git.openjdk.org/leyden/commit/49c7148d3770c1ba2cd291f7b55ad471577ee151 8341366: Suspicious check in Locale.getDisplayName(Locale inLocale) Reviewed-by: naoto ! src/java.base/share/classes/java/util/Locale.java Changeset: e7045e93 Branch: hermetic-java-runtime Author: Justin Lu Date: 2024-10-09 21:46:50 +0000 URL: https://git.openjdk.org/leyden/commit/e7045e9399c5bca0592afc5769432414ecae7219 8341684: Typo in External Specifications link of java.util.Currency Reviewed-by: liach, naoto, srl ! src/java.base/share/classes/java/util/Currency.java Changeset: 172f7446 Branch: hermetic-java-runtime Author: Alexander Zuev Date: 2024-10-09 22:10:32 +0000 URL: https://git.openjdk.org/leyden/commit/172f74466fe59ece816764112dba98e4604706b7 8340985: Open source some Desktop related tests Reviewed-by: abhiscxk + test/jdk/java/awt/Desktop/ActionSupportTest.java + test/jdk/java/awt/Desktop/BrowseTest.java + test/jdk/java/awt/Desktop/DesktopSupportTest.java + test/jdk/java/awt/Desktop/MailTest.java + test/jdk/java/awt/Desktop/OpenTest.java Changeset: c850ecb2 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-09 23:50:18 +0000 URL: https://git.openjdk.org/leyden/commit/c850ecb20a095cb69da81f6fbe5da9c4bce66e77 8341755: Optimize argNames in InnerClassLambdaMetafactory Co-authored-by: Chen Liang Reviewed-by: liach, redestad ! src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java Changeset: 475f8f94 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-10 00:03:08 +0000 URL: https://git.openjdk.org/leyden/commit/475f8f94e038e10c796b5d56f939384d7b84da54 8341859: Optimize ClassFile Benchmark Write Reviewed-by: liach ! test/micro/org/openjdk/bench/jdk/classfile/Write.java Changeset: 9d621d39 Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-10 01:04:02 +0000 URL: https://git.openjdk.org/leyden/commit/9d621d3914b39cfdcda97274a7af5ca0fe062d35 8338884: java/nio/file/attribute/BasicFileAttributeView/CreationTime.java#tmp fails on alinux3 Reviewed-by: sgehwolf, bpb ! make/test/JtregNativeJdk.gmk ! test/jdk/java/nio/file/attribute/BasicFileAttributeView/CreationTime.java + test/jdk/java/nio/file/attribute/BasicFileAttributeView/CreationTimeHelper.java + test/jdk/java/nio/file/attribute/BasicFileAttributeView/libCreationTimeHelper.c Changeset: 313f4a96 Branch: hermetic-java-runtime Author: Abhishek Kumar Date: 2024-10-10 05:40:21 +0000 URL: https://git.openjdk.org/leyden/commit/313f4a962148331c9958618054109284470d1c9f 8340809: Open source few more AWT PopupMenu tests Reviewed-by: prr, aivanov + test/jdk/java/awt/PopupMenu/ActivePopupCrashTest.java + test/jdk/java/awt/PopupMenu/KeyTraversalCrash.java + test/jdk/java/awt/PopupMenu/MultiplePopupMenusTest.java + test/jdk/java/awt/PopupMenu/PopupMenuCrash.java + test/jdk/java/awt/PopupMenu/StressTest.java Changeset: 780de009 Branch: hermetic-java-runtime Author: Abhishek Kumar Date: 2024-10-10 05:57:39 +0000 URL: https://git.openjdk.org/leyden/commit/780de009224b048fa51a119e1db6cc52daddaaf8 8051591: Test javax/swing/JTabbedPane/8007563/Test8007563.java fails Reviewed-by: honkar, dnguyen, psadhukhan ! test/jdk/ProblemList.txt - test/jdk/javax/swing/JTabbedPane/8007563/Test8007563.java + test/jdk/javax/swing/JTabbedPane/TestJTabbedPaneBackgroundColor.java Changeset: 36fca5d1 Branch: hermetic-java-runtime Author: Christian Hagedorn Date: 2024-10-10 06:40:55 +0000 URL: https://git.openjdk.org/leyden/commit/36fca5d19d6c0eb0391b4a36db689d9c3aae09b1 8341882: [BACKOUT] java/nio/file/attribute/BasicFileAttributeView/CreationTime.java#tmp fails on alinux3 Reviewed-by: thartmann ! make/test/JtregNativeJdk.gmk ! test/jdk/java/nio/file/attribute/BasicFileAttributeView/CreationTime.java - test/jdk/java/nio/file/attribute/BasicFileAttributeView/CreationTimeHelper.java - test/jdk/java/nio/file/attribute/BasicFileAttributeView/libCreationTimeHelper.c Changeset: e7c5bf45 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2024-10-10 07:21:05 +0000 URL: https://git.openjdk.org/leyden/commit/e7c5bf45f753ad6459c666a4dd4a31197b69e05e 8341722: Fix some warnings as errors when building on Linux with toolchain clang Reviewed-by: cjplummer, lucy ! make/modules/jdk.hotspot.agent/Lib.gmk ! src/jdk.hotspot.agent/linux/native/libsaproc/LinuxDebuggerLocal.cpp ! src/jdk.hotspot.agent/linux/native/libsaproc/symtab.c ! src/jdk.jpackage/share/native/common/Log.cpp ! test/hotspot/gtest/runtime/test_os_linux.cpp Changeset: 16042556 Branch: hermetic-java-runtime Author: Roberto Casta?eda Lozano Date: 2024-10-10 08:34:10 +0000 URL: https://git.openjdk.org/leyden/commit/16042556f394adfa93e54173944198397ad29dea 8341619: C2: remove unused StoreCM node Reviewed-by: chagedorn, thartmann, kvn ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/s390/s390.ad ! src/hotspot/cpu/x86/x86_32.ad ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/share/adlc/forms.cpp ! src/hotspot/share/adlc/formssel.cpp ! src/hotspot/share/opto/classes.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/gcm.cpp ! src/hotspot/share/opto/idealKit.cpp ! src/hotspot/share/opto/idealKit.hpp ! src/hotspot/share/opto/lcm.cpp ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/memnode.hpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/opto/superword.cpp ! src/hotspot/share/runtime/vmStructs.cpp Changeset: e9327b6e Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-10 14:32:32 +0000 URL: https://git.openjdk.org/leyden/commit/e9327b6e3c1fcc47ec790fa4e4019f7651a8f912 8339205: Optimize StackMapGenerator Reviewed-by: liach ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java Changeset: 6e013845 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-10 15:13:39 +0000 URL: https://git.openjdk.org/leyden/commit/6e0138450ab4b0af917cbf61701b0d1d17eeaa44 8341136: Optimize StackMapGenerator::trimAndCompress Reviewed-by: liach ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java Changeset: 2d8fcc42 Branch: hermetic-java-runtime Author: Tejesh R Date: 2024-10-10 15:34:39 +0000 URL: https://git.openjdk.org/leyden/commit/2d8fcc4271802b211c4718c6abae3ce9c99eafbd 8340193: Open source several AWT Dialog tests - Batch 1 Reviewed-by: psadhukhan + test/jdk/java/awt/Dialog/DialogIconTest/DialogIconTest.java = test/jdk/java/awt/Dialog/DialogIconTest/swing.small.gif + test/jdk/java/awt/Dialog/DialogResizeTest.java + test/jdk/java/awt/Dialog/FileDialogIconTest/FileDialogIconTest.java = test/jdk/java/awt/Dialog/FileDialogIconTest/T1.gif = test/jdk/java/awt/Dialog/FileDialogIconTest/T2.gif = test/jdk/java/awt/Dialog/FileDialogIconTest/T3.gif = test/jdk/java/awt/Dialog/FileDialogIconTest/T4.gif + test/jdk/java/awt/Dialog/FileDialogIconTest/loading-msg.gif + test/jdk/java/awt/Dialog/FileDialogWrongNameCrash.java + test/jdk/java/awt/Dialog/GetLocationTest_1.java Changeset: a7d2077f Branch: hermetic-java-runtime Author: Tejesh R Date: 2024-10-10 15:50:19 +0000 URL: https://git.openjdk.org/leyden/commit/a7d2077fe20d73f49a003c15469c2aa9bda1b30f 8340366: Open source several AWT Dialog tests - Batch 3 Reviewed-by: prr, dnguyen ! test/jdk/ProblemList.txt + test/jdk/java/awt/Dialog/DialogModalityTest.java + test/jdk/java/awt/Dialog/DialogResizeTest2.java + test/jdk/java/awt/Dialog/FileDialogUserFilterTest.java + test/jdk/java/awt/Dialog/HideDialogTest.java + test/jdk/java/awt/Dialog/ModalDialogTest.java Changeset: 4beb7719 Branch: hermetic-java-runtime Author: Aleksei Efimov Date: 2024-10-10 15:56:04 +0000 URL: https://git.openjdk.org/leyden/commit/4beb77192f54f27183285400d7cae7528df64e43 8339538: Wrong timeout computations in DnsClient 8220213: com/sun/jndi/dns/ConfigTests/Timeout.java failed intermittent Reviewed-by: dfuchs, msheppar, djelinski ! src/jdk.naming.dns/share/classes/com/sun/jndi/dns/DnsClient.java ! src/jdk.naming.dns/share/classes/com/sun/jndi/dns/DnsContext.java ! test/jdk/com/sun/jndi/dns/ConfigTests/Timeout.java + test/jdk/com/sun/jndi/dns/ConfigTests/TimeoutWithEmptyDatagrams.java Changeset: 6fad6af0 Branch: hermetic-java-runtime Author: Axel Boldt-Christmas Date: 2024-10-10 17:02:54 +0000 URL: https://git.openjdk.org/leyden/commit/6fad6af0de5e749aa60038d70ae196b5f666286f 8341819: LightweightSynchronizer::enter_for races with deflation Reviewed-by: pchilanomate, rkennke ! src/hotspot/share/runtime/lightweightSynchronizer.cpp ! test/jdk/com/sun/jdi/EATests.java Changeset: 76541b06 Branch: hermetic-java-runtime Author: Weijun Wang Date: 2024-10-10 17:22:45 +0000 URL: https://git.openjdk.org/leyden/commit/76541b0646d27e79948d73759f21383c099e2436 8341792: Fix ExceptionOccurred in java.security.jgss Reviewed-by: jlu, mullan ! src/java.security.jgss/macosx/native/libosxkrb5/SCDynamicStoreConfig.m ! src/java.security.jgss/windows/native/libw2k_lsa_auth/NativeCreds.c Changeset: 7eb55357 Branch: hermetic-java-runtime Author: Justin Lu Date: 2024-10-10 17:33:22 +0000 URL: https://git.openjdk.org/leyden/commit/7eb55357ab169c21dd5d0ed1738155e794e5faaf 8341789: Fix ExceptionOccurred in java.base Reviewed-by: bpb, jpai, dfuchs, lancea, rriggs, naoto ! src/java.base/share/native/libjava/ClassLoader.c ! src/java.base/share/native/libjava/System.c ! src/java.base/share/native/libjava/io_util.c ! src/java.base/share/native/libjava/jni_util.c ! src/java.base/share/native/libjli/java.c ! src/java.base/share/native/libjli/java.h ! src/java.base/unix/native/libjava/io_util_md.c ! src/java.base/unix/native/libnet/NetworkInterface.c ! src/java.base/unix/native/libnet/SdpSupport.c ! src/java.base/unix/native/libnio/ch/UnixDomainSockets.c Changeset: a5cad0ee Branch: hermetic-java-runtime Author: Justin Lu Date: 2024-10-10 17:33:38 +0000 URL: https://git.openjdk.org/leyden/commit/a5cad0ee1e86285b7d2561dfce37f2b22067c9e6 8341791: Fix ExceptionOccurred in java.prefs Reviewed-by: bpb, jpai, naoto ! src/java.prefs/macosx/native/libprefs/MacOSXPreferencesFile.m Changeset: 32f817a4 Branch: hermetic-java-runtime Author: Harshitha Onkar Date: 2024-10-10 17:55:26 +0000 URL: https://git.openjdk.org/leyden/commit/32f817a46068b61d599b714a4480e3ea5d6e9050 8340978: Open source few DnD tests - Set6 Reviewed-by: prr ! test/jdk/ProblemList.txt + test/jdk/java/awt/dnd/CustomDragCursorTest.java + test/jdk/java/awt/dnd/DnDAcceptanceTest/DnDAcceptanceTest.java + test/jdk/java/awt/dnd/DnDAcceptanceTest/DnDSource.java + test/jdk/java/awt/dnd/DnDAcceptanceTest/DnDTarget.java Changeset: 2a6f0307 Branch: hermetic-java-runtime Author: Daniel Gredler Committer: Phil Race Date: 2024-10-10 18:00:33 +0000 URL: https://git.openjdk.org/leyden/commit/2a6f0307e8d287fc9177e9454386e63faf8e61a0 8339974: Graphics2D.drawString doesn't always work with Font derived from AffineTransform Reviewed-by: prr, azvegint ! src/java.desktop/share/classes/java/awt/font/TextLayout.java ! src/java.desktop/share/classes/java/awt/font/TextLine.java + test/jdk/java/awt/font/FontScaling/RotatedScaledFontTest.java + test/jdk/javax/print/PostScriptRotatedScaledFontTest.java Changeset: 97ee8bbd Branch: hermetic-java-runtime Author: Damon Nguyen Date: 2024-10-10 18:17:55 +0000 URL: https://git.openjdk.org/leyden/commit/97ee8bbda2c7d7f76866690a34a5021fade2f438 8340173: Open source some Component/Panel/EventQueue tests - Set2 Reviewed-by: honkar ! test/jdk/ProblemList.txt + test/jdk/java/awt/EventQueue/PushPopDeadlock/PushPopDeadlock.java + test/jdk/java/awt/LightweightComponent/MultipleAddNotifyTest/MultipleAddNotifyTest.java + test/jdk/java/awt/LightweightComponent/PopupTest/PopupTest.java + test/jdk/java/awt/Panel/PanelRepaint/PanelRepaint.java Changeset: 06f34d7e Branch: hermetic-java-runtime Author: William Kemper Date: 2024-10-10 18:45:10 +0000 URL: https://git.openjdk.org/leyden/commit/06f34d7ed2ac77e30b2a891b7a0549055ed40da3 8339651: ShenandoahPacer::setup_for_mark, ShenandoahPacer::setup_for_updaterefs and ShenandoahPacer::setup_for_evac runtime error: division by zero Reviewed-by: shade, mli ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp Changeset: cd4981c2 Branch: hermetic-java-runtime Author: Damon Nguyen Date: 2024-10-10 21:42:23 +0000 URL: https://git.openjdk.org/leyden/commit/cd4981c29245b4ddd37b49aef1a051e29a1001f9 8341257: Open source few DND tests - Set1 Reviewed-by: honkar, prr ! test/jdk/ProblemList.txt + test/jdk/java/awt/dnd/DnDClipboardDeadlockTest.java + test/jdk/java/awt/dnd/DnDCursorCrashTest.java + test/jdk/java/awt/dnd/DnDRemoveFocusOwnerCrashTest.java + test/jdk/java/awt/dnd/DnDToWordpadTest.java + test/jdk/java/awt/dnd/NonAsciiFilenames.java Changeset: 24eb3601 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-11 00:29:14 +0000 URL: https://git.openjdk.org/leyden/commit/24eb360147a5ca548abc89eb6480f46b89e11d19 8341906: Optimize ClassFile writing BufBuffer Reviewed-by: liach ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractAttributeMapper.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractBoundLocalVariable.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPseudoInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationReader.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufWriterImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectClassBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectFieldBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/FieldImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/MethodImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java Changeset: 472db922 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-11 02:17:37 +0000 URL: https://git.openjdk.org/leyden/commit/472db922fabfb8942f15d39ebd58125189bc8600 8341900: Optimize DirectCodeBuilder writeBody Reviewed-by: liach ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java Changeset: ace44e56 Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-11 07:29:11 +0000 URL: https://git.openjdk.org/leyden/commit/ace44e564ffe67af5fc25a0f126cf48da0eca078 8341806: Gcc version detection failure on Alinux3 Reviewed-by: ihse, jwaters ! make/autoconf/toolchain.m4 Changeset: ae41daf9 Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-11 08:12:37 +0000 URL: https://git.openjdk.org/leyden/commit/ae41daf9a780f8fd29b2af984e9aa60ae9b10937 8341880: RISC-V: riscv_vector.h native build fails with gcc13 after JDK-8320500 Co-authored-by: Fei Yang Reviewed-by: mli, fyang ! src/jdk.incubator.vector/linux/native/libsleef/lib/vector_math_rvv.c Changeset: 7c0dbf8e Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2024-10-11 08:22:27 +0000 URL: https://git.openjdk.org/leyden/commit/7c0dbf8e9c69d51aa8e06305e4483002116019f4 8341820: Check return value of hcreate_r Reviewed-by: cjplummer, lucy ! src/jdk.hotspot.agent/linux/native/libsaproc/symtab.c Changeset: 519544c1 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2024-10-11 09:12:16 +0000 URL: https://git.openjdk.org/leyden/commit/519544c1d72bccb4528953adb054ea3ee97e35b9 8341909: G1: Add region index to region printer output Reviewed-by: kbarrett, lkorinth ! src/hotspot/share/gc/g1/g1HeapRegionPrinter.hpp Changeset: 61338661 Branch: hermetic-java-runtime Author: Jan Lahoda Date: 2024-10-11 10:07:34 +0000 URL: https://git.openjdk.org/leyden/commit/6133866150cf6131ab578f1537f84c239703fa67 8341070: javac fails with an exception when compiling import module under source level 8 Reviewed-by: asotona ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! test/langtools/tools/javac/ImportModule.java Changeset: 7276a1be Branch: hermetic-java-runtime Author: Quan Anh Mai Date: 2024-10-11 15:28:15 +0000 URL: https://git.openjdk.org/leyden/commit/7276a1bec0d90f63e9e433fdcdfd6564b70dc9bb 8341784: Refactor TypeVect to use a BasicType instead of a const Type* Reviewed-by: kvn, jkarthikeyan ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/s390/s390.ad ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/matcher.hpp ! src/hotspot/share/opto/superwordVTransformBuilder.cpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/type.hpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/opto/vectornode.cpp ! src/hotspot/share/opto/vectornode.hpp ! src/hotspot/share/opto/vtransform.cpp ! src/hotspot/share/opto/vtransform.hpp ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java ! test/hotspot/jtreg/compiler/lib/ir_framework/driver/irmatching/irrule/checkattribute/parsing/RawIRNode.java Changeset: 1f6bd0c3 Branch: hermetic-java-runtime Author: Damon Nguyen Date: 2024-10-11 20:03:14 +0000 URL: https://git.openjdk.org/leyden/commit/1f6bd0c3e509029bbf524b0ba34ce44601ac0b6a 8341972: java/awt/dnd/DnDRemoveFocusOwnerCrashTest.java timed out after JDK-8341257 Reviewed-by: azvegint ! test/jdk/ProblemList.txt ! test/jdk/java/awt/dnd/DnDRemoveFocusOwnerCrashTest.java Changeset: 0a57fe1d Branch: hermetic-java-runtime Author: Kim Barrett Date: 2024-10-11 21:11:12 +0000 URL: https://git.openjdk.org/leyden/commit/0a57fe1df6f3431cfb2d5d868597c61ef6af3806 8341178: TypeRawPtr::add_offset may be "miscompiled" due to UB Reviewed-by: dlong, kvn ! src/hotspot/share/opto/type.cpp Changeset: 3f53d571 Branch: hermetic-java-runtime Author: Weijun Wang Date: 2024-10-11 21:16:41 +0000 URL: https://git.openjdk.org/leyden/commit/3f53d571343792341481f4d15970cdc0bcd76a5e 8340327: A common framework to support public key algorithms with standard parameter sets Reviewed-by: ascarpino, mullan + src/java.base/share/classes/sun/security/pkcs/NamedPKCS8Key.java + src/java.base/share/classes/sun/security/provider/NamedKEM.java + src/java.base/share/classes/sun/security/provider/NamedKeyFactory.java + src/java.base/share/classes/sun/security/provider/NamedKeyPairGenerator.java + src/java.base/share/classes/sun/security/provider/NamedSignature.java ! src/java.base/share/classes/sun/security/util/KeyUtil.java ! src/java.base/share/classes/sun/security/util/SignatureUtil.java + src/java.base/share/classes/sun/security/x509/NamedX509Key.java + test/jdk/sun/security/provider/NamedEdDSA.java + test/jdk/sun/security/provider/NamedKeyFactoryTest.java Changeset: c4965d9b Branch: hermetic-java-runtime Author: Justin Lu Date: 2024-10-11 21:30:53 +0000 URL: https://git.openjdk.org/leyden/commit/c4965d9b135b58e0b3604bc1cc60978ad4c8c11b 8341794: Fix ExceptionOccurred in jdk.attach Reviewed-by: amenkov, cjplummer ! src/jdk.attach/windows/native/libattach/VirtualMachineImpl.c Changeset: 2db33971 Branch: hermetic-java-runtime Author: Justin Lu Date: 2024-10-11 21:31:58 +0000 URL: https://git.openjdk.org/leyden/commit/2db3397187563d1821d24578247f764c372fbb4b 8341797: Fix ExceptionOccurred in jdk.jdi Reviewed-by: amenkov, cjplummer ! src/jdk.jdi/share/native/libdt_shmem/SharedMemoryConnection.c ! src/jdk.jdi/share/native/libdt_shmem/SharedMemoryTransport.c Changeset: 2e1c1936 Branch: hermetic-java-runtime Author: Daniel D. Daugherty Date: 2024-10-12 02:45:50 +0000 URL: https://git.openjdk.org/leyden/commit/2e1c1936e183fe8329bb6247523bd73ad9b3ca88 8342003: ProblemList sun/security/tools/keytool/GenKeyPairSigner.java Reviewed-by: jpai ! test/jdk/ProblemList.txt Changeset: 41ee582d Branch: hermetic-java-runtime Author: Ramkumar Sunderbabu Committer: Leonid Mesnik Date: 2024-10-12 03:25:42 +0000 URL: https://git.openjdk.org/leyden/commit/41ee582df8c65f2f26b21e46784cf0bc4ece0585 8341138: Rename jtreg property docker.support as container.support Reviewed-by: sgehwolf, mseledtsov ! test/hotspot/jtreg/TEST.ROOT ! test/hotspot/jtreg/containers/docker/DockerBasicTest.java ! test/hotspot/jtreg/containers/docker/ShareTmpDir.java ! test/hotspot/jtreg/containers/docker/TestCPUAwareness.java ! test/hotspot/jtreg/containers/docker/TestCPUSets.java ! test/hotspot/jtreg/containers/docker/TestContainerInfo.java ! test/hotspot/jtreg/containers/docker/TestJFREvents.java ! test/hotspot/jtreg/containers/docker/TestJFRNetworkEvents.java ! test/hotspot/jtreg/containers/docker/TestJFRWithJMX.java ! test/hotspot/jtreg/containers/docker/TestJcmd.java ! test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java ! test/hotspot/jtreg/containers/docker/TestLimitsUpdating.java ! test/hotspot/jtreg/containers/docker/TestMemoryAwareness.java ! test/hotspot/jtreg/containers/docker/TestMisc.java ! test/hotspot/jtreg/containers/docker/TestPids.java ! test/jdk/TEST.ROOT ! test/jdk/jdk/internal/platform/docker/TestDockerBasic.java ! test/jdk/jdk/internal/platform/docker/TestDockerCpuMetrics.java ! test/jdk/jdk/internal/platform/docker/TestDockerMemoryMetrics.java ! test/jdk/jdk/internal/platform/docker/TestGetFreeSwapSpaceSize.java ! test/jdk/jdk/internal/platform/docker/TestLimitsUpdating.java ! test/jdk/jdk/internal/platform/docker/TestPidsLimit.java ! test/jdk/jdk/internal/platform/docker/TestSystemMetrics.java ! test/jdk/jdk/internal/platform/docker/TestUseContainerSupport.java ! test/jtreg-ext/requires/VMProps.java ! test/lib/jdk/test/lib/Container.java Changeset: 5c4f1ef7 Branch: hermetic-java-runtime Author: Abhishek Kumar Date: 2024-10-14 04:45:12 +0000 URL: https://git.openjdk.org/leyden/commit/5c4f1ef746b0c373a131726d74d27f0e0cc6e40d 8226933: [TEST_BUG]GTK L&F: There is no swatches or RGB tab in JColorChooser Reviewed-by: aivanov, psadhukhan, tr ! test/jdk/javax/swing/JColorChooser/Test4887836.java + test/jdk/javax/swing/plaf/basic/BasicSliderUI/bug4419255.java Changeset: fe98f86b Branch: hermetic-java-runtime Author: Abhishek Kumar Date: 2024-10-14 04:45:24 +0000 URL: https://git.openjdk.org/leyden/commit/fe98f86b5792cbb17d47871452d27ab87d72b342 8226938: [TEST_BUG]GTK L&F: There is no Details button in FileChooser Dialog Reviewed-by: honkar, prr + test/jdk/javax/swing/JFileChooser/bug4587721.java Changeset: 8d0975a2 Branch: hermetic-java-runtime Author: Tobias Hartmann Date: 2024-10-14 05:26:48 +0000 URL: https://git.openjdk.org/leyden/commit/8d0975a27d826f7aa487a612131827586abaefd5 8336726: C2: assert(!do_asserts || projs->fallthrough_ioproj != nullptr) failed: must be found Reviewed-by: chagedorn, kvn, vlivanov ! src/hotspot/share/opto/callGenerator.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp + test/hotspot/jtreg/compiler/c2/TestCallDevirtualizationWithInfiniteLoop.java Changeset: 037f11b8 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-14 06:02:00 +0000 URL: https://git.openjdk.org/leyden/commit/037f11b864734734dd7fbce029b2e8b4bc17f3ab 8341708: Optimize safepoint poll encoding with smaller poll data offset Reviewed-by: kvn, qamai ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/thread.hpp ! test/hotspot/jtreg/compiler/c2/irTests/TestPadding.java Changeset: e3f65039 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-14 07:55:38 +0000 URL: https://git.openjdk.org/leyden/commit/e3f650393744790e24820b2d6d99dd1da1a44de6 8341893: AArch64: Micro-optimize compressed ptr decoding Reviewed-by: aph, fyang ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp Changeset: dcac4b0a Branch: hermetic-java-runtime Author: Fei Gao Date: 2024-10-14 08:40:03 +0000 URL: https://git.openjdk.org/leyden/commit/dcac4b0a532f2ca6cb374da7ece331e8266ab351 8341471: Reversed field layout caused by unstable sorting Reviewed-by: jwaters, jsjolen ! src/hotspot/share/classfile/fieldLayoutBuilder.hpp + test/hotspot/jtreg/runtime/FieldLayout/TestFieldLayout.java Changeset: b20c5c79 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2024-10-14 10:34:19 +0000 URL: https://git.openjdk.org/leyden/commit/b20c5c79def1ef2cc4b587b7688f8f1d4c81d699 8341967: Unify os::current_file_offset and os::seek_to_file_offset across posix platforms Reviewed-by: jsjolen, mdoerr ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/posix/os_posix.cpp Changeset: 15815089 Branch: hermetic-java-runtime Author: Afshin Zafari Date: 2024-10-14 10:51:37 +0000 URL: https://git.openjdk.org/leyden/commit/1581508988141bfb420d97759138203f30926b35 8335091: NMT: VMATree reserve_mapping and commit_mapping APIs need MEMFLAGS while un/-committing API has no MEMFLAGS arg Reviewed-by: jsjolen, gziemski ! src/hotspot/share/nmt/vmatree.cpp ! src/hotspot/share/nmt/vmatree.hpp ! test/hotspot/gtest/nmt/test_vmatree.cpp Changeset: ba3774dc Branch: hermetic-java-runtime Author: Daniel Fuchs Date: 2024-10-14 12:29:06 +0000 URL: https://git.openjdk.org/leyden/commit/ba3774dc5d27e762dfd61f8acf842ae11dec0cb7 8341637: java/net/Socket/UdpSocket.java fails with "java.net.BindException: Address already in use" (macos-aarch64) Reviewed-by: jpai ! test/jdk/java/net/Socket/UdpSocket.java Changeset: f56a1541 Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-14 12:32:55 +0000 URL: https://git.openjdk.org/leyden/commit/f56a154132f7e66b1b65adfa2aa937119999b14a 8341881: [REDO] java/nio/file/attribute/BasicFileAttributeView/CreationTime.java#tmp fails on alinux3 Reviewed-by: liach, sgehwolf, ihse, bpb ! make/test/JtregNativeJdk.gmk ! test/jdk/java/nio/file/attribute/BasicFileAttributeView/CreationTime.java + test/jdk/java/nio/file/attribute/BasicFileAttributeView/CreationTimeHelper.java + test/jdk/java/nio/file/attribute/BasicFileAttributeView/libCreationTimeHelper.c Changeset: 9e262df8 Branch: hermetic-java-runtime Author: Weijun Wang Date: 2024-10-14 16:00:04 +0000 URL: https://git.openjdk.org/leyden/commit/9e262df813874043f72b60695a88c28fc7d5cccb 8342002: sun/security/tools/keytool/GenKeyPairSigner.java failed due to missing certificate output Reviewed-by: mullan ! test/jdk/ProblemList.txt ! test/jdk/sun/security/tools/keytool/GenKeyPairSigner.java Changeset: a8a8b2de Branch: hermetic-java-runtime Author: Igor Veresov Date: 2024-10-14 16:44:53 +0000 URL: https://git.openjdk.org/leyden/commit/a8a8b2deba854ac105ed760c09e65701c4d0f6fc 8341831: PhaseCFG::insert_anti_dependences asserts with "no loads" Reviewed-by: dlong, kvn ! src/hotspot/share/opto/gcm.cpp ! test/hotspot/jtreg/ProblemList.txt Changeset: 60713463 Branch: hermetic-java-runtime Author: Alisen Chung Date: 2024-10-14 16:45:59 +0000 URL: https://git.openjdk.org/leyden/commit/60713463c7014e4e15da73023e82ef58d7134b48 8339879: Open some dialog awt tests Reviewed-by: honkar, prr + test/jdk/java/awt/Dialog/DefaultIconTest.java + test/jdk/java/awt/Dialog/DialogInitialResizability.java + test/jdk/java/awt/Dialog/NestedDialogTest.java + test/jdk/java/awt/Dialog/ShownModalDialogSerializationTest.java Changeset: a2c77522 Branch: hermetic-java-runtime Author: Chen Liang Date: 2024-10-14 17:21:10 +0000 URL: https://git.openjdk.org/leyden/commit/a2c775222e17a3ba2e388c9a0eb9ffd33efad219 8317356: Fix missing null checks in the ClassFile API Co-authored-by: Nizar Benalla Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/AnnotationValue.java ! src/java.base/share/classes/java/lang/classfile/AttributedElement.java ! src/java.base/share/classes/java/lang/classfile/ClassHierarchyResolver.java ! src/java.base/share/classes/java/lang/classfile/ClassTransform.java ! src/java.base/share/classes/java/lang/classfile/CodeTransform.java ! src/java.base/share/classes/java/lang/classfile/FieldTransform.java ! src/java.base/share/classes/java/lang/classfile/MethodTransform.java ! src/java.base/share/classes/java/lang/classfile/components/ClassRemapper.java ! src/java.base/share/classes/java/lang/classfile/components/CodeRelabeler.java ! src/java.base/share/classes/java/lang/classfile/instruction/DiscontinuedInstruction.java ! src/java.base/share/classes/java/lang/invoke/MethodHandleProxies.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPseudoInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BlockCodeBuilderImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufferedCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufferedFieldBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufferedMethodBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ChainedClassBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ChainedCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ChainedFieldBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ChainedMethodBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassHierarchyImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassPrinterImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectClassBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectFieldBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectMethodBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/TemporaryConstantPool.java ! src/java.base/share/classes/jdk/internal/classfile/impl/UnboundAttribute.java Changeset: bd626442 Branch: hermetic-java-runtime Author: Chen Liang Date: 2024-10-14 17:22:11 +0000 URL: https://git.openjdk.org/leyden/commit/bd6264420b9f248999dd8387c25c549b08bd193a 8341924: Improve error message with structurally malformed Code array Reviewed-by: asotona ! src/jdk.jdeps/share/classes/com/sun/tools/javap/CodeWriter.java Changeset: a601cd2e Branch: hermetic-java-runtime Author: Fei Yang Date: 2024-10-15 02:53:44 +0000 URL: https://git.openjdk.org/leyden/commit/a601cd2e100958e3f37ae65e32e4b3cac246c079 8342014: RISC-V: ZStoreBarrierStubC2 clobbers rflags Reviewed-by: rehn, aboldtch, mli ! src/hotspot/cpu/riscv/gc/g1/g1_riscv.ad ! src/hotspot/cpu/riscv/gc/x/x_riscv.ad ! src/hotspot/cpu/riscv/gc/z/z_riscv.ad Changeset: f49cbbd5 Branch: hermetic-java-runtime Author: Jiangli Zhou Date: 2024-10-14 20:15:29 +0000 URL: https://git.openjdk.org/leyden/commit/f49cbbd585cd58bd50c3b18654e3ceab60fd28d5 Merge branch 'master' into hermetic-java-runtime ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/threads.cpp ! src/java.base/share/native/libjli/java.c ! src/java.base/share/native/libjli/java.h ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/threads.cpp ! src/java.base/share/native/libjli/java.c ! src/java.base/share/native/libjli/java.h From adinn at redhat.com Tue Oct 15 16:14:10 2024 From: adinn at redhat.com (Andrew Dinn) Date: Tue, 15 Oct 2024 17:14:10 +0100 Subject: [premain] need help merging g1BarrierSetC2.cpp In-Reply-To: <0828cf20-4339-42b4-afc1-30603c7fcd11@redhat.com> References: <979c8d6e-cff9-473d-b5eb-b0b8b3a05f8c@redhat.com> <28476c49-9f26-4f0a-baf0-f85469e8391a@oracle.com> <59f862d1-2834-4247-884e-4a956ab3edb0@oracle.com> <7495f174-5980-4b5a-953c-8cdc0a095979@oracle.com> <5749d803-f2b7-464b-8dd8-0f3de99ae002@redhat.com> <0b40e445-548f-43bd-b8ca-728a77ef3463@redhat.com> <0828cf20-4339-42b4-afc1-30603c7fcd11@redhat.com> Message-ID: Hi Ioi, I think I know now have bot aarch64 and x86 code working. The tweak I made after the merge to Ashu's code in G1BarrierSetAssembler::generate_post_barrier_fast_path that selects which registers to be pushed and used as scratch registers was incomplete -- it failed to allow for aliasing of a pushed scratch register to new_val and store_addr. I pushed a follow-up patch to my premain repo which fixes this: https://github.com/adinn/leyden/commit/88b6b4b2770cc976b82a5f4c35fd87c94b947d28 All the tests that you flagged as failing are now passing with this extra commit. Could you merge that change from here and rerun tests: https://github.com/adinn/leyden/tree/premain regards, Andrew Dinn ----------- On 14/10/2024 15:49, Andrew Dinn wrote: > Hi Ioi, > > I believe I have worked out what was causing the aarch64 code to break. > A call from archived C2 code to > G1BarrierSetRuntime::write_ref_field_pre_entry was not being relocated > and so we ended up jumping to an address in the old VM 0xffff76c77578 > rather than the correct address in the new VM 0xfffff4c77578. > > This was happening because the C2 barrier code was refactored to use > some new helper methods and one of them, > generate_c2_barrier_runtime_call, failed to load its branch target using > a RuntimeAddress wrapper > > ??? static void generate_c2_barrier_runtime_call(MacroAssembler* masm, > G1BarrierStubC2* stub, const Register arg, const address runtime_path) { > ????? SaveLiveRegisters save_registers(masm, stub); > ????? if (c_rarg0 != arg) { > ??????? __ mov(c_rarg0, arg); > ????? } > ????? __ mov(c_rarg1, rthread); > ????? __ mov(rscratch1, runtime_path); > ????? __ blr(rscratch1); > ??? } > > > The mov to rscratch1 above needs to be replaced with > > ? __ lea(rscratch1, RuntimeAddress(runtime_path)); > > I have pushed a patch to the branch in my repo and with this patch the > ExcludedClasses, JavacBench, MicronautFirstApp, HelidonQuickStart and > SpringPetclinic tests all passed. > > I am not sure what is breaking x86 but it is not the same problem -- the > x86 implementation of generate_c2_barrier_runtime_call is defined > correctly as follows: > > ??? static void generate_c2_barrier_runtime_call(MacroAssembler* masm, > G1BarrierStubC2* stub, const Register arg, const address runtime_path) { > ??? #ifdef _LP64 > ????? SaveLiveRegisters save_registers(masm, stub); > ????? if (c_rarg0 != arg) { > ??????? __ mov(c_rarg0, arg); > ????? } > ????? __ mov(c_rarg1, r15_thread); > ????? // rax is a caller-saved, non-argument-passing register, so it > does not > ????? // interfere with c_rarg0 or c_rarg1. If it contained any live > value before > ????? // entering this stub, it is saved at this point, and restored > after the > ????? // call. If it did not contain any live value, it is free to be > used. In > ????? // either case, it is safe to use it here as a call scratch > register. > ????? __ call(RuntimeAddress(runtime_path), rax); > ??? #else > ????? Unimplemented(); > ??? #endif // _LP64 > ??? } > > I will move on now to debugging the problems on x86. > > regards, > > > Andrew Dinn > ----------- From ioi.lam at oracle.com Wed Oct 16 23:35:04 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Wed, 16 Oct 2024 16:35:04 -0700 Subject: [premain] need help merging g1BarrierSetC2.cpp In-Reply-To: References: <979c8d6e-cff9-473d-b5eb-b0b8b3a05f8c@redhat.com> <28476c49-9f26-4f0a-baf0-f85469e8391a@oracle.com> <59f862d1-2834-4247-884e-4a956ab3edb0@oracle.com> <7495f174-5980-4b5a-953c-8cdc0a095979@oracle.com> <5749d803-f2b7-464b-8dd8-0f3de99ae002@redhat.com> <0b40e445-548f-43bd-b8ca-728a77ef3463@redhat.com> <0828cf20-4339-42b4-afc1-30603c7fcd11@redhat.com> Message-ID: <5fa49915-c55a-4332-9fa1-06d46d5a3665@oracle.com> Hi Andrew, Thanks for making the fixes. I ran tiers 1-3 in our test pipeline and don't see any regression any more. All leyden tests passed. I've merged your commits into the premain branch. Thanks - Ioi On 10/15/24 9:14 AM, Andrew Dinn wrote: > Hi Ioi, > > I think I know now have bot aarch64 and x86 code working. The tweak I > made after the merge to Ashu's code in > G1BarrierSetAssembler::generate_post_barrier_fast_path that selects > which registers to be pushed and used as scratch registers was > incomplete -- it failed to allow for aliasing of a pushed scratch > register to new_val and store_addr. > > I pushed a follow-up patch to my premain repo which fixes this: > > > https://urldefense.com/v3/__https://github.com/adinn/leyden/commit/88b6b4b2770cc976b82a5f4c35fd87c94b947d28__;!!ACWV5N9M2RV99hQ!PpxY4tG39vD_inF2jUPnQElY-EfCfvqoYLK9eeX6pK8SMDznvK_noH10OdAV9A8doJs7T0_GDfg$ > > All the tests that you flagged as failing are now passing with this > extra commit. > > Could you merge that change from here and rerun tests: > > https://urldefense.com/v3/__https://github.com/adinn/leyden/tree/premain__;!!ACWV5N9M2RV99hQ!PpxY4tG39vD_inF2jUPnQElY-EfCfvqoYLK9eeX6pK8SMDznvK_noH10OdAV9A8doJs7CMpdo3M$ > > > regards, > > > Andrew Dinn > ----------- > > On 14/10/2024 15:49, Andrew Dinn wrote: >> Hi Ioi, >> >> I believe I have worked out what was causing the aarch64 code to >> break. A call from archived C2 code to >> G1BarrierSetRuntime::write_ref_field_pre_entry was not being >> relocated and so we ended up jumping to an address in the old VM >> 0xffff76c77578 rather than the correct address in the new VM >> 0xfffff4c77578. >> >> This was happening because the C2 barrier code was refactored to use >> some new helper methods and one of them, >> generate_c2_barrier_runtime_call, failed to load its branch target >> using a RuntimeAddress wrapper >> >> ???? static void generate_c2_barrier_runtime_call(MacroAssembler* >> masm, G1BarrierStubC2* stub, const Register arg, const address >> runtime_path) { >> ?????? SaveLiveRegisters save_registers(masm, stub); >> ?????? if (c_rarg0 != arg) { >> ???????? __ mov(c_rarg0, arg); >> ?????? } >> ?????? __ mov(c_rarg1, rthread); >> ?????? __ mov(rscratch1, runtime_path); >> ?????? __ blr(rscratch1); >> ???? } >> >> >> The mov to rscratch1 above needs to be replaced with >> >> ?? __ lea(rscratch1, RuntimeAddress(runtime_path)); >> >> I have pushed a patch to the branch in my repo and with this patch >> the ExcludedClasses, JavacBench, MicronautFirstApp, HelidonQuickStart >> and SpringPetclinic tests all passed. >> >> I am not sure what is breaking x86 but it is not the same problem -- >> the x86 implementation of generate_c2_barrier_runtime_call is defined >> correctly as follows: >> >> ???? static void generate_c2_barrier_runtime_call(MacroAssembler* >> masm, G1BarrierStubC2* stub, const Register arg, const address >> runtime_path) { >> ???? #ifdef _LP64 >> ?????? SaveLiveRegisters save_registers(masm, stub); >> ?????? if (c_rarg0 != arg) { >> ???????? __ mov(c_rarg0, arg); >> ?????? } >> ?????? __ mov(c_rarg1, r15_thread); >> ?????? // rax is a caller-saved, non-argument-passing register, so it >> does not >> ?????? // interfere with c_rarg0 or c_rarg1. If it contained any live >> value before >> ?????? // entering this stub, it is saved at this point, and restored >> after the >> ?????? // call. If it did not contain any live value, it is free to >> be used. In >> ?????? // either case, it is safe to use it here as a call scratch >> register. >> ?????? __ call(RuntimeAddress(runtime_path), rax); >> ???? #else >> ?????? Unimplemented(); >> ???? #endif // _LP64 >> ???? } >> >> I will move on now to debugging the problems on x86. >> >> regards, >> >> >> Andrew Dinn >> ----------- > From duke at openjdk.org Wed Oct 16 23:35:57 2024 From: duke at openjdk.org (duke) Date: Wed, 16 Oct 2024 23:35:57 GMT Subject: git: openjdk/leyden: premain: 93 new changesets Message-ID: Changeset: 0b467e90 Branch: premain Author: Roberto Casta?eda Lozano Date: 2024-10-03 08:36:33 +0000 URL: https://git.openjdk.org/leyden/commit/0b467e902d591ae9feeec1669918d1588987cd1c 8334060: Implementation of Late Barrier Expansion for G1 Co-authored-by: Roberto Casta?eda Lozano Co-authored-by: Erik ?sterlund Co-authored-by: Siyao Liu Co-authored-by: Kim Barrett Co-authored-by: Amit Kumar Co-authored-by: Martin Doerr Co-authored-by: Feilong Jiang Co-authored-by: Sergey Nazarkin Reviewed-by: kvn, tschatzl, fyang, ayang, kbarrett ! make/hotspot/gensrc/GensrcAdlc.gmk ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/cas.m4 ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.hpp + src/hotspot/cpu/aarch64/gc/g1/g1_aarch64.ad + src/hotspot/cpu/aarch64/gc/g1/g1_aarch64.m4 ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/arm/assembler_arm_32.hpp ! src/hotspot/cpu/arm/gc/g1/g1BarrierSetAssembler_arm.cpp ! src/hotspot/cpu/arm/gc/g1/g1BarrierSetAssembler_arm.hpp + src/hotspot/cpu/arm/gc/g1/g1_arm.ad ! src/hotspot/cpu/arm/gc/shared/barrierSetAssembler_arm.cpp ! src/hotspot/cpu/arm/gc/shared/barrierSetAssembler_arm.hpp ! src/hotspot/cpu/arm/register_arm.hpp ! src/hotspot/cpu/ppc/gc/g1/g1BarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/gc/g1/g1BarrierSetAssembler_ppc.hpp + src/hotspot/cpu/ppc/gc/g1/g1_ppc.ad ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/ppc/register_ppc.hpp ! src/hotspot/cpu/riscv/gc/g1/g1BarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/gc/g1/g1BarrierSetAssembler_riscv.hpp + src/hotspot/cpu/riscv/gc/g1/g1_riscv.ad ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/s390/gc/g1/g1BarrierSetAssembler_s390.cpp ! src/hotspot/cpu/s390/gc/g1/g1BarrierSetAssembler_s390.hpp + src/hotspot/cpu/s390/gc/g1/g1_s390.ad ! src/hotspot/cpu/s390/gc/shared/barrierSetAssembler_s390.cpp ! src/hotspot/cpu/s390/gc/shared/barrierSetAssembler_s390.hpp ! src/hotspot/cpu/s390/macroAssembler_s390.cpp ! src/hotspot/cpu/s390/register_s390.hpp ! src/hotspot/cpu/s390/s390.ad ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.hpp + src/hotspot/cpu/x86/gc/g1/g1_x86_64.ad ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/share/gc/g1/c2/g1BarrierSetC2.cpp ! src/hotspot/share/gc/g1/c2/g1BarrierSetC2.hpp ! src/hotspot/share/gc/g1/g1BarrierSetRuntime.cpp ! src/hotspot/share/gc/g1/g1BarrierSetRuntime.hpp ! src/hotspot/share/gc/shared/c2/barrierSetC2.cpp ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.cpp ! src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.hpp ! src/hotspot/share/opto/buildOopMap.cpp ! src/hotspot/share/opto/lcm.cpp ! src/hotspot/share/opto/matcher.cpp ! src/hotspot/share/opto/matcher.hpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/output.cpp ! test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java ! test/hotspot/jtreg/compiler/c2/irTests/scalarReplacement/AllocationMergesTests.java + test/hotspot/jtreg/compiler/gcbarriers/TestG1BarrierGeneration.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java + test/hotspot/jtreg/compiler/runtime/safepoints/TestMachTempsAcrossSafepoints.java ! test/hotspot/jtreg/testlibrary/ctw/src/sun/hotspot/tools/ctw/CtwRunner.java ! test/jdk/java/lang/invoke/BigArityTest.java Changeset: 19642bd3 Branch: premain Author: Alexander Zuev Date: 2024-10-03 09:23:46 +0000 URL: https://git.openjdk.org/leyden/commit/19642bd3833fa96eb4bc7a8a11e902782e0b7844 8341148: Open source several Choice related tests Reviewed-by: abhiscxk + test/jdk/java/awt/Choice/ChoiceInLWTest/ChoiceInLWTest.java + test/jdk/java/awt/Choice/MultiItemSelected/MultiItemSelected_DragOut.java + test/jdk/java/awt/Choice/MultiItemSelected/MultiItemSelected_KeySelect.java + test/jdk/java/awt/Choice/MultiItemSelected/MultiItemSelected_UpDown.java + test/jdk/java/awt/Choice/RepaintAfterRemoveLastItemTest/RepaintAfterRemoveLastItemTest.java Changeset: 6af13580 Branch: premain Author: Jorn Vernee Date: 2024-10-03 12:02:24 +0000 URL: https://git.openjdk.org/leyden/commit/6af13580c2086afefde489275bc2353c2320ff3f 8337753: Target class of upcall stub may be unloaded Reviewed-by: amitkumar, vlivanov, mdoerr ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/upcallLinker_aarch64.cpp ! src/hotspot/cpu/arm/upcallLinker_arm.cpp ! src/hotspot/cpu/ppc/stubGenerator_ppc.cpp ! src/hotspot/cpu/ppc/upcallLinker_ppc.cpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp ! src/hotspot/cpu/riscv/upcallLinker_riscv.cpp ! src/hotspot/cpu/s390/stubGenerator_s390.cpp ! src/hotspot/cpu/s390/upcallLinker_s390.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.hpp ! src/hotspot/cpu/x86/upcallLinker_x86_32.cpp ! src/hotspot/cpu/x86/upcallLinker_x86_64.cpp ! src/hotspot/cpu/zero/upcallLinker_zero.cpp ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/prims/upcallLinker.cpp ! src/hotspot/share/prims/upcallLinker.hpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/frame.hpp ! src/hotspot/share/runtime/stubRoutines.cpp ! src/hotspot/share/runtime/stubRoutines.hpp ! test/jdk/TEST.groups + test/jdk/java/foreign/TestUpcallStress.java Changeset: d7f32d89 Branch: premain Author: Shaojin Wen Date: 2024-10-03 12:08:23 +0000 URL: https://git.openjdk.org/leyden/commit/d7f32d891cde2278fe7158fb28d29235db5c818c 8341415: Optimize RawBytecodeHelper::next Reviewed-by: liach ! src/java.base/share/classes/jdk/internal/classfile/impl/RawBytecodeHelper.java Changeset: 7d524d7e Branch: premain Author: Abhishek Kumar Date: 2024-10-03 12:20:01 +0000 URL: https://git.openjdk.org/leyden/commit/7d524d7e378430afb3a262e8fe544bd1be22748c 8341004: Open source AWT FileDialog related tests Reviewed-by: kizune + test/jdk/java/awt/FileDialog/DoubleActionCloseX.java + test/jdk/java/awt/FileDialog/DoubleActionESC.java + test/jdk/java/awt/FileDialog/TestFileDialogDupJNIRef.java Changeset: 21f8ccf4 Branch: premain Author: Severin Gehwolf Date: 2024-10-03 12:55:54 +0000 URL: https://git.openjdk.org/leyden/commit/21f8ccf4a97313593f210f9a07e56d5ff92b7aa5 8341310: Test TestJcmdWithSideCar.java should skip ACCESS_TMP_VIA_PROC_ROOT (after JDK-8327114) Reviewed-by: kevinw ! test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java Changeset: eb93e695 Branch: premain Author: Alan Bateman Date: 2024-10-03 14:02:40 +0000 URL: https://git.openjdk.org/leyden/commit/eb93e6952b5d2dbe78cd9680855ac99c69b3dcb2 8339979: VirtualThreadSchedulerMXBeanTest.testReduceParallelism fails intermittently Reviewed-by: kevinw ! test/jdk/jdk/management/VirtualThreadSchedulerMXBean/VirtualThreadSchedulerMXBeanTest.java Changeset: 12028000 Branch: premain Author: Shaojin Wen Date: 2024-10-03 14:34:05 +0000 URL: https://git.openjdk.org/leyden/commit/12028000db2ef3b1c784af119c495aa3ef9590cf 8341006: Optimize StackMapGenerator detect frames Reviewed-by: liach ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java Changeset: f1ea57f0 Branch: premain Author: Brian Burkhalter Date: 2024-10-03 15:13:42 +0000 URL: https://git.openjdk.org/leyden/commit/f1ea57f06a044ebd39d31a7c4765d0220327b0a0 8340229: Improve opening sentence of FileInputStream constructor specification Reviewed-by: alanb, jpai ! src/java.base/share/classes/java/io/FileInputStream.java Changeset: 3ee94e04 Branch: premain Author: Brian Burkhalter Date: 2024-10-03 15:13:58 +0000 URL: https://git.openjdk.org/leyden/commit/3ee94e040a7395d11a294a6b660d707c97f188f8 8341282: (fs) Move creation time fallback logic to Java layer (Linux) Reviewed-by: sgehwolf, alanb ! src/java.base/unix/classes/sun/nio/fs/UnixFileAttributes.java ! src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c Changeset: ebb4759c Branch: premain Author: Alexander Zuev Date: 2024-10-03 16:19:09 +0000 URL: https://git.openjdk.org/leyden/commit/ebb4759c3d2776f5e6e83f743a7891a145f8aee4 8340625: Open source additional Component tests (part 3) Reviewed-by: psadhukhan + test/jdk/java/awt/Component/PaintGlitchTest/PaintGlitchTest.java + test/jdk/java/awt/Component/ProcessEvent/ProcessEvent.java + test/jdk/java/awt/Component/SetFontOrBackground/SetBgrFnt.java Changeset: de12fc7a Branch: premain Author: Hannes Walln?fer Date: 2024-10-03 16:44:22 +0000 URL: https://git.openjdk.org/leyden/commit/de12fc7a3601ad7d5e10ccd38967b26eadf96aff 8339684: ResizeObserver callback interrupts smooth scrolling on Chrome Reviewed-by: prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script.js.template Changeset: 013250e4 Branch: premain Author: Damon Nguyen Date: 2024-10-03 16:46:46 +0000 URL: https://git.openjdk.org/leyden/commit/013250e4a7bc2fa83c6e57bb8fad6002dbe3176c 8340432: Open source some MenuBar tests - Set2 Reviewed-by: prr, psadhukhan + test/jdk/java/awt/MenuBar/MenuBarAddRemoveTest/MenuBarAddRemoveTest.java + test/jdk/java/awt/MenuBar/MenuBarOnDisabledFrame/MenuBarOnDisabledFrame.java + test/jdk/java/awt/MenuBar/MenuBarVisuals/MenuBarVisuals.java + test/jdk/java/awt/MenuBar/SetHelpMenuTest/SetHelpMenuTest.java Changeset: b6e72ff9 Branch: premain Author: Jamil Nimeh Date: 2024-10-03 17:16:31 +0000 URL: https://git.openjdk.org/leyden/commit/b6e72ff971455f7768c2e1c0fe53d922e5deed38 8339403: sun.security.ssl.StatusResponseManager.get swallows interrupt status Reviewed-by: valeriep ! src/java.base/share/classes/sun/security/ssl/StatusResponseManager.java ! test/jdk/sun/security/ssl/Stapling/StatusResponseManager.java ! test/jdk/sun/security/ssl/Stapling/java.base/sun/security/ssl/StatusResponseManagerTests.java Changeset: 6f459aff Branch: premain Author: Harshitha Onkar Date: 2024-10-03 18:01:22 +0000 URL: https://git.openjdk.org/leyden/commit/6f459aff453679ee89fd80bb325737d76288e4d2 8340077: Open source few Checkbox tests - Set2 Reviewed-by: prr, azvegint, psadhukhan ! test/jdk/ProblemList.txt + test/jdk/java/awt/Checkbox/CheckboxBoxSizeTest.java + test/jdk/java/awt/Checkbox/CheckboxIndicatorSizeTest.java + test/jdk/java/awt/Checkbox/CheckboxNullLabelTest.java + test/jdk/java/awt/Checkbox/CheckboxPreferredSizeTest.java Changeset: e89fd1d2 Branch: premain Author: Phil Race Date: 2024-10-03 19:22:28 +0000 URL: https://git.openjdk.org/leyden/commit/e89fd1d2ceff82952a4859c0febe902412fcf064 8341128: open source some 2d graphics tests Reviewed-by: psadhukhan + test/jdk/java/awt/Graphics2D/BasicStrokeValidate.java + test/jdk/java/awt/Graphics2D/DrawImageIAETest/DrawImageIAETest.java = test/jdk/java/awt/Graphics2D/DrawImageIAETest/duke.gif + test/jdk/java/awt/Graphics2D/ImageRendering/ImageRendering.java = test/jdk/java/awt/Graphics2D/ImageRendering/snooze.gif + test/jdk/java/awt/Graphics2D/ScaledThinLineTest.java + test/jdk/java/awt/Graphics2D/TextPerf.java Changeset: 6bc3971f Branch: premain Author: Manukumar V S Committer: Phil Race Date: 2024-10-03 19:36:06 +0000 URL: https://git.openjdk.org/leyden/commit/6bc3971f646031194a1e30f175a69a0202dc4947 8341316: [macos] javax/swing/ProgressMonitor/ProgressMonitorEscapeKeyPress.java fails sometimes in macos Reviewed-by: prr ! test/jdk/javax/swing/ProgressMonitor/ProgressMonitorEscapeKeyPress.java Changeset: 10402b43 Branch: premain Author: Daniel D. Daugherty Date: 2024-10-03 20:25:47 +0000 URL: https://git.openjdk.org/leyden/commit/10402b43c764456f2ec358a8b434654df545a8a1 8341489: ProblemList runtime/cds/appcds/DumpRuntimeClassesTest.java in Xcomp mode Reviewed-by: matsaave ! test/hotspot/jtreg/ProblemList-Xcomp.txt Changeset: 4ded2838 Branch: premain Author: Dhamoder Nalla Committer: David Holmes Date: 2024-10-04 04:50:54 +0000 URL: https://git.openjdk.org/leyden/commit/4ded28380b6756e0679d80706f76bd6e78c370b9 8338136: Hotspot should support multiple large page sizes on Windows Reviewed-by: dholmes, djelinski ! src/hotspot/os/windows/globals_windows.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/os/windows/os_windows.hpp ! test/hotspot/gtest/runtime/test_os_windows.cpp Changeset: d3139b4c Branch: premain Author: Jayathirth D V Date: 2024-10-04 06:49:54 +0000 URL: https://git.openjdk.org/leyden/commit/d3139b4c3682defab2a8bfa0a24890232c3f00a3 8341000: Open source some of the AWT Window tests Reviewed-by: psadhukhan, abhiscxk + test/jdk/java/awt/Window/BadConfigure/BadConfigure.java + test/jdk/java/awt/Window/InvalidFocusLostEventTest/InvalidFocusLostEventTest.java Changeset: 3f420fac Branch: premain Author: Axel Boldt-Christmas Date: 2024-10-04 06:55:53 +0000 URL: https://git.openjdk.org/leyden/commit/3f420fac842153372e17222e7153cbc71c5789a7 8341451: Remove C2HandleAnonOMOwnerStub Reviewed-by: fyang, chagedorn ! src/hotspot/cpu/aarch64/c2_CodeStubs_aarch64.cpp ! src/hotspot/cpu/riscv/c2_CodeStubs_riscv.cpp ! src/hotspot/share/opto/c2_CodeStubs.hpp Changeset: a63ac5a6 Branch: premain Author: Richard Reingruber Date: 2024-10-04 08:26:15 +0000 URL: https://git.openjdk.org/leyden/commit/a63ac5a699a5d40c76d14f94a502b8003753f4dd 8340792: -XX:+PrintInterpreter: instructions should only be printed if printing all InterpreterCodelets Reviewed-by: mdoerr, coleenp ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/abstractInterpreter.hpp ! src/hotspot/share/interpreter/interpreter.cpp Changeset: ec020f3f Branch: premain Author: Stefan Johansson Date: 2024-10-04 08:26:35 +0000 URL: https://git.openjdk.org/leyden/commit/ec020f3fc988553ad1eda460d889b5ba24e76e8e 8340426: ZGC: Move defragment out of the allocation path Reviewed-by: aboldtch, jsikstro, eosterlund ! src/hotspot/share/gc/z/zHeap.cpp ! src/hotspot/share/gc/z/zHeap.hpp ! src/hotspot/share/gc/z/zPageAllocator.cpp ! src/hotspot/share/gc/z/zPageAllocator.hpp ! src/hotspot/share/gc/z/zRelocate.cpp Changeset: 1bdd79e7 Branch: premain Author: Todd V. Jonker Date: 2024-10-04 09:01:41 +0000 URL: https://git.openjdk.org/leyden/commit/1bdd79e7b2086197ab64161e89bbe8cc180f07ed 8341261: Tests assume UnlockExperimentalVMOptions is disabled by default Reviewed-by: stefank, mli, ysr ! test/hotspot/jtreg/compiler/blackhole/BlackholeExperimentalUnlockTest.java ! test/hotspot/jtreg/runtime/CommandLine/VMOptionWarning.java ! test/jtreg-ext/requires/VMProps.java Changeset: 7fa2f229 Branch: premain Author: Maurizio Cimadamore Date: 2024-10-04 09:45:50 +0000 URL: https://git.openjdk.org/leyden/commit/7fa2f229fbee68112cbdd18b811d95721adfe2ec 8341127: Extra call to MethodHandle::asType from memory segment var handles fails to inline Reviewed-by: psandoz, redestad, jvernee ! src/java.base/share/classes/java/lang/invoke/MethodHandle.java + test/micro/org/openjdk/bench/java/lang/foreign/LoopOverNonConstantAsType.java Changeset: 72ac72fe Branch: premain Author: Stefan Karlsson Date: 2024-10-04 11:43:11 +0000 URL: https://git.openjdk.org/leyden/commit/72ac72fe1f3faca299d3fb2b20d3af29c3fa1e56 8341413: Stop including osThread_os.hpp in the middle of the OSThread class Reviewed-by: coleenp, dholmes ! src/hotspot/os/aix/osThread_aix.cpp ! src/hotspot/os/aix/osThread_aix.hpp ! src/hotspot/os/aix/vmStructs_aix.hpp ! src/hotspot/os/bsd/osThread_bsd.cpp ! src/hotspot/os/bsd/osThread_bsd.hpp ! src/hotspot/os/bsd/vmStructs_bsd.hpp ! src/hotspot/os/linux/osThread_linux.cpp ! src/hotspot/os/linux/osThread_linux.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/vmStructs_linux.hpp ! src/hotspot/os/windows/osThread_windows.cpp ! src/hotspot/os/windows/osThread_windows.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/os/windows/vmStructs_windows.hpp ! src/hotspot/os_cpu/aix_ppc/vmStructs_aix_ppc.hpp ! src/hotspot/os_cpu/bsd_aarch64/vmStructs_bsd_aarch64.hpp ! src/hotspot/os_cpu/bsd_x86/vmStructs_bsd_x86.hpp ! src/hotspot/os_cpu/linux_aarch64/vmStructs_linux_aarch64.hpp ! src/hotspot/os_cpu/linux_arm/vmStructs_linux_arm.hpp ! src/hotspot/os_cpu/linux_ppc/vmStructs_linux_ppc.hpp ! src/hotspot/os_cpu/linux_riscv/vmStructs_linux_riscv.hpp ! src/hotspot/os_cpu/linux_s390/vmStructs_linux_s390.hpp ! src/hotspot/os_cpu/linux_x86/vmStructs_linux_x86.hpp ! src/hotspot/os_cpu/windows_aarch64/vmStructs_windows_aarch64.hpp ! src/hotspot/os_cpu/windows_x86/vmStructs_windows_x86.hpp ! src/hotspot/share/interpreter/bytecodeTracer.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp - src/hotspot/share/runtime/osThread.cpp ! src/hotspot/share/runtime/osThread.hpp + src/hotspot/share/runtime/osThreadBase.cpp + src/hotspot/share/runtime/osThreadBase.hpp Changeset: db61458d Branch: premain Author: Jayathirth D V Date: 2024-10-04 11:55:21 +0000 URL: https://git.openjdk.org/leyden/commit/db61458da840123925cb3ba079cfaf8277880320 8341298: Open source more AWT window tests Reviewed-by: abhiscxk + test/jdk/java/awt/Window/LocationByPlatformWithControls/TestLocationByPlatformWithControls.java + test/jdk/java/awt/Window/NoResizeEvent/NoResizeEvent.java + test/jdk/java/awt/Window/ProxyCrash/PopupProxyCrash.java + test/jdk/java/awt/Window/WindowToFrontTest/WindowToFrontTest.java Changeset: feb6a830 Branch: premain Author: Kim Barrett Date: 2024-10-04 15:58:22 +0000 URL: https://git.openjdk.org/leyden/commit/feb6a830e291ff71e2803e37be6c35c237f7c1cf 8340945: Ubsan: oopStorage.cpp:374:8: runtime error: applying non-zero offset 18446744073709551168 to null pointer Reviewed-by: tschatzl, mbaesken ! src/hotspot/share/gc/shared/oopStorage.cpp ! src/hotspot/share/gc/shared/oopStorage.hpp ! src/hotspot/share/gc/shared/oopStorage.inline.hpp ! test/hotspot/gtest/gc/shared/test_oopStorage.cpp Changeset: 42f32551 Branch: premain Author: Calvin Cheung Date: 2024-10-04 16:14:51 +0000 URL: https://git.openjdk.org/leyden/commit/42f32551cd2aaa4b7609cc887cb33fc58ac12779 8341053: Two CDS tests fail again with -UseCompressedOops and UseSerialGC/UseParallelGC Reviewed-by: iklam, matsaave ! src/hotspot/share/prims/whitebox.cpp Changeset: beb2a51b Branch: premain Author: Calvin Cheung Date: 2024-10-04 16:20:01 +0000 URL: https://git.openjdk.org/leyden/commit/beb2a51b126671d1fac8d4b473ad8042a22f9ff5 8341377: Update VMProps.isCDSRuntimeOptionsCompatible to include Parallel and Serial GC Reviewed-by: dholmes, shade ! test/jtreg-ext/requires/VMProps.java Changeset: 0dd49970 Branch: premain Author: Harshitha Onkar Date: 2024-10-04 16:38:31 +0000 URL: https://git.openjdk.org/leyden/commit/0dd49970428e08d35996752ba0878a97fb6f8530 8340555: Open source DnD tests - Set4 Reviewed-by: aivanov, azvegint ! test/jdk/ProblemList.txt + test/jdk/java/awt/dnd/DnDHTMLToOutlookTest/DnDHTMLToOutlookTest.java + test/jdk/java/awt/dnd/DnDHTMLToOutlookTest/DnDSource.html + test/jdk/java/awt/dnd/DnDHTMLToOutlookTest/DnDSource.java + test/jdk/java/awt/dnd/DragSourceMotionListenerTest.java + test/jdk/java/awt/dnd/DragToAnotherScreenTest.java + test/jdk/java/awt/dnd/RejectDragTest.java Changeset: 04c9c5f0 Branch: premain Author: Phil Race Date: 2024-10-04 17:20:09 +0000 URL: https://git.openjdk.org/leyden/commit/04c9c5f0a7b49bbabfc2244411c6c995a3b464cf 8341111: open source several AWT tests including menu shortcut tests Reviewed-by: psadhukhan, jdv + test/jdk/java/awt/MenuShortcut/ActionCommandTest.java + test/jdk/java/awt/MenuShortcut/CheckMenuShortcut.java + test/jdk/java/awt/MenuShortcut/FunctionKeyShortcut.java + test/jdk/java/awt/MenuShortcut/MenuItemShortcutReplaceTest.java + test/jdk/java/awt/grab/CursorTest.java + test/jdk/java/awt/grab/SystemMenuTest.java Changeset: f5f0852f Branch: premain Author: Kelvin Nilsen Date: 2024-10-04 17:29:31 +0000 URL: https://git.openjdk.org/leyden/commit/f5f0852f51d3dc1001bf3d68b89f4aab31e05e61 8341379: Shenandoah: Improve lock contention during cleanup Reviewed-by: xpeng, phh, wkemper ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp Changeset: 2e5b420f Branch: premain Author: Justin Lu Date: 2024-10-04 17:34:08 +0000 URL: https://git.openjdk.org/leyden/commit/2e5b420f81cf714fe66871c4b426a460b4714b28 8340326: Remove references to Applet in core-libs/security tests Reviewed-by: prr, naoto, dfuchs - test/jdk/java/net/Socket/SocketImplTest.java - test/jdk/java/util/TimeZone/DefaultTimeZoneTest.html ! test/jdk/java/util/TimeZone/DefaultTimeZoneTest.java ! test/jdk/java/util/logging/TestMainAppContext.java ! test/jdk/jdk/internal/loader/URLClassPath/ClassnameCharTest.java ! test/jdk/sun/net/www/ParseUtil_6380332.java ! test/jdk/sun/net/www/protocol/http/B6296310.java ! test/jdk/sun/net/www/protocol/http/ResponseCacheStream.java ! test/jdk/sun/rmi/transport/tcp/disableMultiplexing/DisableMultiplexing.java ! test/jdk/tools/launcher/HelpFlagsTest.java ! test/jdk/tools/launcher/VersionCheck.java Changeset: c8e70df3 Branch: premain Author: Jayathirth D V Date: 2024-10-04 18:08:37 +0000 URL: https://git.openjdk.org/leyden/commit/c8e70df37ebc90faaffae469244cefa10e8274c1 8341162: Open source some of the AWT window test Reviewed-by: aivanov + test/jdk/java/awt/Window/LocationByPlatform/TestLocationByPlatform.java + test/jdk/java/awt/Window/OwnedWindowShowTest/OwnedWindowShowTest.java + test/jdk/java/awt/Window/ResizeTest/ResizeTest.java + test/jdk/java/awt/Window/ShowWindowTest/ShowWindowTest.java Changeset: 7e3978ea Branch: premain Author: Damon Nguyen Date: 2024-10-04 18:35:08 +0000 URL: https://git.openjdk.org/leyden/commit/7e3978eab22f040995f5794b97417022532d375d 8340164: Open source few Component tests - Set1 Reviewed-by: psadhukhan, prr + test/jdk/java/awt/LightweightComponent/LWParentMovedTest/LWParentMovedTest.java + test/jdk/java/awt/LightweightComponent/LightWeightTabFocus/LightWeightTabFocus.java + test/jdk/java/awt/LightweightComponent/LightweightFontTest/LightweightFontTest.java Changeset: 3d38cd97 Branch: premain Author: Damon Nguyen Date: 2024-10-04 18:36:26 +0000 URL: https://git.openjdk.org/leyden/commit/3d38cd97eff2228e2172bfdbf5cc21cf2060f871 8340966: Open source few Checkbox and Cursor tests - Set1 Reviewed-by: psadhukhan, jdv + test/jdk/java/awt/Checkbox/DynamicChangeTest/DynamicChangeTest.java + test/jdk/java/awt/Cursor/CursorDragTest/ListDragCursor.java + test/jdk/java/awt/Cursor/HiddenDialogParentTest/HiddenDialogParentTest.java + test/jdk/java/awt/Cursor/InvalidImageCustomCursorTest/InvalidImageCustomCursorTest.java + test/jdk/java/awt/Cursor/NullCursorTest/NullCursorTest.java Changeset: 92cb6331 Branch: premain Author: Damon Nguyen Date: 2024-10-04 18:39:30 +0000 URL: https://git.openjdk.org/leyden/commit/92cb6331085bb6f4db091ce80d9951413541d74a 8340967: Open source few Cursor tests - Set2 Reviewed-by: psadhukhan + test/jdk/java/awt/Cursor/BlockedWindowTest/BlockedWindowTest.java + test/jdk/java/awt/Cursor/CursorUpdateTest/CursorUpdateTest.java + test/jdk/java/awt/Cursor/CustomCursorTest/CustomCursorTest.java + test/jdk/java/awt/Cursor/JPanelCursorTest/JPanelCursorTest.java + test/jdk/java/awt/Cursor/SetCursorTest/SetCursorTest.java Changeset: 86e3d52c Branch: premain Author: Damon Nguyen Date: 2024-10-04 18:42:45 +0000 URL: https://git.openjdk.org/leyden/commit/86e3d52c70a611975da3abdebd2e1f14c7a1d019 8341258: Open source few various AWT tests - Set1 Reviewed-by: psadhukhan + test/jdk/java/awt/CardLayout/RemoveComponentTest/RemoveComponentTest.java + test/jdk/java/awt/GradientPaint/JerkyGradient.java + test/jdk/java/awt/GradientPaint/ShearTest.java Changeset: e70cbcfd Branch: premain Author: Joe Darcy Date: 2024-10-04 19:25:31 +0000 URL: https://git.openjdk.org/leyden/commit/e70cbcfd0c07c0334bf3d5fe20da806129d7565e 8341541: Wrong anchor in wrapper classes links Reviewed-by: hannesw, liach ! src/java.base/share/classes/java/lang/package-info.java ! src/java.compiler/share/classes/javax/lang/model/util/Types.java Changeset: a3e23572 Branch: premain Author: Joe Darcy Date: 2024-10-04 20:31:28 +0000 URL: https://git.openjdk.org/leyden/commit/a3e23572d5e879bd1c3b1755cf7be4601d03b62e 8341483: Clarify special case handling of Types.getArrayType Reviewed-by: liach, prappo, dlsmith ! src/java.compiler/share/classes/javax/lang/model/util/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacTypes.java ! test/langtools/tools/javac/processing/model/util/types/TestInvalidInputs.java Changeset: 33e4bfdf Branch: premain Author: Chris Plummer Date: 2024-10-04 21:17:21 +0000 URL: https://git.openjdk.org/leyden/commit/33e4bfdf919c44bebcf122818ab92deeb1f1cdce 8341295: Add some useful debugging APIs to the debug agent Reviewed-by: amenkov, sspitsyn ! src/jdk.jdwp.agent/share/native/libjdwp/util.c ! src/jdk.jdwp.agent/share/native/libjdwp/util.h Changeset: 85e0e645 Branch: premain Author: Alexander Matveev Date: 2024-10-04 21:21:47 +0000 URL: https://git.openjdk.org/leyden/commit/85e0e6452d167db2fadd60543f875a6375339604 8341443: [macos] AppContentTest and SigningOptionsTest failed due to "codesign" does not fails with "--app-content" on macOS 15 Reviewed-by: asemenyuk ! test/jdk/tools/jpackage/macosx/SigningOptionsTest.java ! test/jdk/tools/jpackage/share/AppContentTest.java Changeset: bade041d Branch: premain Author: William Kemper Date: 2024-10-04 21:56:06 +0000 URL: https://git.openjdk.org/leyden/commit/bade041db82a09cf33d4dbcc849f5784b3851f3d 8341554: Shenandoah: Missing heap lock when updating usage for soft ref policy Reviewed-by: kdnilsen, ysr ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp Changeset: 55928948 Branch: premain Author: Damon Nguyen Date: 2024-10-04 22:08:37 +0000 URL: https://git.openjdk.org/leyden/commit/559289487d97230760cff6f3349be4dc55c3a2ef 8340417: Open source some MenuBar tests - Set1 Reviewed-by: psadhukhan + test/jdk/java/awt/MenuBar/CellsResize.java + test/jdk/java/awt/MenuBar/MenuBarRemoveMenu/MenuBarRemoveMenuTest.java + test/jdk/java/awt/MenuBar/MenuNPE/MenuNPE.java + test/jdk/java/awt/MenuBar/SetMBarWhenHidden/SetMBarWhenHidden.java Changeset: b42fbf43 Branch: premain Author: Shaojin Wen Date: 2024-10-04 22:35:03 +0000 URL: https://git.openjdk.org/leyden/commit/b42fbf43dfd62ae64973ff0e406b6609cd8e1aa6 8339699: Optimize DataOutputStream writeUTF Reviewed-by: liach, bpb ! src/java.base/share/classes/java/io/DataOutputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufWriterImpl.java + src/java.base/share/classes/jdk/internal/util/ModifiedUtf.java + test/micro/org/openjdk/bench/java/io/DataOutputStreamBench.java Changeset: f8db3a83 Branch: premain Author: Shaojin Wen Date: 2024-10-05 01:21:25 +0000 URL: https://git.openjdk.org/leyden/commit/f8db3a831b61bb585c5494a7a8657e37000892b4 8341510: Optimize StackMapGenerator::processFieldInstructions Reviewed-by: liach ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantDynamicEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/FieldRefEntry.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java Changeset: 1c3e56c3 Branch: premain Author: Shaojin Wen Date: 2024-10-05 15:37:18 +0000 URL: https://git.openjdk.org/leyden/commit/1c3e56c3e45be3626afec0461d4ae8059b0b577f 8341512: Optimize StackMapGenerator::processInvokeInstructions Reviewed-by: liach ! src/java.base/share/classes/java/lang/classfile/attribute/EnclosingMethodAttribute.java ! src/java.base/share/classes/java/lang/classfile/constantpool/InterfaceMethodRefEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/InvokeDynamicEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/MethodRefEntry.java ! src/java.base/share/classes/java/lang/classfile/instruction/InvokeInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackCounter.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java Changeset: df763cd2 Branch: premain Author: Martin Doerr Date: 2024-10-05 18:34:31 +0000 URL: https://git.openjdk.org/leyden/commit/df763cd2c27070d96a40c9ec00f921107767edb9 8341558: [AIX] build broken after 8341413 Reviewed-by: kbarrett ! src/hotspot/os/aix/osThread_aix.cpp ! src/hotspot/os/aix/osThread_aix.hpp Changeset: 9a25f822 Branch: premain Author: Martin Doerr Date: 2024-10-05 18:42:37 +0000 URL: https://git.openjdk.org/leyden/commit/9a25f822fb2529c1cae3ae909761381789d7b7b1 8339386: Assertion on AIX - original PC must be in the main code section of the compiled method Reviewed-by: rrich, lucy ! src/hotspot/cpu/ppc/frame_ppc.cpp Changeset: 260d4658 Branch: premain Author: Attila Szegedi Date: 2024-10-05 21:15:18 +0000 URL: https://git.openjdk.org/leyden/commit/260d4658aefe370d8994574c20057de07fd6f197 8340572: ConcurrentModificationException when sorting ArrayList sublists Reviewed-by: smarks ! src/java.base/share/classes/java/util/ArrayList.java + test/jdk/java/util/ArrayList/SortingModCount.java Changeset: 50426b38 Branch: premain Author: SendaoYan Date: 2024-10-06 12:21:17 +0000 URL: https://git.openjdk.org/leyden/commit/50426b3841240c5fda0df11439e52fa1ae9e7e07 8337713: RISC-V: fix typos in macroAssembler_riscv.cpp Reviewed-by: jwaters, fyang ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/methodHandles_riscv.cpp ! test/jdk/security/infra/java/security/cert/CertPathValidator/certification/CAInterop.java Changeset: 20f36c66 Branch: premain Author: David M. Lloyd Committer: Chen Liang Date: 2024-10-06 16:26:45 +0000 URL: https://git.openjdk.org/leyden/commit/20f36c666c30e50c446d09cca4ea52395317a7eb 8339329: ConstantPoolBuilder#constantValueEntry method doc typo and clarifications Reviewed-by: liach ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPoolBuilder.java ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantValueEntry.java Changeset: 6600161a Branch: premain Author: Aleksey Shipilev Date: 2024-10-07 07:05:31 +0000 URL: https://git.openjdk.org/leyden/commit/6600161ad46fe5b1e742409481bf225cd87f07c9 8338379: Accesses to class init state should be properly synchronized Reviewed-by: mdoerr, dholmes, coleenp, fyang, amitkumar ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp ! src/hotspot/cpu/arm/templateTable_arm.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp ! src/hotspot/cpu/s390/macroAssembler_s390.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/library_call.cpp Changeset: 92186a27 Branch: premain Author: Tobias Hartmann Date: 2024-10-07 07:58:01 +0000 URL: https://git.openjdk.org/leyden/commit/92186a27743732964b5cf3be339fd568da2aa4ba 8341612: [BACKOUT] 8338442: AArch64: Clean up IndOffXX type and let legitimize_address() fix out-of-range operands Reviewed-by: chagedorn ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/aarch64_vector.ad ! src/hotspot/cpu/aarch64/aarch64_vector_ad.m4 ! src/hotspot/cpu/aarch64/ad_encode.m4 ! src/hotspot/cpu/aarch64/gc/x/x_aarch64.ad ! src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad ! test/hotspot/jtreg/compiler/c2/TestUnalignedAccess.java Changeset: 81ebbb24 Branch: premain Author: Roberto Casta?eda Lozano Date: 2024-10-07 08:28:18 +0000 URL: https://git.openjdk.org/leyden/commit/81ebbb2463df8b014bb209dc4028668fc78e8327 8341525: G1: use bit clearing to remove tightly-coupled initialization store pre-barriers Reviewed-by: mdoerr, kbarrett, shade, tschatzl ! src/hotspot/share/gc/g1/c2/g1BarrierSetC2.cpp Changeset: 747a3fa3 Branch: premain Author: SendaoYan Date: 2024-10-07 08:39:44 +0000 URL: https://git.openjdk.org/leyden/commit/747a3fa31d9a9512475615c91d2ee9c2d2a94e8e 8341562: RISC-V: Generate comments in -XX:+PrintInterpreter to link to source code Reviewed-by: fyang, luhenry ! src/hotspot/cpu/riscv/methodHandles_riscv.cpp ! src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp ! src/hotspot/cpu/riscv/templateTable_riscv.cpp Changeset: 28977972 Branch: premain Author: Hamlin Li Date: 2024-10-07 09:32:40 +0000 URL: https://git.openjdk.org/leyden/commit/28977972a0129892543222eada4dc99f4cd62574 8340880: RISC-V: add t3-t6 alias into assemler_riscv.hpp Reviewed-by: luhenry, fyang ! src/hotspot/cpu/riscv/assembler_riscv.hpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp Changeset: 520060f7 Branch: premain Author: Alexey Ivanov Date: 2024-10-07 12:44:42 +0000 URL: https://git.openjdk.org/leyden/commit/520060f79a3cedb8f93e6bbd0e9b2823eaabf79a 8340799: Add border inside instruction frame in PassFailJFrame Reviewed-by: prr, dnguyen ! test/jdk/java/awt/regtesthelpers/PassFailJFrame.java Changeset: 4ba170c4 Branch: premain Author: Alexey Ivanov Date: 2024-10-07 12:45:04 +0000 URL: https://git.openjdk.org/leyden/commit/4ba170c403ae85576f84dafd4a157ba0db99873f 8341235: Improve default instruction frame title in PassFailJFrame Reviewed-by: prr ! test/jdk/java/awt/regtesthelpers/PassFailJFrame.java Changeset: a2372c60 Branch: premain Author: Ivan Walulya Date: 2024-10-07 13:26:16 +0000 URL: https://git.openjdk.org/leyden/commit/a2372c607c940589f239d4e59b675d3b2e626fd9 8341238: G1: Refactor G1Policy to move collection set selection methods into G1CollectionSet Reviewed-by: tschatzl, mli ! src/hotspot/share/gc/g1/g1CollectionSet.cpp ! src/hotspot/share/gc/g1/g1CollectionSet.hpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1Policy.hpp Changeset: 33595189 Branch: premain Author: SendaoYan Date: 2024-10-07 16:28:02 +0000 URL: https://git.openjdk.org/leyden/commit/3359518986bd12b0d97e5df5b0154d0539639818 8341593: Problemlist java/foreign/TestUpcallStress.java in Xcomp mode Reviewed-by: jvernee ! test/jdk/ProblemList-Xcomp.txt Changeset: d0c5e4bc Branch: premain Author: Alexander Zvegintsev Date: 2024-10-07 16:32:01 +0000 URL: https://git.openjdk.org/leyden/commit/d0c5e4bc50cc2cbb65efe827ae8cf3e077f45e07 8341373: Open source closed frame tests # 4 Reviewed-by: prr + test/jdk/java/awt/Frame/AddRemoveMenuBarTest_5.java + test/jdk/java/awt/Frame/FrameResizableTest.java + test/jdk/java/awt/Frame/I18NTitle.java + test/jdk/java/awt/Frame/MenuBarOffsetTest.java + test/jdk/java/awt/Frame/MinimumSizeTest.java Changeset: f7bb647d Branch: premain Author: Eirik Bj?rsn?s Date: 2024-10-07 16:34:08 +0000 URL: https://git.openjdk.org/leyden/commit/f7bb647dc88f835fe819e7ab0434c931f243304a 8341595: Clean up iteration of CEN headers in ZipFile.Source.initCEN Reviewed-by: lancea, redestad ! src/java.base/share/classes/java/util/zip/ZipFile.java + test/jdk/java/util/zip/ZipFile/CenSizeMaximum.java Changeset: fc7244da Branch: premain Author: Harshitha Onkar Date: 2024-10-07 17:42:17 +0000 URL: https://git.openjdk.org/leyden/commit/fc7244da96a9423146c4a46bcc3bbfc205900c3b 8340713: Open source DnD tests - Set5 Reviewed-by: azvegint, dnguyen ! test/jdk/ProblemList.txt + test/jdk/java/awt/dnd/DragExitBeforeDropTest.java + test/jdk/java/awt/dnd/DragThresholdTest.java + test/jdk/java/awt/dnd/WinMoveFileToShellTest.java Changeset: 23f3ca25 Branch: premain Author: Mikael Vidstedt Date: 2024-10-07 19:33:48 +0000 URL: https://git.openjdk.org/leyden/commit/23f3ca254a2558ddaaf29714b0a5fc22daeed013 8330206: Bump minimum boot jdk to JDK 23 Reviewed-by: darcy, iris, erikj ! make/conf/github-actions.conf ! make/conf/jib-profiles.js ! make/conf/version-numbers.conf Changeset: 4d50cbb5 Branch: premain Author: Harshitha Onkar Date: 2024-10-07 21:29:21 +0000 URL: https://git.openjdk.org/leyden/commit/4d50cbb5a73ad1f84ecd6a895045ecfdb0835adc 8341278: Open source few TrayIcon tests - Set7 Reviewed-by: azvegint ! test/jdk/ProblemList.txt + test/jdk/java/awt/TrayIcon/ClearPrevImageTest.java + test/jdk/java/awt/TrayIcon/FocusLostAfterTrayTest.java + test/jdk/java/awt/TrayIcon/MouseMoveTest.java + test/jdk/java/awt/TrayIcon/TrayIconKeySelectTest.java Changeset: d996ca86 Branch: premain Author: Shaojin Wen Date: 2024-10-07 23:30:06 +0000 URL: https://git.openjdk.org/leyden/commit/d996ca863deef50ba7c1c8878cc4c202fa1a9d6b 8341581: Optimize BytecodeHelpers validate slot Reviewed-by: liach ! src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java Changeset: 45a63595 Branch: premain Author: William Kemper Date: 2024-10-08 01:26:16 +0000 URL: https://git.openjdk.org/leyden/commit/45a6359588996d25e5e8dadebdcd8d6a00ef786f 8341668: Shenandoah: assert(tail_bits < (idx_t)BitsPerWord) failed: precondition Reviewed-by: ysr ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.inline.hpp Changeset: b6a40473 Branch: premain Author: Tejesh R Date: 2024-10-08 06:33:11 +0000 URL: https://git.openjdk.org/leyden/commit/b6a4047387dbe4e07df0032dfdd7ee5ad8f571a4 8339982: Open source several AWT Mouse tests - Batch 2 Reviewed-by: psadhukhan ! test/jdk/ProblemList.txt + test/jdk/java/awt/GraphicsEnvironment/DefaultScreenDeviceTest.java + test/jdk/java/awt/Mouse/DoubleClickTest.java + test/jdk/java/awt/Mouse/MouseClickCount.java + test/jdk/java/awt/Mouse/MouseDragEnterExitTest.java + test/jdk/java/awt/Mouse/MouseDragTest.java Changeset: 57c859e4 Branch: premain Author: Tejesh R Date: 2024-10-08 06:33:22 +0000 URL: https://git.openjdk.org/leyden/commit/57c859e4adfedc963b1f4b3bf066453ace41ee36 8339836: Open source several AWT Mouse tests - Batch 1 Reviewed-by: honkar, prr + test/jdk/java/awt/Mouse/MouseEnterExitTest.java + test/jdk/java/awt/Mouse/MouseEnterExitTest2.java + test/jdk/java/awt/Mouse/MouseEnterExitTest3.java + test/jdk/java/awt/Mouse/MouseEnterExitTest4.java + test/jdk/java/awt/Mouse/MousePressedTest.java Changeset: ffb60e55 Branch: premain Author: Claes Redestad Date: 2024-10-08 08:14:40 +0000 URL: https://git.openjdk.org/leyden/commit/ffb60e55cd77a92d19e1fde305f5d204b9fae429 8341594: Use Unsafe to coalesce reads in java.util.zip.ZipUtils Reviewed-by: lancea ! src/java.base/share/classes/java/util/zip/ZipEntry.java ! src/java.base/share/classes/java/util/zip/ZipFile.java ! src/java.base/share/classes/java/util/zip/ZipInputStream.java ! src/java.base/share/classes/java/util/zip/ZipUtils.java ! test/micro/org/openjdk/bench/java/util/zip/ZipFileOpen.java Changeset: 59ac7039 Branch: premain Author: Amit Kumar Date: 2024-10-08 09:19:40 +0000 URL: https://git.openjdk.org/leyden/commit/59ac7039d3ace0ec481742c3a10c81f1675e12da 8339220: [s390x] TestIfMinMax.java failure Reviewed-by: lucy, aph ! src/hotspot/cpu/s390/matcher_s390.hpp ! test/hotspot/jtreg/ProblemList.txt Changeset: f62dba36 Branch: premain Author: Eirik Bj?rsn?s Date: 2024-10-08 09:59:29 +0000 URL: https://git.openjdk.org/leyden/commit/f62dba3651719bc0031522e171a6e42b362c1363 8341597: ZipFileInflaterInputStream input buffer size uses uncompressed size Reviewed-by: lancea ! src/java.base/share/classes/java/util/zip/ZipFile.java Changeset: 7a1e832e Branch: premain Author: Eirik Bj?rsn?s Date: 2024-10-08 10:08:31 +0000 URL: https://git.openjdk.org/leyden/commit/7a1e832ea997f9984eb5fc18474a8f1650ddb1bf 8336843: Deprecate java.util.zip.ZipError for removal Reviewed-by: liach, lancea ! src/java.base/share/classes/java/util/zip/ZipError.java Changeset: 6e486181 Branch: premain Author: Matthias Baesken Date: 2024-10-08 12:36:31 +0000 URL: https://git.openjdk.org/leyden/commit/6e486181613bde8da6874eeed680c7136e8d778a 8341644: Compile error in cgroup coding when using toolchain clang Reviewed-by: stefank, mdoerr ! src/hotspot/os/linux/cgroupV2Subsystem_linux.hpp Changeset: 4a12f5b2 Branch: premain Author: Thomas Schatzl Date: 2024-10-08 14:12:53 +0000 URL: https://git.openjdk.org/leyden/commit/4a12f5b26e2b7fb638ee0946d3938451f5effd3d 8341643: G1: Merged cards counter skewed by merge cards cache Reviewed-by: iwalulya, mli ! src/hotspot/share/gc/g1/g1RemSet.cpp Changeset: 580eb62d Branch: premain Author: Hamlin Li Date: 2024-10-08 15:15:13 +0000 URL: https://git.openjdk.org/leyden/commit/580eb62dc097efeb51c76b095c1404106859b673 8320500: [vectorapi] RISC-V: Optimize vector math operations with SLEEF Reviewed-by: luhenry, ihse, erikj, fyang, rehn ! make/modules/jdk.incubator.vector/Lib.gmk ! src/hotspot/cpu/riscv/assembler_riscv.hpp ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/library_call.hpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/prims/vectorSupport.cpp ! src/hotspot/share/prims/vectorSupport.hpp ! src/hotspot/share/runtime/stubRoutines.cpp ! src/hotspot/share/runtime/stubRoutines.hpp + src/jdk.incubator.vector/linux/native/libsleef/lib/vector_math_rvv.c Changeset: 65463536 Branch: premain Author: Hannes Walln?fer Date: 2024-10-08 16:16:14 +0000 URL: https://git.openjdk.org/leyden/commit/65463536e6b7d792edb96bfddc2cd397276c7bd8 8340203: Link color is hard to distinguish from text color in API documentation Reviewed-by: prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/stylesheet.css Changeset: b9db74a6 Branch: premain Author: Harshitha Onkar Date: 2024-10-08 16:34:45 +0000 URL: https://git.openjdk.org/leyden/commit/b9db74a64577bf2b79570a789c91de6549a50788 8341378: Open source few TrayIcon tests - Set8 Reviewed-by: azvegint, dnguyen ! test/jdk/ProblemList.txt + test/jdk/java/awt/TrayIcon/TrayIconTest.java Changeset: 966eb723 Branch: premain Author: Alexander Zvegintsev Date: 2024-10-08 17:37:48 +0000 URL: https://git.openjdk.org/leyden/commit/966eb7232ff867d9a68269d5a2007da20259565f 8341447: Open source closed frame tests # 5 Reviewed-by: honkar ! test/jdk/ProblemList.txt + test/jdk/java/awt/Frame/FocusTest.java ! test/jdk/java/awt/Frame/InitialIconifiedTest.java Changeset: 7312eea3 Branch: premain Author: Leonid Mesnik Date: 2024-10-08 17:44:35 +0000 URL: https://git.openjdk.org/leyden/commit/7312eea382eed048b6abdb6409c006fc8e8f45b4 8341131: Some jdk/jfr/event/compiler tests shouldn't be executed with Xcomp Reviewed-by: chagedorn ! test/jdk/jdk/jfr/event/compiler/TestCompilerCompile.java ! test/jdk/jdk/jfr/event/compiler/TestCompilerInlining.java ! test/jdk/jdk/jfr/event/compiler/TestDeoptimization.java Changeset: 62acc9c1 Branch: premain Author: Shaojin Wen Date: 2024-10-08 20:35:14 +0000 URL: https://git.openjdk.org/leyden/commit/62acc9c174f23acd2807c8214ffc28d73799da16 8341548: More concise use of classfile API Reviewed-by: liach ! src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java ! src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java ! src/java.base/share/classes/java/lang/invoke/MethodHandleProxies.java ! src/java.base/share/classes/java/lang/runtime/SwitchBootstraps.java ! src/java.base/share/classes/jdk/internal/foreign/abi/BindingSpecializer.java Changeset: 7eab0a50 Branch: premain Author: Igor Veresov Date: 2024-10-08 23:21:44 +0000 URL: https://git.openjdk.org/leyden/commit/7eab0a506adffac7bed940cc020e37754f0adbdb 8337066: Repeated call of StringBuffer.reverse with double byte string returns wrong result Reviewed-by: kvn, thartmann ! src/hotspot/share/opto/gcm.cpp + test/hotspot/jtreg/compiler/controldependency/TestAntiDependencyForPinnedLoads.java Changeset: f276f58f Branch: premain Author: Daniel D. Daugherty Date: 2024-10-09 00:00:09 +0000 URL: https://git.openjdk.org/leyden/commit/f276f58fb427a849549a525a200e95e28952edf4 8341803: ProblemList containers/docker/TestJcmdWithSideCar.java on linux-x64 8341805: ProblemList five mlvm/indy/func/jvmti tests in Xcomp mode Reviewed-by: psandoz ! test/hotspot/jtreg/ProblemList-Xcomp.txt ! test/hotspot/jtreg/ProblemList.txt Changeset: de90204b Branch: premain Author: Ramkumar Sunderbabu Date: 2024-10-09 03:11:59 +0000 URL: https://git.openjdk.org/leyden/commit/de90204b60c408ef258a2d2515ad252de4b23536 8341588: Remove CollectionUsageThreshold.java from ProblemList-Xcomp for debugging Reviewed-by: lmesnik, kevinw ! test/jdk/ProblemList-Xcomp.txt ! test/jdk/java/lang/management/MemoryMXBean/MemoryUtil.java ! test/jdk/java/lang/management/MemoryMXBean/RunUtil.java Changeset: d809bc0e Branch: premain Author: SendaoYan Date: 2024-10-09 05:47:58 +0000 URL: https://git.openjdk.org/leyden/commit/d809bc0e21b145758f21c4324772faf6aa6a276a 8341658: RISC-V: Test DateFormatProviderTest.java run timeouted Reviewed-by: naoto ! test/jdk/java/util/PluggableLocale/DateFormatProviderTest.java Changeset: d3f3c6a8 Branch: premain Author: Daniel Skantz Date: 2024-10-09 07:01:23 +0000 URL: https://git.openjdk.org/leyden/commit/d3f3c6a8cdf862df3a72f60c824ce50d37231061 8330157: C2: Add a stress flag for bailouts Reviewed-by: chagedorn, thartmann ! src/hotspot/share/opto/block.cpp ! src/hotspot/share/opto/c2_globals.hpp ! src/hotspot/share/opto/chaitin.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/gcm.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/lcm.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/matcher.cpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/opto/parse.hpp ! src/hotspot/share/opto/reg_split.cpp + test/hotspot/jtreg/compiler/debug/TestStressBailout.java ! test/hotspot/jtreg/testlibrary/ctw/src/sun/hotspot/tools/ctw/CtwRunner.java Changeset: ab9d91e5 Branch: premain Author: Andrew Dinn Date: 2024-10-09 11:21:01 +0000 URL: https://git.openjdk.org/leyden/commit/ab9d91e5409764afce91db6b7f69669c204eedef Merge branch 'master' into premain ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp ! src/hotspot/cpu/s390/stubGenerator_s390.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/share/gc/g1/c2/g1BarrierSetC2.cpp ! src/hotspot/share/interpreter/bytecodeTracer.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/opto/parse.hpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/stubRoutines.cpp ! src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java ! test/hotspot/jtreg/ProblemList.txt ! test/jtreg-ext/requires/VMProps.java ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp ! src/hotspot/cpu/s390/stubGenerator_s390.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/share/gc/g1/c2/g1BarrierSetC2.cpp ! src/hotspot/share/interpreter/bytecodeTracer.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/opto/parse.hpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/stubRoutines.cpp ! src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java ! test/hotspot/jtreg/ProblemList.txt ! test/jtreg-ext/requires/VMProps.java Changeset: d504df0e Branch: premain Author: Andrew Dinn Date: 2024-10-09 15:45:53 +0000 URL: https://git.openjdk.org/leyden/commit/d504df0e3d7928f0e7ff10ace03e002953c6a58f fix g1 barrier register use after late expand ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.cpp Changeset: 5029a175 Branch: premain Author: Andrew Dinn Date: 2024-10-14 14:09:09 +0000 URL: https://git.openjdk.org/leyden/commit/5029a1755067c55e8018de03f8262dccdb110f6b Ensure branch target is correctly relocated ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp Changeset: 88b6b4b2 Branch: premain Author: Andrew Dinn Date: 2024-10-15 16:57:19 +0000 URL: https://git.openjdk.org/leyden/commit/88b6b4b2770cc976b82a5f4c35fd87c94b947d28 further correction to register use in g1 barriers ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.cpp Changeset: a1672ea6 Branch: premain Author: iklam Date: 2024-10-16 12:57:50 +0000 URL: https://git.openjdk.org/leyden/commit/a1672ea6ff8c0409f4db8a6468e14906fd22212e Merge branch 'premain' of https://github.com/openjdk/leyden into premain From dean.long at oracle.com Fri Oct 18 18:38:41 2024 From: dean.long at oracle.com (dean.long at oracle.com) Date: Fri, 18 Oct 2024 11:38:41 -0700 Subject: Optimal place for inserting calls to the VM from interpreted java methods In-Reply-To: References: Message-ID: <56664e92-d012-48c6-8545-62cad29800d2@oracle.com> Hi Mat.? It sounds like you could use multiple entry points based on MethodKind to accomplish this.? Add new entries to the MethodKind enum for the upcall versions.? Generate both the upcall and non-upcall entry points, and map to appropriate MethodKind values.? Then use your runtime pattern match to decide with MethodKind to use for each method in AbstractInterpreter ::method_kind (*const* methodHandle & m ). dl On 10/9/24 6:42 PM, Mat Carter wrote: > > Is there a place to encode calls to the VM in the interpreted methods > other than the method prologs? > > I've recently discovered the interpreted method adaptors which seems > like a candidate, but there's > > no examples of the adaptors calling into the VM. > > Follows is the rational as to why I'm looking for an alternative to > the method prologs > > The AOTEndTrainingOnMethodEntry?feature [1] introduces calls from java > methods into the > > VM (upcalls) when specific methods are entered. The methods are > identified via a pattern in a > > similar manner to the CompileOnly option. > > Following the initial PR review we?re looking at removing the > knowledge of this AOT feature from > > the compilers/interpreter and introducing a more generic system > (RuntimeUpcalls) that can be > > used by other parts of the VM [2]. ?In building out the RuntimeUpcalls > system we've come across > > an inefficiency that isn't an immediate problem for this feature, but > should another feature use this > > new system then it's less than optimal. > > Interpreted code uses a shared method prolog (there are 8 variants for > 'regular' methods [more > > for some special math/zip methods]), the AOTEndTrainingOnMethodEntry > ?feature introduces a > > further 5 prolog types. ?When there is a single upcall (eg. > AOTEndTrainingOnMethodEntry) to the VM > > everything is efficient. > > The inefficiency issue arises as soon as there are two or more > upcalls; which upcalls relate to > > which methods is contained within the RuntimeUpcalls system. ?When the > interpreter examines > > the method flags they only indicate whether there are any upcalls (but > not how many or which ones). > > As the interpreter can't encode which upcalls should be called in the > prolog (without an explosion > > of new runtime generated prologs), it needs to call the RuntimeUpcalls > system which in turn iterates > > over the upcalls and calls the appropriate ones; the problem is that > during that iteration the methods > > need to be compared against the pattern. ?So we either pay a memory > cost to cache the method to > > upcall relationships or we pay a performance cost to repeatedly test > the method against the pattern. > > This is not a problem for C1 and C2 as we pay this cost only when the > methods are compiled and > > create the multiple upcalls in those methods, eliminating the need for > pattern matching by the > > RuntimeUpcalls system during method execution > > Thanks in advance > > Mat > > [1] https://github.com/openjdk/leyden/pull/21 > > [2] https://github.com/macarte/leyden/pull/2 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From duke at openjdk.org Mon Oct 21 19:17:41 2024 From: duke at openjdk.org (duke) Date: Mon, 21 Oct 2024 19:17:41 GMT Subject: git: openjdk/leyden: hermetic-java-runtime: 110 new changesets Message-ID: Changeset: e6698f51 Branch: hermetic-java-runtime Author: t.ogata Committer: Christian Stein Date: 2024-10-15 07:47:42 +0000 URL: https://git.openjdk.org/leyden/commit/e6698f51a1977d553ce4e1dd14b43b0d325224fa 8337851: Some tests have name which confuse jtreg Reviewed-by: aivanov, prr, cstein = test/jdk/java/awt/dnd/URLDragTest/URLDragTest.java = test/langtools/tools/javac/generics/parametricException/ParametricException.java = test/langtools/tools/javac/warnings/Serial/Serial.java = test/langtools/tools/javac/warnings/Serial/Serial.out Changeset: 521effe0 Branch: hermetic-java-runtime Author: Per Minborg Date: 2024-10-15 07:59:33 +0000 URL: https://git.openjdk.org/leyden/commit/521effe017b9b6322036f1851220056a637d6b1c 8340189: 8339531 incorrect for Big Endian platforms Reviewed-by: mdoerr, amitkumar ! src/java.base/share/classes/jdk/internal/foreign/SegmentBulkOperations.java Changeset: 3b8a2f8c Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2024-10-15 08:46:23 +0000 URL: https://git.openjdk.org/leyden/commit/3b8a2f8c45ffd0bdb48db805cf70b4652525d891 8337269: G1ConfidencePercent interpreted inconsistently Reviewed-by: kbarrett, iwalulya ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1Predictions.hpp ! src/hotspot/share/gc/g1/g1_globals.hpp Changeset: f4dccfd4 Branch: hermetic-java-runtime Author: Maurizio Cimadamore Date: 2024-10-15 09:10:13 +0000 URL: https://git.openjdk.org/leyden/commit/f4dccfd4cf354f360b823c8cce15bb54ef90e9ca 8338596: Clarify handling of restricted and caller-sensitive methods Co-authored-by: Hannes Walln?fer Reviewed-by: alanb, jvernee + src/java.base/share/classes/java/lang/doc-files/RestrictedMethods.html ! src/java.base/share/classes/java/lang/foreign/package-info.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/DocPaths.java Changeset: c9a536c3 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2024-10-15 09:15:40 +0000 URL: https://git.openjdk.org/leyden/commit/c9a536c330d37632139a1d71b0c054352eae5aa0 8337339: gc/arguments/Test*SizeFlags.java timing out with Xcomp Reviewed-by: shade, iwalulya ! test/hotspot/jtreg/gc/arguments/TestG1HeapSizeFlags.java ! test/hotspot/jtreg/gc/arguments/TestParallelHeapSizeFlags.java ! test/hotspot/jtreg/gc/arguments/TestSerialHeapSizeFlags.java Changeset: df7d6e08 Branch: hermetic-java-runtime Author: Kevin Walls Date: 2024-10-15 10:50:45 +0000 URL: https://git.openjdk.org/leyden/commit/df7d6e081ff9513fbd6cff5d033a307e6798418b 8338603: DiagnosticCommandMBean operations should standardize types for parameters Reviewed-by: cjplummer, egahlin ! src/jdk.management/share/classes/com/sun/management/internal/DiagnosticCommandImpl.java ! test/jdk/com/sun/management/DiagnosticCommandMBean/DcmdMBeanTest.java Changeset: 2c0c6535 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2024-10-15 11:52:34 +0000 URL: https://git.openjdk.org/leyden/commit/2c0c65353b2f67bdcd954b4d2c2ae3e9b24d1c22 8342044: Increase timeout of gc/shenandoah/oom/TestClassLoaderLeak.java Reviewed-by: shade ! test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java Changeset: 54c9348c Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-15 12:16:15 +0000 URL: https://git.openjdk.org/leyden/commit/54c9348c8c0f5b363d1ef31166179fe9ac61ab9c 8336103: Clean up confusing Method::is_initializer Reviewed-by: dholmes, coleenp ! src/hotspot/share/ci/ciMethod.cpp ! src/hotspot/share/ci/ciMethod.hpp ! src/hotspot/share/jvmci/jvmciCompiler.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/method.hpp Changeset: 6ed6dff2 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-15 12:55:49 +0000 URL: https://git.openjdk.org/leyden/commit/6ed6dff22208e7e6c24c98d3a9ff895a6c6c0ae0 8341871: Disable G1 for unsupported platforms after JDK-8334060 Reviewed-by: mdoerr, erikj ! make/autoconf/jvm-features.m4 Changeset: 5eae20f7 Branch: hermetic-java-runtime Author: Julian Waters Date: 2024-10-15 14:10:53 +0000 URL: https://git.openjdk.org/leyden/commit/5eae20f73b9e8578d58c7e49d2da79cf1b0b229c 8323672: Suppress unwanted autoconf added flags in CC and CXX Reviewed-by: ihse ! make/autoconf/toolchain.m4 ! make/autoconf/util.m4 Changeset: b9cabbec Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2024-10-15 17:44:49 +0000 URL: https://git.openjdk.org/leyden/commit/b9cabbecdac27ae8b93df88660a4a0f3f60e6828 8341997: Tests create files in src tree instead of scratch dir Reviewed-by: erikj, jpai ! test/jdk/java/io/FileInputStream/ReadXBytes.java ! test/jdk/java/nio/MappedByteBuffer/ForceException.java ! test/jdk/java/nio/MappedByteBuffer/ForceViews.java Changeset: 86ce19e8 Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2024-10-16 01:51:09 +0000 URL: https://git.openjdk.org/leyden/commit/86ce19e8db6950fc529b8c510137e91e97cae0c4 8341142: Maintain a single source file for sun.net.www.protocol.jar.JarFileFactory Reviewed-by: dfuchs = src/java.base/share/classes/sun/net/www/protocol/jar/JarFileFactory.java - src/java.base/unix/classes/sun/net/www/protocol/jar/JarFileFactory.java Changeset: 6d7e6795 Branch: hermetic-java-runtime Author: Tejesh R Date: 2024-10-16 05:14:59 +0000 URL: https://git.openjdk.org/leyden/commit/6d7e67956b1722b4e3d33253d68c095058f39f02 8340790: Open source several AWT Dialog tests - Batch 4 Reviewed-by: honkar, prr ! test/jdk/ProblemList.txt + test/jdk/java/awt/Dialog/ChoiceModalDialogTest.java + test/jdk/java/awt/Dialog/DialogBackgroundTest.java + test/jdk/java/awt/Dialog/EnabledResetTest.java + test/jdk/java/awt/Dialog/FileDialogGetFileTest.java Changeset: e94e3bba Branch: hermetic-java-runtime Author: Ramkumar Sunderbabu Committer: Jaikiran Pai Date: 2024-10-16 06:52:42 +0000 URL: https://git.openjdk.org/leyden/commit/e94e3bba3932f3d92c0a135d333d1ccd6e72b964 8324672: Update jdk/java/time/tck/java/time/TCKInstant.java now() to be more robust Reviewed-by: rriggs, dfuchs ! test/jdk/java/time/tck/java/time/TCKInstant.java Changeset: e4ff553c Branch: hermetic-java-runtime Author: Kim Barrett Date: 2024-10-16 07:05:17 +0000 URL: https://git.openjdk.org/leyden/commit/e4ff553c121e29c497336fdde705e70d0abdc826 8341931: os_linux gtest uses lambdas with explicit capture lists Reviewed-by: jwaters, jsjolen ! test/hotspot/gtest/runtime/test_os_linux.cpp Changeset: 724de682 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-16 07:13:59 +0000 URL: https://git.openjdk.org/leyden/commit/724de682091623cd9877ee4e5f13123ef1d92ddf 8342081: Shenandoah: Remove extra ShenandoahMarkUpdateRefsSuperClosure Reviewed-by: ysr ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp Changeset: b9b0bd08 Branch: hermetic-java-runtime Author: Emanuel Peter Date: 2024-10-16 07:23:12 +0000 URL: https://git.openjdk.org/leyden/commit/b9b0bd0871886eb65f87864f262424b119f2c748 8337221: CompileFramework: test library to conveniently compile java and jasm sources for fuzzing Reviewed-by: chagedorn, tholenstein + test/hotspot/jtreg/compiler/lib/compile_framework/ClassLoaderBuilder.java + test/hotspot/jtreg/compiler/lib/compile_framework/Compile.java + test/hotspot/jtreg/compiler/lib/compile_framework/CompileFramework.java + test/hotspot/jtreg/compiler/lib/compile_framework/CompileFrameworkException.java + test/hotspot/jtreg/compiler/lib/compile_framework/InternalCompileFrameworkException.java + test/hotspot/jtreg/compiler/lib/compile_framework/README.md + test/hotspot/jtreg/compiler/lib/compile_framework/SourceCode.java + test/hotspot/jtreg/compiler/lib/compile_framework/Utils.java + test/hotspot/jtreg/testlibrary_tests/compile_framework/examples/CombinedJavaJasmExample.java + test/hotspot/jtreg/testlibrary_tests/compile_framework/examples/IRFrameworkJavaExample.java + test/hotspot/jtreg/testlibrary_tests/compile_framework/examples/MultiFileJasmExample.java + test/hotspot/jtreg/testlibrary_tests/compile_framework/examples/MultiFileJavaExample.java + test/hotspot/jtreg/testlibrary_tests/compile_framework/examples/RunWithFlagsExample.java + test/hotspot/jtreg/testlibrary_tests/compile_framework/examples/SimpleJasmExample.java + test/hotspot/jtreg/testlibrary_tests/compile_framework/examples/SimpleJavaExample.java + test/hotspot/jtreg/testlibrary_tests/compile_framework/tests/TestBadJasmCompilation.java + test/hotspot/jtreg/testlibrary_tests/compile_framework/tests/TestBadJavaCompilation.java + test/hotspot/jtreg/testlibrary_tests/compile_framework/tests/TestConcurrentCompilation.java Changeset: 577babf1 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2024-10-16 07:27:28 +0000 URL: https://git.openjdk.org/leyden/commit/577babf1968700e4b648305cd5a5c2ddf712e2dc 8334010: VM crashes with ObjectAlignmentInBytes > GCCardSizeInBytes Reviewed-by: shade, iwalulya ! src/hotspot/share/gc/shared/gcArguments.cpp + test/hotspot/jtreg/gc/TestObjectAlignmentCardSize.java Changeset: e7cf25ce Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2024-10-16 07:28:36 +0000 URL: https://git.openjdk.org/leyden/commit/e7cf25ce0efdf568fc8eaff249d49e46d5a6eda1 8340801: Disable ubsan checks in some awt/2d coding Reviewed-by: ihse, lucy, goetz, jwaters + src/java.base/share/native/libjava/ub.h ! src/java.desktop/share/native/libawt/java2d/loops/IntRgb.c Changeset: ebc17c7c Branch: hermetic-java-runtime Author: Johny Jose Date: 2024-10-16 07:36:07 +0000 URL: https://git.openjdk.org/leyden/commit/ebc17c7c8d6febd5a887309d1b7a466bcd2cc0a9 8339637: (tz) Update Timezone Data to 2024b Reviewed-by: naoto, coffeys, jlu ! src/java.base/share/classes/java/time/ZoneId.java ! src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java ! src/java.base/share/data/tzdata/VERSION ! src/java.base/share/data/tzdata/africa ! src/java.base/share/data/tzdata/antarctica ! src/java.base/share/data/tzdata/asia ! src/java.base/share/data/tzdata/australasia ! src/java.base/share/data/tzdata/backward ! src/java.base/share/data/tzdata/etcetera ! src/java.base/share/data/tzdata/europe ! src/java.base/share/data/tzdata/leapseconds ! src/java.base/share/data/tzdata/northamerica ! src/java.base/share/data/tzdata/southamerica ! src/java.base/share/data/tzdata/zone.tab ! test/jdk/java/text/Format/DateFormat/TimeZoneNameTest.java ! test/jdk/java/time/tck/java/time/TCKZoneId.java ! test/jdk/java/util/TimeZone/OldIDMappingTest.java ! test/jdk/java/util/TimeZone/TimeZoneData/VERSION ! test/jdk/java/util/TimeZone/TimeZoneData/aliases.txt ! test/jdk/java/util/TimeZone/TimeZoneData/displaynames.txt ! test/jdk/sun/util/calendar/zi/TestZoneInfo310.java ! test/jdk/sun/util/calendar/zi/ZoneInfoOld.java ! test/jdk/sun/util/resources/TimeZone/Bug4848242.java Changeset: c81aa755 Branch: hermetic-java-runtime Author: Nizar Benalla Date: 2024-10-16 10:17:47 +0000 URL: https://git.openjdk.org/leyden/commit/c81aa7551c37cc025c9054db08472b8abb2cbcb5 8331051: Add an `@since` checker test for `java.base` module Reviewed-by: jlahoda, jjg ! test/jdk/TEST.groups + test/jdk/tools/sincechecker/SinceChecker.java + test/jdk/tools/sincechecker/modules/java_base/CheckSince_javaBase.java Changeset: 369c5733 Branch: hermetic-java-runtime Author: Valerie Peng Committer: Jaikiran Pai Date: 2024-02-05 22:53:51 +0000 URL: https://git.openjdk.org/leyden/commit/369c573383a0120e0d85aeb89a211f38b5261013 8302111: Serialization considerations Reviewed-by: skoivu, rhalade, weijun, wetmore ! src/java.base/share/classes/com/sun/crypto/provider/DHPrivateKey.java ! src/java.base/share/classes/com/sun/crypto/provider/DHPublicKey.java ! src/java.base/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java ! src/java.base/share/classes/java/security/Permissions.java ! src/java.base/share/classes/java/security/SignedObject.java ! src/java.base/share/classes/java/security/Timestamp.java ! src/java.base/share/classes/java/security/UnresolvedPermissionCollection.java ! src/java.base/share/classes/java/security/cert/CertificateRevokedException.java ! src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java ! src/java.base/share/classes/javax/security/auth/callback/ChoiceCallback.java ! src/java.base/share/classes/javax/security/auth/callback/ConfirmationCallback.java ! src/java.base/share/classes/javax/security/auth/callback/PasswordCallback.java ! src/java.base/share/classes/sun/security/provider/DRBG.java ! src/java.base/share/classes/sun/security/util/ObjectIdentifier.java ! src/java.base/share/classes/sun/security/x509/AlgIdDSA.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11SecureRandom.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java Changeset: 893e7bc8 Branch: hermetic-java-runtime Author: Weijun Wang Committer: Jaikiran Pai Date: 2024-04-17 22:38:46 +0000 URL: https://git.openjdk.org/leyden/commit/893e7bc894e2828f8d02db06302485d02f2cfa5a 8328726: Better Kerberos support Reviewed-by: ahgross, rhalade, valeriep, coffeys ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/EncryptionKey.java ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/KerberosCredMessage.java ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/KerberosKey.java ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/KeyImpl.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Util.java ! src/java.security.jgss/share/classes/sun/security/krb5/EncryptionKey.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/Krb5.java ! src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Kinit.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_PBE_PARAMS.java ! src/jdk.security.auth/share/classes/com/sun/security/auth/module/Krb5LoginModule.java Changeset: 03bc6b35 Branch: hermetic-java-runtime Author: Daniel Fuchs Committer: Jaikiran Pai Date: 2024-05-07 19:29:49 +0000 URL: https://git.openjdk.org/leyden/commit/03bc6b359fc5ff4fa2b569723903cdf1c9c5775b 8328286: Enhance HTTP client Reviewed-by: aefimov, michaelm ! src/java.base/share/classes/java/net/doc-files/net-properties.html ! src/java.base/share/classes/sun/net/www/MessageHeader.java ! src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java ! src/java.base/share/conf/net.properties ! src/java.net.http/share/classes/jdk/internal/net/http/Exchange.java ! src/java.net.http/share/classes/jdk/internal/net/http/Http1HeaderParser.java ! src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java ! src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java ! src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java ! src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java ! src/java.net.http/share/classes/jdk/internal/net/http/ResponseBodyHandlers.java ! src/java.net.http/share/classes/jdk/internal/net/http/Stream.java ! src/java.net.http/share/classes/jdk/internal/net/http/common/HeaderDecoder.java ! src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java ! src/java.net.http/share/classes/jdk/internal/net/http/hpack/Decoder.java ! src/java.net.http/share/classes/jdk/internal/net/http/hpack/DecodingCallback.java ! src/java.net.http/share/classes/jdk/internal/net/http/hpack/Encoder.java ! src/java.net.http/share/classes/module-info.java ! src/jdk.httpserver/share/classes/module-info.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/Request.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/ServerConfig.java ! test/jdk/java/net/httpclient/ExpectContinueTest.java ! test/jdk/java/net/httpclient/ShutdownNow.java ! test/jdk/java/net/httpclient/http2/PushPromiseContinuation.java ! test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java + test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/HpackTestEncoder.java ! test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/Http2TestExchange.java ! test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/Http2TestExchangeImpl.java ! test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/Http2TestServerConnection.java Changeset: cfa25b71 Branch: hermetic-java-runtime Author: Emanuel Peter Committer: Jaikiran Pai Date: 2024-05-21 10:31:14 +0000 URL: https://git.openjdk.org/leyden/commit/cfa25b71a65bfff1b31efe0d37ded37c50a98247 8328544: Improve handling of vectorization Co-authored-by: Christian Hagedorn Reviewed-by: mschoene, kvn, chagedorn, rhalade ! src/hotspot/share/opto/vectorization.cpp ! src/hotspot/share/opto/vectorization.hpp ! test/hotspot/jtreg/compiler/c2/irTests/TestVectorizationMismatchedAccess.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestAlignVector.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestAlignVectorFuzzer.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestIndependentPacksWithCyclicDependency.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestIndependentPacksWithCyclicDependency2.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestScheduleReordersScalarMemops.java Changeset: 498a5824 Branch: hermetic-java-runtime Author: Matias Saavedra Silva Committer: Jaikiran Pai Date: 2024-06-21 16:48:04 +0000 URL: https://git.openjdk.org/leyden/commit/498a58244d79b6aaffd17300844f9908991d463c 8311208: Improve CDS Support Reviewed-by: rhalade, mschoene, ccheung, iklam ! src/hotspot/share/classfile/verifier.cpp Changeset: dadcee1b Branch: hermetic-java-runtime Author: Hai-May Chao Committer: Jaikiran Pai Date: 2024-07-01 19:43:34 +0000 URL: https://git.openjdk.org/leyden/commit/dadcee1b89515a651d0532d9803c22dfeeb64f9e 8307383: Enhance DTLS connections Co-authored-by: Jamil Nimeh Reviewed-by: rhalade, mschoene, ascarpino ! src/java.base/share/classes/sun/security/ssl/ClientHello.java ! src/java.base/share/classes/sun/security/ssl/DTLSInputRecord.java ! src/java.base/share/classes/sun/security/ssl/ServerHandshakeContext.java ! src/java.base/share/classes/sun/security/ssl/TransportContext.java ! test/jdk/javax/net/ssl/DTLS/InvalidRecords.java ! test/jdk/javax/net/ssl/TLSCommon/MFLNTest.java Changeset: d9f63830 Branch: hermetic-java-runtime Author: Justin Lu Committer: Jaikiran Pai Date: 2024-07-04 23:09:40 +0000 URL: https://git.openjdk.org/leyden/commit/d9f638303737c4e5174e5cf21ad2f634cc0b1494 8331446: Improve deserialization support Reviewed-by: rhalade, skoivu, rriggs, naoto ! src/java.base/share/classes/java/text/MessageFormat.java + test/jdk/java/text/Format/MessageFormat/MaxArgumentIndexTest.java + test/jdk/java/text/Format/MessageFormat/SerializationTest.java Changeset: c89f76c0 Branch: hermetic-java-runtime Author: Dean Long Committer: Jaikiran Pai Date: 2024-07-11 22:32:41 +0000 URL: https://git.openjdk.org/leyden/commit/c89f76c0b9ca085192775af9bd9368562b582dd6 8332644: Improve graph optimizations Co-authored-by: Martin Balao Co-authored-by: Francisco Ferrari Bihurriet Reviewed-by: epeter, ahgross, thartmann, rhalade, dlong, roland ! src/hotspot/share/opto/loopnode.cpp Changeset: 490d099e Branch: hermetic-java-runtime Author: Emanuel Peter Committer: Jaikiran Pai Date: 2024-07-23 09:28:58 +0000 URL: https://git.openjdk.org/leyden/commit/490d099e234f27adef7d691d3c5a08ebdb550c5d 8335713: Enhance vectorization analysis Co-authored-by: Roland Westrelin Reviewed-by: rhalade, ahgross, thartmann, kvn ! src/hotspot/share/opto/vectorization.cpp ! src/hotspot/share/opto/vectorization.hpp Changeset: cf5bb127 Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2024-10-16 11:36:01 +0000 URL: https://git.openjdk.org/leyden/commit/cf5bb12731b0eefe53b99281453e40493ddafbe4 Merge Reviewed-by: alanb, dfuchs Changeset: 1cc32237 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2024-10-16 13:36:58 +0000 URL: https://git.openjdk.org/leyden/commit/1cc32237aee03a38bfb0f6679f7328a682ad6ea9 8336911: ZGC: Division by zero in heuristics after JDK-8332717 Reviewed-by: aboldtch, eosterlund ! src/hotspot/share/gc/z/zDirector.cpp Changeset: 7625b299 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-16 14:08:10 +0000 URL: https://git.openjdk.org/leyden/commit/7625b29920e95f9b754057fe0a2c4ab0afa5cb0c 8329597: C2: Intrinsify Reference.clear Reviewed-by: rcastanedalo, eosterlund, kvn ! src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad ! src/hotspot/cpu/ppc/gc/z/zBarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/gc/z/z_ppc.ad ! src/hotspot/cpu/riscv/gc/z/zBarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/gc/z/z_riscv.ad ! src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/z/z_x86_64.ad ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/gc/g1/c2/g1BarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp ! src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp ! src/hotspot/share/gc/z/zBarrierSetRuntime.cpp ! src/hotspot/share/gc/z/zBarrierSetRuntime.hpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/library_call.hpp ! src/java.base/share/classes/java/lang/ref/PhantomReference.java ! src/java.base/share/classes/java/lang/ref/Reference.java ! src/java.base/share/native/libjava/PhantomReference.c + test/hotspot/jtreg/compiler/c2/irTests/gc/ReferenceClearTests.java + test/micro/org/openjdk/bench/java/lang/ref/ReferenceClear.java Changeset: c34fb2c9 Branch: hermetic-java-runtime Author: Gerard Ziemski Date: 2024-10-16 15:32:07 +0000 URL: https://git.openjdk.org/leyden/commit/c34fb2c989562206a2506a2fbbfb584e223bb828 8338883: Show warning when CreateCoredumpOnCrash set, but core dump will not happen Reviewed-by: dholmes, jsjolen ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/runtime/os.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/utilities/vmError.cpp ! test/hotspot/jtreg/runtime/ErrorHandling/CreateCoredumpOnCrash.java Changeset: 709914fc Branch: hermetic-java-runtime Author: Jatin Bhateja Date: 2024-10-16 16:08:02 +0000 URL: https://git.openjdk.org/leyden/commit/709914fc92dd180c8f081ff70ef476554a04f4ce 8338023: Support two vector selectFrom API Reviewed-by: psandoz, epeter, sviswanathan ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/adlc/formssel.cpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/classes.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/library_call.hpp ! src/hotspot/share/opto/matcher.cpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/opto/vectornode.cpp ! src/hotspot/share/opto/vectornode.hpp ! src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/IntMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/LongMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template ! test/jdk/jdk/incubator/vector/templates/Unit-header.template + test/micro/org/openjdk/bench/jdk/incubator/vector/SelectFromBenchmark.java Changeset: 44151f47 Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-16 16:27:57 +0000 URL: https://git.openjdk.org/leyden/commit/44151f475fca3cf03299319b2ac9ddc533ba134d 8342145: File libCreationTimeHelper.c compile fails on Alpine Reviewed-by: mbaesken ! test/jdk/java/nio/file/attribute/BasicFileAttributeView/libCreationTimeHelper.c Changeset: d4f0ba73 Branch: hermetic-java-runtime Author: Jatin Bhateja Date: 2024-10-16 18:26:54 +0000 URL: https://git.openjdk.org/leyden/commit/d4f0ba73f653a3886b17f283b9b6a92db1af52aa 8342439: Build failure after 8338023 Reviewed-by: liach ! src/hotspot/share/opto/vectorIntrinsics.cpp Changeset: ed680966 Branch: hermetic-java-runtime Author: Richard Reingruber Date: 2024-10-16 19:17:27 +0000 URL: https://git.openjdk.org/leyden/commit/ed6809666b12b0de66f68d5e7e389dde1708aaf3 8341862: PPC64: C1 unwind_handler fails to unlock synchronized methods with LM_MONITOR Reviewed-by: mdoerr, mbaesken ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.cpp Changeset: 28538524 Branch: hermetic-java-runtime Author: Yudi Zheng Date: 2024-10-16 19:58:27 +0000 URL: https://git.openjdk.org/leyden/commit/285385247aaa262866697ed848040f05f4d94988 8342332: [JVMCI] Export CompilerToVM::Data::dtanh Reviewed-by: never ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp Changeset: b4ab290f Branch: hermetic-java-runtime Author: Valerie Peng Date: 2024-10-16 21:26:57 +0000 URL: https://git.openjdk.org/leyden/commit/b4ab290fd7c3d914154755a1539b48ba33338c26 8331959: Update PKCS#11 Cryptographic Token Interface to v3.1 Reviewed-by: weijun, ascarpino ! src/jdk.crypto.cryptoki/share/legal/pkcs11cryptotoken.md ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11.h ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11f.h ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11t.h Changeset: 4e703b28 Branch: hermetic-java-runtime Author: Alisen Chung Date: 2024-10-16 21:57:15 +0000 URL: https://git.openjdk.org/leyden/commit/4e703b285b5b34fdfb342d194cd744660d4c2be1 8340140: Open some dialog awt tests 3 Reviewed-by: prr, honkar + test/jdk/java/awt/Dialog/ClosingParentTest.java + test/jdk/java/awt/Dialog/FileDialogEmptyTitleTest.java + test/jdk/java/awt/Dialog/FileDialogUIUpdate.java + test/jdk/java/awt/Dialog/MenuAndModalDialogTest.java Changeset: 3da68900 Branch: hermetic-java-runtime Author: Vlad Zahorodnii Committer: Sergey Bylokhov Date: 2024-10-16 23:32:41 +0000 URL: https://git.openjdk.org/leyden/commit/3da68900818fc43b777098fe6e244779794d5294 8338751: ConfigureNotify behavior has changed in KWin 6.2 Reviewed-by: prr, azvegint, serb ! src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java Changeset: 58d39c31 Branch: hermetic-java-runtime Author: Tobias Hartmann Date: 2024-10-17 05:03:09 +0000 URL: https://git.openjdk.org/leyden/commit/58d39c317e332fda994f66529fcd1a0ea0e53151 8340313: Crash due to invalid oop in nmethod after C1 patching Reviewed-by: tschatzl, kvn, dlong ! src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp ! src/hotspot/cpu/ppc/nativeInst_ppc.cpp ! src/hotspot/cpu/riscv/nativeInst_riscv.cpp ! src/hotspot/cpu/s390/nativeInst_s390.cpp ! src/hotspot/cpu/x86/nativeInst_x86.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp + test/hotspot/jtreg/compiler/c1/TestConcurrentPatching.java Changeset: 22a1feea Branch: hermetic-java-runtime Author: Christian Hagedorn Date: 2024-10-17 05:08:59 +0000 URL: https://git.openjdk.org/leyden/commit/22a1feea7484c9d640eeac22943d237a0e549942 8341328: Refactor initial Assertion Predicate creation into separate classes Reviewed-by: thartmann, kvn ! src/hotspot/share/opto/ifnode.cpp ! src/hotspot/share/opto/loopPredicate.cpp ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/predicates.cpp ! src/hotspot/share/opto/predicates.hpp Changeset: f6fe5eaf Branch: hermetic-java-runtime Author: Tejesh R Date: 2024-10-17 05:48:45 +0000 URL: https://git.openjdk.org/leyden/commit/f6fe5eaf1a24ba083e7ecf28b02290020ccab142 8341072: Open source several AWT Canvas and Rectangle related tests Reviewed-by: prr + test/jdk/java/awt/Canvas/MultiDitherTest.java + test/jdk/java/awt/Canvas/MultiGraphicsTest.java + test/jdk/java/awt/Canvas/NoEventsLeakTest.java = test/jdk/java/awt/Canvas/duke_404.gif + test/jdk/java/awt/Rectangle/IntersectionTest.java Changeset: e0dabfb4 Branch: hermetic-java-runtime Author: Tejesh R Date: 2024-10-17 06:38:23 +0000 URL: https://git.openjdk.org/leyden/commit/e0dabfb4bfd93a4407518177043d3dbc85c4bbd9 8340279: Open source several AWT Dialog tests - Batch 2 Reviewed-by: abhiscxk, prr ! test/jdk/ProblemList.txt + test/jdk/java/awt/Dialog/DialogSystemMenu/DialogSystemMenu.java + test/jdk/java/awt/Dialog/DialogSystemMenu/icon24x24.gif + test/jdk/java/awt/Dialog/DialogSystemMenu/iconone.gif + test/jdk/java/awt/Dialog/DialogSystemMenu/icontwo.gif + test/jdk/java/awt/Dialog/FileDialogFilterTest.java + test/jdk/java/awt/Dialog/PrintToFileTest/PrintToFileFrame.java + test/jdk/java/awt/Dialog/PrintToFileTest/PrintToFileGranted.java + test/jdk/java/awt/Dialog/PrintToFileTest/PrintToFileRevoked.java + test/jdk/java/awt/Dialog/PrintToFileTest/granted + test/jdk/java/awt/Dialog/PrintToFileTest/revoked + test/jdk/java/awt/Dialog/TopmostModalDialogTest.java Changeset: fa39e84d Branch: hermetic-java-runtime Author: Richard Reingruber Date: 2024-10-17 07:19:54 +0000 URL: https://git.openjdk.org/leyden/commit/fa39e84d64d79f6c66f98110e98d2562f35681e1 8342042: PPC64: compiler_fast_unlock_object flags failure instead of success Reviewed-by: mdoerr, aboldtch, fbredberg ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp Changeset: f9208fad Branch: hermetic-java-runtime Author: Richard Reingruber Date: 2024-10-17 07:21:42 +0000 URL: https://git.openjdk.org/leyden/commit/f9208fadde8141e18a025ddb6ce28423861ba391 8341715: PPC64: ObjectMonitor::_owner should be reset unconditionally in nmethod unlocking Reviewed-by: mdoerr, lucy ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp Changeset: 8862ca07 Branch: hermetic-java-runtime Author: Kevin Walls Date: 2024-10-17 08:01:14 +0000 URL: https://git.openjdk.org/leyden/commit/8862ca076f9be1c0b5f4bc2639ab9c1f60de308c 8342338: Remove redundant IIOPURLTest.java Reviewed-by: cjplummer, amenkov - test/jdk/javax/management/remote/mandatory/connection/IIOPURLTest.java Changeset: 7a64fbbb Branch: hermetic-java-runtime Author: Simon Tooke Date: 2024-10-17 08:06:37 +0000 URL: https://git.openjdk.org/leyden/commit/7a64fbbb9292f4d65a6970206dec1a7d7645046b 8338851: Hoist os::Posix::realpath() to os::realpath() and implement on Windows Reviewed-by: dholmes, stuefe, jwaters ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_perf_linux.cpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/posix/os_posix.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/runtime/os.hpp ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! test/hotspot/gtest/runtime/test_os.cpp Changeset: 1ea1f33f Branch: hermetic-java-runtime Author: Alisen Chung Date: 2024-10-17 08:43:07 +0000 URL: https://git.openjdk.org/leyden/commit/1ea1f33f66326804ca2892fe0659a9acb7ee72ae 8340336: Open some checkbox awt tests Reviewed-by: prr, honkar + test/jdk/java/awt/Checkbox/AppearanceIfLargeFont.java + test/jdk/java/awt/Checkbox/CheckboxMenuItemEventsTest.java + test/jdk/java/awt/Container/ValidateTest.java Changeset: 9bdface1 Branch: hermetic-java-runtime Author: Ant?n Seoane Ampudia Committer: Johan Sj?len Date: 2024-10-17 09:18:22 +0000 URL: https://git.openjdk.org/leyden/commit/9bdface14719d53f40a6572f1c3d4b816c32438b 8341622: Tag-specific disabled default decorators for UnifiedLogging Reviewed-by: jsjolen, rcastanedalo, aboldtch ! src/hotspot/share/logging/logConfiguration.cpp ! src/hotspot/share/logging/logDecorators.cpp ! src/hotspot/share/logging/logDecorators.hpp ! src/hotspot/share/logging/logSelection.cpp ! src/hotspot/share/logging/logSelection.hpp ! src/hotspot/share/logging/logSelectionList.cpp ! src/hotspot/share/logging/logSelectionList.hpp + test/hotspot/gtest/logging/test_logDefaultDecorators.cpp + test/hotspot/jtreg/runtime/logging/DefaultLogDecoratorsTest.java Changeset: 7ff4ea8d Branch: hermetic-java-runtime Author: Jan Lahoda Date: 2024-10-17 09:26:13 +0000 URL: https://git.openjdk.org/leyden/commit/7ff4ea8d01c681b90ad59be04007557d84c8db94 8341966: Broken annotated module may lead to an exception in javac Reviewed-by: asotona ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! test/langtools/tools/javac/modules/AnnotationsOnModules.java Changeset: 3ebfc6c1 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-17 10:49:53 +0000 URL: https://git.openjdk.org/leyden/commit/3ebfc6c1e27119180700af5ea85e5fa6c1771050 8342336: Optimize ClassFile imports Reviewed-by: liach ! src/java.base/share/classes/java/lang/classfile/AccessFlags.java ! src/java.base/share/classes/java/lang/classfile/Annotation.java ! src/java.base/share/classes/java/lang/classfile/AnnotationElement.java ! src/java.base/share/classes/java/lang/classfile/AnnotationValue.java ! src/java.base/share/classes/java/lang/classfile/Attribute.java ! src/java.base/share/classes/java/lang/classfile/AttributedElement.java ! src/java.base/share/classes/java/lang/classfile/Attributes.java ! src/java.base/share/classes/java/lang/classfile/BootstrapMethodEntry.java ! src/java.base/share/classes/java/lang/classfile/BufWriter.java ! src/java.base/share/classes/java/lang/classfile/ClassBuilder.java ! src/java.base/share/classes/java/lang/classfile/ClassElement.java ! src/java.base/share/classes/java/lang/classfile/ClassFile.java ! src/java.base/share/classes/java/lang/classfile/ClassFileBuilder.java ! src/java.base/share/classes/java/lang/classfile/ClassFileTransform.java ! src/java.base/share/classes/java/lang/classfile/ClassHierarchyResolver.java ! src/java.base/share/classes/java/lang/classfile/ClassModel.java ! src/java.base/share/classes/java/lang/classfile/ClassReader.java ! src/java.base/share/classes/java/lang/classfile/ClassSignature.java ! src/java.base/share/classes/java/lang/classfile/ClassTransform.java ! src/java.base/share/classes/java/lang/classfile/CodeBuilder.java ! src/java.base/share/classes/java/lang/classfile/CodeElement.java ! src/java.base/share/classes/java/lang/classfile/CodeModel.java ! src/java.base/share/classes/java/lang/classfile/CompoundElement.java ! src/java.base/share/classes/java/lang/classfile/FieldBuilder.java ! src/java.base/share/classes/java/lang/classfile/FieldElement.java ! src/java.base/share/classes/java/lang/classfile/FieldModel.java ! src/java.base/share/classes/java/lang/classfile/Instruction.java ! src/java.base/share/classes/java/lang/classfile/Interfaces.java ! src/java.base/share/classes/java/lang/classfile/MethodBuilder.java ! src/java.base/share/classes/java/lang/classfile/MethodElement.java ! src/java.base/share/classes/java/lang/classfile/MethodModel.java ! src/java.base/share/classes/java/lang/classfile/MethodSignature.java ! src/java.base/share/classes/java/lang/classfile/PseudoInstruction.java ! src/java.base/share/classes/java/lang/classfile/Signature.java ! src/java.base/share/classes/java/lang/classfile/Superclass.java ! src/java.base/share/classes/java/lang/classfile/TypeAnnotation.java ! src/java.base/share/classes/java/lang/classfile/TypeKind.java ! src/java.base/share/classes/java/lang/classfile/attribute/AnnotationDefaultAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/BootstrapMethodsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/CharacterRangeTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/CodeAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/CompilationIDAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ConstantValueAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/DeprecatedAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/EnclosingMethodAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ExceptionsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/InnerClassInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/InnerClassesAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/LineNumberTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/MethodParameterInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/MethodParametersAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleExportInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleHashInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleHashesAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleMainClassAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleOpenInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModulePackagesAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleProvideInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleRequireInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleResolutionAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleTargetAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/NestHostAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/NestMembersAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/PermittedSubclassesAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RecordAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RecordComponentInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleParameterAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleTypeAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleParameterAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleTypeAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/SignatureAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/SourceDebugExtensionAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/SourceFileAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/SourceIDAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/StackMapFrameInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/StackMapTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/SyntheticAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/UnknownAttribute.java ! src/java.base/share/classes/java/lang/classfile/components/ClassPrinter.java ! src/java.base/share/classes/java/lang/classfile/components/ClassRemapper.java ! src/java.base/share/classes/java/lang/classfile/components/CodeLocalsShifter.java ! src/java.base/share/classes/java/lang/classfile/components/CodeRelabeler.java ! src/java.base/share/classes/java/lang/classfile/components/CodeStackTracker.java ! src/java.base/share/classes/java/lang/classfile/components/snippet-files/PackageSnippets.java ! src/java.base/share/classes/java/lang/classfile/constantpool/AnnotationConstantValueEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/ClassEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantDynamicEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPool.java ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPoolBuilder.java ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantValueEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/DoubleEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/DynamicConstantPoolEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/FieldRefEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/FloatEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/IntegerEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/InterfaceMethodRefEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/LoadableConstantEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/LongEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/MethodRefEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/ModuleEntry.java ! src/java.base/share/classes/java/lang/classfile/constantpool/PackageEntry.java ! src/java.base/share/classes/java/lang/classfile/instruction/ArrayLoadInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/ArrayStoreInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/BranchInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/CharacterRange.java ! src/java.base/share/classes/java/lang/classfile/instruction/ConstantInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/ConvertInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/DiscontinuedInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/ExceptionCatch.java ! src/java.base/share/classes/java/lang/classfile/instruction/FieldInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/IncrementInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/InvokeDynamicInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/InvokeInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/LabelTarget.java ! src/java.base/share/classes/java/lang/classfile/instruction/LineNumber.java ! src/java.base/share/classes/java/lang/classfile/instruction/LoadInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/LookupSwitchInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/MonitorInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/NewMultiArrayInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/NewObjectInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/NewPrimitiveArrayInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/NewReferenceArrayInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/NopInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/OperatorInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/ReturnInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/StackInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/StoreInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/SwitchCase.java ! src/java.base/share/classes/java/lang/classfile/instruction/TableSwitchInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/ThrowInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/TypeCheckInstruction.java ! src/java.base/share/classes/java/lang/classfile/snippet-files/PackageSnippets.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPseudoInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractUnboundModel.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AccessFlagsImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationReader.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AttributeHolder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BlockCodeBuilderImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BootstrapMethodEntryImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BoundAttribute.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BoundLocalVariable.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BoundRecordComponentInfo.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufWriterImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufferedCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufferedFieldBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufferedMethodBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CatchBuilderImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ChainedClassBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ChainedCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ChainedFieldBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ChainedMethodBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassHierarchyImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassPrinterImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassReaderImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassRemapperImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CodeImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CodeLocalsShifterImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CodeRelabelerImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CodeStackTrackerImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectClassBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectFieldBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectMethodBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/FieldImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/InterfacesImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/MethodImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/MethodInfo.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ModuleAttributeBuilderImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/SignaturesImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackCounter.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java ! src/java.base/share/classes/jdk/internal/classfile/impl/SuperclassImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/TemporaryConstantPool.java ! src/java.base/share/classes/jdk/internal/classfile/impl/TransformImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/UnboundAttribute.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/ParserVerifier.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationBytecodes.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationTable.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationType.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationWrapper.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerifierImpl.java Changeset: 8e16e674 Branch: hermetic-java-runtime Author: Ivan Walulya Date: 2024-10-17 12:26:39 +0000 URL: https://git.openjdk.org/leyden/commit/8e16e67492a46c5ee1e6fdb8f86d061cb8d3169b 8342329: G1: Rename G1HeapRegionManager::_allocated_heapregions_length Reviewed-by: tschatzl, shade ! src/hotspot/share/gc/g1/g1HeapRegionManager.cpp ! src/hotspot/share/gc/g1/g1HeapRegionManager.hpp Changeset: d6f8b465 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2024-10-17 12:31:43 +0000 URL: https://git.openjdk.org/leyden/commit/d6f8b465e47d40220bdba6bf7502de90ee9fa7f7 8340389: vmTestbase/gc/gctests/PhantomReference/phantom001/TestDescription.java Test exit code: 97 with -Xcomp UseAVX=3 Reviewed-by: shade, iwalulya ! test/hotspot/jtreg/vmTestbase/gc/gctests/PhantomReference/phantom001/phantom001.java Changeset: 363327e6 Branch: hermetic-java-runtime Author: Matias Saavedra Silva Date: 2024-10-17 13:56:49 +0000 URL: https://git.openjdk.org/leyden/commit/363327e68644b710b0fd549e088beb5c8838a973 8341452: Test runtime/cds/appcds/DumpRuntimeClassesTest.java from JDK-8324259 is failing Reviewed-by: dholmes, iklam ! src/hotspot/share/cds/cdsProtectionDomain.cpp ! src/hotspot/share/cds/cdsProtectionDomain.hpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/cds/metaspaceShared.hpp ! test/hotspot/jtreg/ProblemList-Xcomp.txt ! test/hotspot/jtreg/runtime/cds/appcds/DumpRuntimeClassesTest.java Changeset: d915ac2a Branch: hermetic-java-runtime Author: Ramkumar Sunderbabu Committer: Leonid Mesnik Date: 2024-10-17 14:34:58 +0000 URL: https://git.openjdk.org/leyden/commit/d915ac2abda9ff4cd8c7a628f08d7964bcf3f472 8339871: serviceability/sa/TestDebugInfoDecode.java should be driver Reviewed-by: cjplummer, lmesnik ! test/hotspot/jtreg/serviceability/sa/TestDebugInfoDecode.java Changeset: 7e98f590 Branch: hermetic-java-runtime Author: Alisen Chung Date: 2024-10-17 14:49:03 +0000 URL: https://git.openjdk.org/leyden/commit/7e98f5905b313f4e9bf638f87392b6a1b01df1f8 8340987: Open some TextArea awt tests 1 Reviewed-by: prr, abhiscxk + test/jdk/java/awt/TextArea/TextAreaAppendScrollTest2.java + test/jdk/java/awt/TextArea/TextAreaAppendTest.java + test/jdk/java/awt/TextArea/TextAreaCRLFAutoDetectManualTest.java + test/jdk/java/awt/TextArea/TextAreaLimit.java Changeset: 9a94884e Branch: hermetic-java-runtime Author: Alisen Chung Date: 2024-10-17 14:50:01 +0000 URL: https://git.openjdk.org/leyden/commit/9a94884e428f9a6fee1aac2af0d0d057aef77e1b 8341055: Open some TextArea awt tests 2 Reviewed-by: prr, abhiscxk + test/jdk/java/awt/TextArea/TextAreaHScrollbarTest.java + test/jdk/java/awt/TextArea/TextAreaLineScrollWrapTest.java + test/jdk/java/awt/TextArea/TextAreaScrollbarTest.java + test/jdk/java/awt/TextArea/TextScrollTest.java Changeset: 979895d1 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-17 15:03:37 +0000 URL: https://git.openjdk.org/leyden/commit/979895d175797a71c52da12f245d1040a27172cf 8342079: Shenandoah: Remove extra ShenandoahInitMarkRootsClosure Reviewed-by: wkemper, rkennke ! src/hotspot/share/gc/shenandoah/shenandoahSTWMark.cpp Changeset: 236c71ca Branch: hermetic-java-runtime Author: Alisen Chung Date: 2024-10-17 15:10:38 +0000 URL: https://git.openjdk.org/leyden/commit/236c71cad9fa269518456c11edcfb353bbfc084d 8341376: Open some TextArea awt tests 4 Reviewed-by: prr, abhiscxk + test/jdk/java/awt/TextArea/ScrollBarArrowScrollTest.java + test/jdk/java/awt/TextArea/WordWrappingTest.java Changeset: 83e9e482 Branch: hermetic-java-runtime Author: Coleen Phillimore Date: 2024-10-17 18:06:42 +0000 URL: https://git.openjdk.org/leyden/commit/83e9e482b181e76ca9f645e8cc83cfa9337df498 8325937: runtime/handshake/HandshakeDirectTest.java causes "monitor end should be strictly below the frame pointer" assertion failure on AArch64 Reviewed-by: rehn, eosterlund, pchilanomate, aph, fbredberg ! src/hotspot/share/runtime/handshake.cpp Changeset: b993227e Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-17 18:08:43 +0000 URL: https://git.openjdk.org/leyden/commit/b993227e2f3233c7b34a77eebbeeb1c51d2b7cfe 8342119: Shenandoah: Remove extra ShenandoahUpdateRefsClosure Reviewed-by: wkemper, kdnilsen, rkennke ! src/hotspot/share/gc/shenandoah/shenandoahClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp Changeset: 40a44e1c Branch: hermetic-java-runtime Author: Alisen Chung Date: 2024-10-17 18:10:00 +0000 URL: https://git.openjdk.org/leyden/commit/40a44e1c1b83a0a4edf48fa4d2aafa70e223e2fa 8340851: Open some TextArea awt tests Reviewed-by: prr + test/jdk/java/awt/TextArea/TextAreaAppendScrollTest.java + test/jdk/java/awt/TextArea/TextAreaCursorTest.java + test/jdk/java/awt/TextArea/TextAreaKeypadTest.java + test/jdk/java/awt/TextArea/TextAreaSelectionTest.java Changeset: 60af9078 Branch: hermetic-java-runtime Author: Alisen Chung Date: 2024-10-17 19:28:26 +0000 URL: https://git.openjdk.org/leyden/commit/60af9078fb4b1bce7c1fee171cd050c1cb0b1223 8340494: Open some dialog awt tests 4 Reviewed-by: dnguyen, honkar + test/jdk/java/awt/Container/ActivateOnFocusTest.java + test/jdk/java/awt/Container/MouseEnteredTest.java + test/jdk/java/awt/Dialog/ModalExcludedTest.java Changeset: 12551ae6 Branch: hermetic-java-runtime Author: Alisen Chung Date: 2024-10-17 19:29:00 +0000 URL: https://git.openjdk.org/leyden/commit/12551ae64a7d09d1ea76d4f48f181962402020fb 8339975: Open some dialog awt tests 2 Reviewed-by: azvegint + test/jdk/java/awt/Dialog/DialogDisposeLeak.java + test/jdk/java/awt/Dialog/FileDialogTest.java + test/jdk/java/awt/Dialog/TaskbarIconTest.java + test/jdk/java/awt/Dialog/WindowInputBlock.java Changeset: fe83b7d5 Branch: hermetic-java-runtime Author: Nikita Gubarkov Committer: Alexey Ushakov Date: 2024-10-17 20:54:18 +0000 URL: https://git.openjdk.org/leyden/commit/fe83b7d59667563a4b9e60858e900f7196073f6d 8339341: SurfaceManager cacheMap retains strong references Reviewed-by: jdv, prr ! src/java.desktop/macosx/classes/sun/awt/CGraphicsConfig.java ! src/java.desktop/macosx/classes/sun/java2d/metal/MTLGraphicsConfig.java ! src/java.desktop/macosx/classes/sun/java2d/metal/MTLSurfaceData.java ! src/java.desktop/macosx/classes/sun/java2d/opengl/CGLGraphicsConfig.java ! src/java.desktop/share/classes/sun/awt/image/SurfaceManager.java ! src/java.desktop/share/classes/sun/java2d/SurfaceData.java ! src/java.desktop/share/classes/sun/java2d/opengl/OGLSurfaceData.java ! src/java.desktop/unix/classes/sun/awt/X11GraphicsConfig.java ! src/java.desktop/unix/classes/sun/awt/X11GraphicsDevice.java ! src/java.desktop/unix/classes/sun/java2d/opengl/GLXGraphicsConfig.java ! src/java.desktop/unix/classes/sun/java2d/x11/X11SurfaceData.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRGraphicsConfig.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRSurfaceData.java ! src/java.desktop/windows/classes/sun/awt/Win32GraphicsConfig.java ! src/java.desktop/windows/classes/sun/awt/Win32GraphicsDevice.java ! src/java.desktop/windows/classes/sun/java2d/d3d/D3DSurfaceData.java ! src/java.desktop/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java ! src/java.desktop/windows/classes/sun/java2d/windows/GDIWindowSurfaceData.java Changeset: f7e8f506 Branch: hermetic-java-runtime Author: Alisen Chung Date: 2024-10-17 21:00:48 +0000 URL: https://git.openjdk.org/leyden/commit/f7e8f5064a405e46db722ec47bfd86a43408b328 8341292: Open some TextArea awt tests 3 Reviewed-by: prr, abhiscxk + test/jdk/java/awt/TextArea/PrintTextTest.java Changeset: 2b03dbda Branch: hermetic-java-runtime Author: Kevin Rushforth Committer: Roger Riggs Date: 2024-10-18 00:23:39 +0000 URL: https://git.openjdk.org/leyden/commit/2b03dbdac4819bc0d40912f273a1ca7ab4e8715e 8311530: Deprecate jdk.jsobject module for removal Reviewed-by: rriggs, alanb, erikj ! make/conf/module-loader-map.conf ! src/java.base/share/lib/security/default.policy ! src/jdk.jsobject/share/classes/module-info.java ! src/jdk.jsobject/share/classes/netscape/javascript/JSException.java ! src/jdk.jsobject/share/classes/netscape/javascript/JSObject.java ! src/jdk.jsobject/share/classes/netscape/javascript/package-info.java ! test/jdk/jdk/modules/etc/UpgradeableModules.java Changeset: ffe60919 Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2024-10-18 00:51:39 +0000 URL: https://git.openjdk.org/leyden/commit/ffe60919df59196d65832b8ce6b2cd38099d64df 8173970: jar tool should have a way to extract to a directory Reviewed-by: lancea, cstein ! src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java ! src/jdk.jartool/share/classes/sun/tools/jar/Main.java ! src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties ! src/jdk.jartool/share/man/jar.1 + test/jdk/tools/jar/JarExtractTest.java Changeset: 7a16906e Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2024-10-18 00:57:11 +0000 URL: https://git.openjdk.org/leyden/commit/7a16906ed0dce716bc9516cb75b6450725fe9dbb 8341134: Deprecate for removal the jrunscript tool Reviewed-by: mchung, alanb, sundar ! src/java.scripting/share/classes/com/sun/tools/script/shell/Main.java ! src/java.scripting/share/classes/com/sun/tools/script/shell/messages.properties ! src/java.scripting/share/classes/module-info.java ! src/java.scripting/share/man/jrunscript.1 Changeset: f50bd0d9 Branch: hermetic-java-runtime Author: Amit Kumar Date: 2024-10-18 03:37:50 +0000 URL: https://git.openjdk.org/leyden/commit/f50bd0d9ec65a6b9596805d0131aaefc1bb913f3 8341513: Remove the unused thread_type field from OSThread Reviewed-by: stefank, dholmes ! src/hotspot/os/aix/osThread_aix.cpp ! src/hotspot/os/aix/osThread_aix.hpp ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/osThread_bsd.cpp ! src/hotspot/os/bsd/osThread_bsd.hpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/osThread_linux.cpp ! src/hotspot/os/linux/osThread_linux.hpp ! src/hotspot/os/linux/os_linux.cpp Changeset: 7f4ed500 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-18 05:55:07 +0000 URL: https://git.openjdk.org/leyden/commit/7f4ed5001efac28f02fbbb78893051e28cc33e80 8341020: Error handler crashes when Metaspace is not fully initialized Reviewed-by: kbarrett, jsjolen, stefank, dholmes ! src/hotspot/share/runtime/os.cpp Changeset: c51a086c Branch: hermetic-java-runtime Author: Tobias Hartmann Date: 2024-10-18 06:46:23 +0000 URL: https://git.openjdk.org/leyden/commit/c51a086ce32dd4e97aa83dfba3bcf9b0636193cc 8339694: ciTypeFlow does not correctly handle unresolved constant dynamic of array type Reviewed-by: kvn, vlivanov ! src/hotspot/share/ci/ciTypeFlow.cpp ! src/hotspot/share/opto/parse2.cpp ! test/hotspot/jtreg/ProblemList-Xcomp.txt + test/hotspot/jtreg/compiler/c2/TestUnresolvedConstantDynamic.java + test/hotspot/jtreg/compiler/c2/TestUnresolvedConstantDynamicHelper.jasm Changeset: 0963b9e8 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2024-10-18 08:06:09 +0000 URL: https://git.openjdk.org/leyden/commit/0963b9e8918670badc956a325fe2ca0bf55f6d29 8341664: ReferenceClassDescImpl cache internalName Reviewed-by: liach ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java ! src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java ! src/java.base/share/classes/jdk/internal/constant/ReferenceClassDescImpl.java ! test/jdk/jdk/classfile/UtilTest.java Changeset: 9201e9fc Branch: hermetic-java-runtime Author: Amit Kumar Date: 2024-10-18 08:30:41 +0000 URL: https://git.openjdk.org/leyden/commit/9201e9fcc28cff37cf9996e8db38f9aee7511b1c 8342409: [s390x] C1 unwind_handler fails to unlock synchronized methods with LM_MONITOR Reviewed-by: rrich, lucy ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp ! src/hotspot/cpu/s390/c1_MacroAssembler_s390.cpp Changeset: 8174cbd5 Branch: hermetic-java-runtime Author: Alexey Ivanov Date: 2024-10-18 11:03:00 +0000 URL: https://git.openjdk.org/leyden/commit/8174cbd5cb797a80d48246a686897ef6fe64ed57 8341978: Improve JButton/bug4490179.java Use latch to synchronize actions in the test. Verify mouseButton3Released does not trigger actionPerformed while mouse button 1 is pressed. Ensure mouse button 1 is released. Verify releasing mouse button 1 triggers actionPerformed. Reviewed-by: azvegint, achung, serb ! test/jdk/javax/swing/JButton/bug4490179.java Changeset: 28252bb4 Branch: hermetic-java-runtime Author: Matias Saavedra Silva Date: 2024-10-18 13:23:52 +0000 URL: https://git.openjdk.org/leyden/commit/28252bb48da3c960a1a261af26650d74235a9531 8341444: Unnecessary check for JSRs in CDS Reviewed-by: dholmes, coleenp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp Changeset: 4dcc7f3f Branch: hermetic-java-runtime Author: Fei Gao Date: 2024-10-18 15:00:58 +0000 URL: https://git.openjdk.org/leyden/commit/4dcc7f3f2629e857b20f72e99189db8781aa65ff 8337536: AArch64: Enable BTI branch protection for runtime part Co-authored-by: Hao Sun Co-authored-by: Magnus Ihse Bursie Reviewed-by: aph, ihse, erikj, eliu ! make/autoconf/flags-cflags.m4 ! make/autoconf/flags-other.m4 ! make/autoconf/spec.gmk.template ! src/hotspot/cpu/aarch64/copy_aarch64.hpp ! src/hotspot/os_cpu/linux_aarch64/atomic_linux_aarch64.S ! src/hotspot/os_cpu/linux_aarch64/copy_linux_aarch64.S ! src/hotspot/os_cpu/linux_aarch64/safefetch_linux_aarch64.S ! src/hotspot/os_cpu/linux_aarch64/threadLS_linux_aarch64.S Changeset: 07840113 Branch: hermetic-java-runtime Author: Justin Lu Date: 2024-10-18 17:41:36 +0000 URL: https://git.openjdk.org/leyden/commit/078401134a97a13a96e12aa23e3481c59f3669ed 8340488: Clarify LocaleServiceProvider deployment on application module path Reviewed-by: naoto ! src/java.base/share/classes/java/util/spi/LocaleServiceProvider.java Changeset: 85911094 Branch: hermetic-java-runtime Author: Serguei Spitsyn Date: 2024-10-18 19:34:17 +0000 URL: https://git.openjdk.org/leyden/commit/8591109419efc8f71544a98bdb04a48cb1afc47e 8340698: JVMTI FRAME_POP event is sometimes missed if NotifyFramePop is called as a method is returning Reviewed-by: cjplummer, amenkov ! src/hotspot/share/prims/jvmtiEnvBase.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/prims/jvmtiThreadState.cpp ! src/hotspot/share/prims/jvmtiThreadState.hpp + test/hotspot/jtreg/serviceability/jvmti/events/NotifyFramePopStressTest/NotifyFramePopStressTest.java + test/hotspot/jtreg/serviceability/jvmti/events/NotifyFramePopStressTest/libNotifyFramePopStressTest.cpp Changeset: 401d0d6b Branch: hermetic-java-runtime Author: Chad Rakoczy Committer: Paul Hohensee Date: 2024-10-18 22:52:40 +0000 URL: https://git.openjdk.org/leyden/commit/401d0d6b09ea422eacecda2900793a416097dc9b 8335662: [AArch64] C1: guarantee(val < (1ULL << nbits)) failed: Field too big for insn Reviewed-by: thartmann, eastigeevich ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp + test/hotspot/jtreg/compiler/c1/TestOSRLotsOfLocals.java Changeset: 309b9291 Branch: hermetic-java-runtime Author: Johannes Bechberger Date: 2024-10-18 23:39:05 +0000 URL: https://git.openjdk.org/leyden/commit/309b929147e7dddfa27879ff31b1eaad271def85 8336401: Remove the option onjcmd from the jdwp agent Reviewed-by: cjplummer, mbaesken ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/diagnosticCommand.hpp ! src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c - test/jdk/com/sun/jdi/OnJcmdTest.java ! test/jdk/jdk/jfr/event/runtime/TestAgentEvent.java Changeset: 76ae072a Branch: hermetic-java-runtime Author: Fei Yang Date: 2024-10-21 01:46:26 +0000 URL: https://git.openjdk.org/leyden/commit/76ae072a1fec5f2af4ac4c633bc67a0c4c756a90 8342579: RISC-V: C2: Cleanup effect of killing flag register for call instructs Reviewed-by: rehn, fjiang ! src/hotspot/cpu/riscv/riscv.ad Changeset: d61f56a3 Branch: hermetic-java-runtime Author: Christian Hagedorn Date: 2024-10-21 06:28:40 +0000 URL: https://git.openjdk.org/leyden/commit/d61f56a3001f2f574f49c36f5bb40e96bb6b827d 8342287: C2 fails with "assert(is_IfTrue()) failed: invalid node class: IfFalse" due to Template Assertion Predicate with two UCTs Reviewed-by: kvn, thartmann ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/predicates.cpp ! src/hotspot/share/opto/predicates.hpp + src/hotspot/test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateWithTwoUCTs.java Changeset: 21682bcd Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-21 07:20:48 +0000 URL: https://git.openjdk.org/leyden/commit/21682bcdccbb35286cbffc21517b3b52abcb2476 8342612: Increase memory usage of compiler/c2/TestScalarReplacementMaxLiveNodes.java Reviewed-by: kvn ! test/hotspot/jtreg/compiler/c2/TestScalarReplacementMaxLiveNodes.java Changeset: 8f2b23bb Branch: hermetic-java-runtime Author: Roland Westrelin Date: 2024-10-21 07:37:01 +0000 URL: https://git.openjdk.org/leyden/commit/8f2b23bb53e81e3f9d8d84720719d129aea82a78 8341407: C2: assert(main_limit == cl->limit() || get_ctrl(main_limit) == new_limit_ctrl) failed: wrong control for added limit Reviewed-by: chagedorn, thartmann ! src/hotspot/share/opto/loopTransform.cpp + test/hotspot/jtreg/compiler/rangechecks/TestLimitControlWhenNoRCEliminated.java Changeset: 680dc5d8 Branch: hermetic-java-runtime Author: Roland Westrelin Date: 2024-10-21 07:38:39 +0000 URL: https://git.openjdk.org/leyden/commit/680dc5d896f4f7b01b3cf800d548e32bb2ef8c81 8342496: C2/Shenandoah: SEGV in compiled code when running jcstress Reviewed-by: shade, rkennke ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp + test/hotspot/jtreg/gc/shenandoah/compiler/TestLoadBypassesNullCheck.java Changeset: aa060f22 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-21 08:04:12 +0000 URL: https://git.openjdk.org/leyden/commit/aa060f22d302789c4f80dd1ebaa233a97b6b0073 8342334: CDS: Scratch mirrors should not point to dead klasses Reviewed-by: adinn, coleenp, iklam ! src/hotspot/share/cds/heapShared.cpp Changeset: 239d84a8 Branch: hermetic-java-runtime Author: Fei Yang Date: 2024-10-21 09:30:28 +0000 URL: https://git.openjdk.org/leyden/commit/239d84a82a1e6f4ebbd5c5abb320e39cfd5bc330 8342578: GHA: RISC-V: Bootstrap using Debian snapshot is still failing Reviewed-by: shade, erikj ! .github/workflows/build-cross-compile.yml Changeset: 5d5d88ab Branch: hermetic-java-runtime Author: Nizar Benalla Date: 2024-10-21 10:13:18 +0000 URL: https://git.openjdk.org/leyden/commit/5d5d88ab9a862ab11bdd622aff07c688e6d96210 8339570: Add Tidy build support for JDK tests Co-authored-by: Magnus Ihse Bursie Reviewed-by: erikj, ihse ! make/RunTests.gmk ! make/autoconf/configure.ac ! make/autoconf/lib-tests.m4 ! make/autoconf/spec.gmk.template ! make/conf/jib-profiles.js + make/devkit/createTidyBundle.sh Changeset: 27ef6c9d Branch: hermetic-java-runtime Author: fabioromano1 <51378941+fabioromano1 at users.noreply.github.com> Committer: Raffaello Giulietti Date: 2024-10-21 10:14:15 +0000 URL: https://git.openjdk.org/leyden/commit/27ef6c9df47326508ee9b2b29f2ff4cec6e38377 8341470: BigDecimal.stripTrailingZeros() optimization Reviewed-by: rgiulietti ! src/java.base/share/classes/java/math/BigDecimal.java ! src/java.base/share/classes/java/math/BigInteger.java + test/micro/org/openjdk/bench/java/math/BigDecimalStripTrailingZeros.java Changeset: 07f550b8 Branch: hermetic-java-runtime Author: Nizar Benalla Date: 2024-10-21 10:22:14 +0000 URL: https://git.openjdk.org/leyden/commit/07f550b85a3910edd28d8761e2adfb8d6a1352f6 8340818: Add a new jtreg test root to test the generated documentation Reviewed-by: erikj ! make/Global.gmk ! make/InitSupport.gmk ! make/Main.gmk ! make/RunTests.gmk ! make/common/FindTests.gmk ! make/conf/jib-profiles.js + test/docs/ProblemList.txt + test/docs/TEST.ROOT + test/docs/TEST.groups + test/docs/jdk/javadoc/TestDocs.java + test/docs/tools/tester/DocTester.java Changeset: 66ddaaa3 Branch: hermetic-java-runtime Author: Robbin Ehn Date: 2024-10-21 13:15:52 +0000 URL: https://git.openjdk.org/leyden/commit/66ddaaa3591851cc420ec9e0ffe460c78a9a51f5 8340241: RISC-V: Returns mispredicted Reviewed-by: fyang, luhenry ! src/hotspot/cpu/riscv/assembler_riscv.hpp ! src/hotspot/cpu/riscv/c1_CodeStubs_riscv.cpp ! src/hotspot/cpu/riscv/gc/g1/g1BarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/gc/x/xBarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/gc/z/zBarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/interp_masm_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/methodHandles_riscv.cpp ! src/hotspot/cpu/riscv/nativeInst_riscv.cpp ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/riscv/runtime_riscv.cpp ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp ! src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp ! src/hotspot/cpu/riscv/templateTable_riscv.cpp ! src/hotspot/cpu/riscv/upcallLinker_riscv.cpp ! src/hotspot/cpu/riscv/vtableStubs_riscv.cpp Changeset: 1f357485 Branch: hermetic-java-runtime Author: Joel Sikstr?m Date: 2024-10-21 13:16:10 +0000 URL: https://git.openjdk.org/leyden/commit/1f3574855e79221739d8800235583b7c47ebae97 8342102: ZGC: Optimize copy constructors in ZPhysicalMemory Reviewed-by: stefank, kbarrett, aboldtch ! src/hotspot/share/gc/z/zPhysicalMemory.cpp Changeset: 330f2b5a Branch: hermetic-java-runtime Author: Tomas Zezula Committer: Doug Simon Date: 2024-10-21 13:50:13 +0000 URL: https://git.openjdk.org/leyden/commit/330f2b5a9cad02b8e6882fc6eee996d7792d3de1 8342295: compiler/jvmci/TestJVMCISavedProperties.java fails due to garbage in output Reviewed-by: dnsimon ! test/hotspot/jtreg/compiler/jvmci/TestJVMCISavedProperties.java Changeset: 80ec5522 Branch: hermetic-java-runtime Author: Kangcheng Xu Date: 2024-10-21 14:57:31 +0000 URL: https://git.openjdk.org/leyden/commit/80ec552248470dda2d0d003be9315e9e39eb5276 8328528: C2 should optimize long-typed parallel iv in an int counted loop Reviewed-by: roland, chagedorn, thartmann ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp + test/hotspot/jtreg/compiler/loopopts/parallel_iv/TestParallelIvInIntCountedLoop.java Changeset: 153ad911 Branch: hermetic-java-runtime Author: Sandhya Viswanathan Date: 2024-10-21 14:58:43 +0000 URL: https://git.openjdk.org/leyden/commit/153ad911f9fa3389ab92a1acab44526e3f4be4a2 8338126: C2 SuperWord: VectorCastF2HF / vcvtps2ph produces wrong results for vector length 2 Reviewed-by: thartmann, jbhateja, epeter ! src/hotspot/cpu/x86/x86.ad ! test/hotspot/jtreg/compiler/lib/ir_framework/test/IREncodingPrinter.java ! test/hotspot/jtreg/compiler/vectorization/TestFloatConversionsVector.java Changeset: 18b55cea Branch: hermetic-java-runtime Author: Joe Darcy Date: 2024-10-21 15:14:12 +0000 URL: https://git.openjdk.org/leyden/commit/18b55ceaa44baabdfce8dcfa1cd6b3e3bdc9df1a 8342653: Fix minor doc issues in AnnotatedElement Reviewed-by: jpai, iris, liach ! src/java.base/share/classes/java/lang/reflect/AnnotatedElement.java Changeset: 54a744b0 Branch: hermetic-java-runtime Author: Lance Andersen Date: 2024-10-21 15:34:27 +0000 URL: https://git.openjdk.org/leyden/commit/54a744b0235ab2987f2e9c78fb5326b15233d176 8340553: ZipEntry field validation does not take into account the size of a CEN header Reviewed-by: jpai, redestad, eirbjo ! src/java.base/share/classes/java/util/zip/ZipEntry.java ! src/java.base/share/classes/java/util/zip/ZipOutputStream.java + test/jdk/java/util/zip/ZipEntry/MaxZipEntryFieldSizeTest.java - test/jdk/java/util/zip/ZipOutputStream/ZipOutputStreamMaxCenHdrTest.java Changeset: 18bcbf79 Branch: hermetic-java-runtime Author: Smita Kamath Date: 2024-10-21 15:37:36 +0000 URL: https://git.openjdk.org/leyden/commit/18bcbf7941f7567449983b3f317401efb3e34d39 8341052: SHA-512 implementation using SHA-NI Reviewed-by: jbhateja, ascarpino, sviswanathan, sparasa ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/macroAssembler_x86_sha.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/amd64/AMD64.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbLongConstant.java Changeset: 37aa320f Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-21 15:56:19 +0000 URL: https://git.openjdk.org/leyden/commit/37aa320f573650f007e60729e4d187c3b96b5756 8342376: More reliable OOM handling in ExceptionDuringDumpAtObjectsInitPhase test Reviewed-by: iklam, phh ! test/hotspot/jtreg/runtime/cds/appcds/javaldr/GCDuringDumpTransformer.java Changeset: 52d752c4 Branch: hermetic-java-runtime Author: hanklo6 Date: 2024-10-21 16:46:41 +0000 URL: https://git.openjdk.org/leyden/commit/52d752c43b3a9935ea97051c39adf381084035cc 8339507: Test generation tool and gtest for testing APX encoding of extended gpr instructions Reviewed-by: jbhateja, sviswanathan, kvn + test/hotspot/gtest/x86/asmtest.out.h + test/hotspot/gtest/x86/test_assemblerx86.cpp + test/hotspot/gtest/x86/x86-asmtest.py Changeset: 51a7ff65 Branch: hermetic-java-runtime Author: Justin Lu Date: 2024-10-21 17:08:50 +0000 URL: https://git.openjdk.org/leyden/commit/51a7ff65949e77c58c66f724e9047ca591e5c6d4 8335271: Specify the MessageFormat ArgumentIndex Implementation Limit Reviewed-by: darcy, iris, naoto, rriggs ! src/java.base/share/classes/java/text/MessageFormat.java Changeset: 97c92128 Branch: hermetic-java-runtime Author: Hannes Walln?fer Date: 2024-10-21 17:14:25 +0000 URL: https://git.openjdk.org/leyden/commit/97c921284222ca53a293dcebe513fbb59ee9c690 8342698: Fix order of @param tags in module java.base Reviewed-by: iris ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/java/lang/invoke/VarHandle.java ! src/java.base/share/classes/java/security/cert/CertificateRevokedException.java ! src/java.base/share/classes/java/security/interfaces/DSAKeyPairGenerator.java ! src/java.base/share/classes/java/util/Arrays.java ! src/java.base/share/classes/java/util/stream/Collectors.java Changeset: 71583222 Branch: hermetic-java-runtime Author: Naoto Sato Date: 2024-10-21 17:20:50 +0000 URL: https://git.openjdk.org/leyden/commit/71583222eb221f2bae480d1f834e48527081691e 8340477: Remove JDK1.1 compatible behavior for "EST", "MST", and "HST" time zones Reviewed-by: iris, jlu, joehw ! src/java.base/share/classes/java/util/TimeZone.java ! src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java - test/jdk/java/util/TimeZone/OldIDMappingTest.java - test/jdk/java/util/TimeZone/TzIDOldMapping.java ! test/jdk/sun/util/calendar/zi/ZoneInfoOld.java Changeset: e0c6480c Branch: hermetic-java-runtime Author: Phil Race Date: 2024-10-21 18:23:13 +0000 URL: https://git.openjdk.org/leyden/commit/e0c6480cd3c8f033bad36711701d71d30269d7b3 8338570: sun/font/HBShaper - mismatch in return type of FFM upcall function description and native invocation Reviewed-by: serb, aivanov ! src/java.desktop/share/classes/sun/font/HBShaper.java ! src/java.desktop/share/native/libfontmanager/HBShaper_Panama.c ! src/java.desktop/share/native/libfontmanager/hb-jdk-p.h Changeset: 5a4b1809 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2024-10-21 18:42:26 +0000 URL: https://git.openjdk.org/leyden/commit/5a4b180965048027094adcebcd35d0f9a2a2c601 8342011: Conditionally compile ReservedHeapSpace compressed heap support Reviewed-by: stefank, dholmes ! src/hotspot/share/memory/virtualspace.cpp ! src/hotspot/share/memory/virtualspace.hpp Changeset: 56b325ed Branch: hermetic-java-runtime Author: Jiangli Zhou Date: 2024-10-21 12:14:43 +0000 URL: https://git.openjdk.org/leyden/commit/56b325ed13731ff44809876430c9ef2fe5d6ae90 Merge branch 'master' into hermetic-java-runtime ! make/Main.gmk ! make/autoconf/configure.ac ! make/autoconf/spec.gmk.template ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os_cpu/linux_aarch64/threadLS_linux_aarch64.S ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/os.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! make/Main.gmk ! make/autoconf/configure.ac ! make/autoconf/spec.gmk.template ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os_cpu/linux_aarch64/threadLS_linux_aarch64.S ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/os.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp From ioi.lam at oracle.com Tue Oct 22 17:04:19 2024 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Tue, 22 Oct 2024 10:04:19 -0700 Subject: Merging JEP 483 (Ahead-of-Time Class Loading & Linking) review into a single PR Message-ID: Now that the review of JEP 483 is winding down, I have created a combined branch of all the 7 individual PRs. This will make it easy for me to sync from the mainline before making the final integration. - https://github.com/openjdk/jdk/pull/21642 I have addressed most of the feedback in the individual PRs. I will address any outstanding feedback in the combined PR. Please take a look again at the combined PR and give your approval if you think the code is OK :-) (I will close the individual PRs. If I see any new comments on them, I will copy-and-paste into the combined one.) Thanks - Ioi From asmehra at openjdk.org Thu Oct 24 01:56:12 2024 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Thu, 24 Oct 2024 01:56:12 GMT Subject: RFR: Save/load i2c2i adapters Message-ID: This is an attempt to save and load i2c2i adapters along with the adapter handler table. There are mainly two parts to this change: 1. Storing of adapter code in the SCCache or AOT code cache. 2. Storing of adapter handler table in the AOT cache. Adapter handler table is a map from AdapterFingerPrint to AdapterHnadlerEntry. To store them in AOT cache, AdapterFingerPrint and AdapterHandlerEntry are updated to MetaspaceObj. Both these entities are discovered and added to the cache while processing the Method. When storing the adapter handler table, only the entries that have already been archived are considered. This allows pruning of AdapterHnadlerEntry that may be only reachable through a Method that is not eligible to be archived. An AdapterHandlerEntry has pointer to the adapter code. Because the AdapterHandlerEntry and the adapter code are stored in separate archives, this link between the AdapterHandlerEntry and the adapter code needs to be removed (see AdapterHandlerEntry::remove_unshareable_info()). During the production run, as the methods in the AOT cache are adopted, the AdapterHandlerEntry is linked back to the adapter code (see AdapterHandlerEntry::restore_unshareable_info). All this code is guarded by -XX:[+-]ArchiveAdapters option which defaults to false, but is set to true in CDSConfig during the assembly phase. Other changes worth mentioning: 1. Changes to the SCCache infrastructure to make it possible to store and load adapter code. (Thanks to @adinn) 2. Updating AdapterFingerPrint hashing algorithm to avoid collisions. If there is any collision, then it will prevent finding the adapter code in the SCCache. (Again courtesy of @adinn) Thanks to @adinn for providing many of these changes. Performance: -Xlog:init shows time taken for linking of Methods and making adapters. An example output is: ClassLoader: clinit: 150us / 4612 events link methods: 28980us / 176893 events method adapters: 15378us / 697 events Save/load of adapters seem to have improved these stats. | Quarkus | -ArchiveAdapters | +ArchiveAdapters | |---|---|---| | link methods | 12214us / 58913 events | 2700us / 58913 events | | method adapters | 7793us / 607 events | 4402us / 38 events | | Spring-petclinic | -ArchiveAdapters | +ArchiveAdapters | |---|---|---| | link methods | 28980us / 176893 events | 7485us / 176893 events | | method adapters | 15378us / 697 events | 7050us / 13 events | However, testing with Quarkus app, I don't see any noticeable improvement in the startup time. ------------- Commit messages: - More whitespace fixes - Move the check for is_abstract_method_adapter() to correct place - Surround code with INCLUDE_CDS where appropriate - Fix whitespace issues - Fix compile failures - Fix a bug and add comment in AdapterHandlerEntry::restore_unshareable_info() - Refactor code to avoid calling AdapterFingerPrint::as_basic_type() when - Add a helper method to iterate over AdapterFingerPrint - Improve hashing algorithm for AdapterFingerPrint - Misc changes - ... and 10 more: https://git.openjdk.org/leyden/compare/a1672ea6...04fb256b Changes: https://git.openjdk.org/leyden/pull/25/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=25&range=00 Stats: 1293 lines in 25 files changed: 834 ins; 248 del; 211 mod Patch: https://git.openjdk.org/leyden/pull/25.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/25/head:pull/25 PR: https://git.openjdk.org/leyden/pull/25 From asmehra at openjdk.org Thu Oct 24 15:59:03 2024 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Thu, 24 Oct 2024 15:59:03 GMT Subject: RFR: Save/load i2c2i adapters [v2] In-Reply-To: References: Message-ID: <9bs4zYR_ctnBRwZu1yuQZvF-nTVOBzgmbDEnIwaUBhM=.e9f2ca96-4dcc-436e-9bf9-8456461ca46a@github.com> > This is an attempt to save and load i2c2i adapters along with the adapter handler table. > There are mainly two parts to this change: > 1. Storing of adapter code in the SCCache or AOT code cache. > 2. Storing of adapter handler table in the AOT cache. > > Adapter handler table is a map from AdapterFingerPrint to AdapterHnadlerEntry. To store them in AOT cache, AdapterFingerPrint and AdapterHandlerEntry are updated to MetaspaceObj. Both these entities are discovered and added to the cache while processing the Method. When storing the adapter handler table, only the entries that have already been archived are considered. This allows pruning of AdapterHnadlerEntry that may be only reachable through a Method that is not eligible to be archived. > > An AdapterHandlerEntry has pointer to the adapter code. Because the AdapterHandlerEntry and the adapter code are stored in separate archives, this link between the AdapterHandlerEntry and the adapter code needs to be removed (see AdapterHandlerEntry::remove_unshareable_info()). > During the production run, as the methods in the AOT cache are adopted, the AdapterHandlerEntry is linked back to the adapter code (see AdapterHandlerEntry::restore_unshareable_info). > > All this code is guarded by -XX:[+-]ArchiveAdapters option which defaults to false, but is set to true in CDSConfig during the assembly phase. > > Other changes worth mentioning: > 1. Changes to the SCCache infrastructure to make it possible to store and load adapter code. (Thanks to @adinn) > 2. Updating AdapterFingerPrint hashing algorithm to avoid collisions. If there is any collision, then it will prevent finding the adapter code in the SCCache. (Again courtesy of @adinn) > > Thanks to @adinn for providing many of these changes. > > Performance: > -Xlog:init shows time taken for linking of Methods and making adapters. An example output is: > > ClassLoader: > clinit: 150us / 4612 events > link methods: 28980us / 176893 events > method adapters: 15378us / 697 events > > Save/load of adapters seem to have improved these stats. > > | Quarkus | -ArchiveAdapters | +ArchiveAdapters | > |---|---|---| > | link methods | 12214us / 58913 events | 2700us / 58913 events | > | method adapters | 7793us / 607 events | 4402us / 38 events | > > | Spring-petclinic | -ArchiveAdapters | +ArchiveAdapters | > |---|---|---| > | link methods | 28980us / 176893 events | 7485us / 176893 events | > | method adapters | 15378us / 697 events | 7050us / 13 events | > > Howeve... Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: Acquire Compile_lock when writing exception blobs to the SCCache Signed-off-by: Ashutosh Mehra ------------- Changes: - all: https://git.openjdk.org/leyden/pull/25/files - new: https://git.openjdk.org/leyden/pull/25/files/04fb256b..b04ba154 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=25&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=25&range=00-01 Stats: 8 lines in 1 file changed: 5 ins; 2 del; 1 mod Patch: https://git.openjdk.org/leyden/pull/25.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/25/head:pull/25 PR: https://git.openjdk.org/leyden/pull/25 From duke at openjdk.org Mon Oct 28 19:36:58 2024 From: duke at openjdk.org (duke) Date: Mon, 28 Oct 2024 19:36:58 GMT Subject: git: openjdk/leyden: hermetic-java-runtime: 90 new changesets Message-ID: <01a5f8c3-eeb0-44d4-8977-204f9a9da9cd@openjdk.org> Changeset: 8276a419 Branch: hermetic-java-runtime Author: hanklo6 Committer: Sandhya Viswanathan Date: 2024-10-21 21:16:26 +0000 URL: https://git.openjdk.org/leyden/commit/8276a419585b9f06c6e9b5fc5813aecc434e00bf 8342715: x86 unused orw instruction encoding could be removed Reviewed-by: sviswanathan, jbhateja, kvn ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp Changeset: 7133d1b9 Branch: hermetic-java-runtime Author: Alexey Semenyuk Date: 2024-10-21 22:13:25 +0000 URL: https://git.openjdk.org/leyden/commit/7133d1b983d7b85ba3c8dde26eb654c7ab695b07 8342609: jpackage test helper function incorrectly removes a directory instead of its contents only Reviewed-by: almatvee ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java Changeset: 8bcd4920 Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-22 02:09:08 +0000 URL: https://git.openjdk.org/leyden/commit/8bcd4920f1b03d0ef8e295e53557c629f05ceaa4 8342681: TestLoadBypassesNullCheck.java fails improperly specified VM option Reviewed-by: shade ! test/hotspot/jtreg/gc/shenandoah/compiler/TestLoadBypassesNullCheck.java Changeset: bf92c498 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-22 07:07:13 +0000 URL: https://git.openjdk.org/leyden/commit/bf92c498391b099b67c313703e48374cade76f87 8342704: GHA: Report truncation is broken after JDK-8341424 Reviewed-by: erikj, jwaters ! .github/scripts/gen-build-failure-report.sh ! .github/scripts/gen-test-results.sh Changeset: de441c2b Branch: hermetic-java-runtime Author: Kevin Walls Date: 2024-10-22 08:29:55 +0000 URL: https://git.openjdk.org/leyden/commit/de441c2b6891ad475f516d14b793efbe65f1477c 8342633: javax/management/security/HashedPasswordFileTest.java creates tmp file in src dir Reviewed-by: dfuchs, amenkov ! test/jdk/javax/management/security/HashedPasswordFileTest.java Changeset: 2da7f2bc Branch: hermetic-java-runtime Author: Christian Hagedorn Date: 2024-10-22 08:34:46 +0000 URL: https://git.openjdk.org/leyden/commit/2da7f2bcb066184831207ee8c1317094c9891b8a 8342787: Move misplaced TestTemplateAssertionPredicateWithTwoUCTs.java from src to test directory Reviewed-by: thartmann, shade, jwaters = test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateWithTwoUCTs.java Changeset: c9f38409 Branch: hermetic-java-runtime Author: Aggelos Biboudis Date: 2024-10-22 09:39:04 +0000 URL: https://git.openjdk.org/leyden/commit/c9f38409ccb84f315fa61490baacea9f070b646d 8342679: Clean up PreviewFeature.Feature Reviewed-by: liach, vromero ! src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java Changeset: 004aaea7 Branch: hermetic-java-runtime Author: Roland Westrelin Date: 2024-10-22 11:19:21 +0000 URL: https://git.openjdk.org/leyden/commit/004aaea76db091569aa88eeb6b08db3408f288cd 8342330: C2: "node pinned on loop exit test?" assert failure Reviewed-by: chagedorn, thartmann ! src/hotspot/share/opto/loopopts.cpp + test/hotspot/jtreg/compiler/rangechecks/TestSunkRangeFromPreLoopRCE.java Changeset: 3b71657f Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-22 12:27:44 +0000 URL: https://git.openjdk.org/leyden/commit/3b71657f5995482d26c36209f72650fbf672a965 8341584: Test java/foreign/TestUpcallStress.java intermittent timeout with -Xcomp Reviewed-by: jpai, jvernee ! test/jdk/ProblemList-Xcomp.txt ! test/jdk/java/foreign/TestUpcallStress.java Changeset: f70ecc27 Branch: hermetic-java-runtime Author: Ivan Walulya Date: 2024-10-22 13:13:04 +0000 URL: https://git.openjdk.org/leyden/commit/f70ecc27a787a96795452c11262fe427ad03f96a 8342182: G1: G1OldGenAllocationTracker does not account for direct allocations in regions Reviewed-by: tschatzl, sjohanss ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1IHOPControl.cpp ! src/hotspot/share/gc/g1/g1OldGenAllocationTracker.hpp Changeset: 264d7014 Branch: hermetic-java-runtime Author: Stefan Karlsson Date: 2024-10-22 13:15:17 +0000 URL: https://git.openjdk.org/leyden/commit/264d7014a11b113d309dde2301ea23d6eba71f57 8342610: ZGC: Cleanup pre-touching code Reviewed-by: aboldtch, mli, jsikstro, eosterlund ! src/hotspot/share/gc/z/zPageAllocator.cpp ! src/hotspot/share/gc/z/zPhysicalMemory.cpp ! src/hotspot/share/gc/z/zPhysicalMemory.hpp Changeset: 3bba0f3d Branch: hermetic-java-runtime Author: Martin Doerr Date: 2024-10-22 13:16:27 +0000 URL: https://git.openjdk.org/leyden/commit/3bba0f3dc8faf83a3aadcd704ae2ae4967e6daa4 8342701: [PPC64] TestOSRLotsOfLocals.java crashes Reviewed-by: lucy, rrich ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp Changeset: d10eecf1 Branch: hermetic-java-runtime Author: Claes Redestad Date: 2024-10-22 13:51:42 +0000 URL: https://git.openjdk.org/leyden/commit/d10eecf1619903fadea7eca9afd6bb154831ae50 8341776: Remove unused enum values from LambdaForm$Kind Reviewed-by: liach ! src/java.base/share/classes/java/lang/invoke/LambdaForm.java Changeset: 01b681c8 Branch: hermetic-java-runtime Author: Michael McMahon Date: 2024-10-22 14:09:10 +0000 URL: https://git.openjdk.org/leyden/commit/01b681c80d5f7c76013ab6274b9f4a3dcf2f4c39 8326949: Authorization header is removed when a proxy Authenticator is set on HttpClient Reviewed-by: dfuchs, jpai, djelinski ! src/java.net.http/share/classes/java/net/http/HttpClient.java ! src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java ! src/java.net.http/share/classes/jdk/internal/net/http/Http1Request.java ! src/java.net.http/share/classes/jdk/internal/net/http/HttpConnection.java ! src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java ! src/java.net.http/share/classes/jdk/internal/net/http/Stream.java ! src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java - test/jdk/java/net/httpclient/AuthFilter.java + test/jdk/java/net/httpclient/UserAuthWithAuthenticator.java Changeset: af5e5324 Branch: hermetic-java-runtime Author: Claes Redestad Date: 2024-10-22 14:29:52 +0000 URL: https://git.openjdk.org/leyden/commit/af5e53241b5f05ef56a437b66b2ad8c5eea5462c 8342806: Desugar capturing lambda in StringNameTable Reviewed-by: mcimadamore, liach ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/StringNameTable.java + test/micro/org/openjdk/bench/javax/tools/JavacNameTable.java Changeset: f9852aea Branch: hermetic-java-runtime Author: Claes Redestad Date: 2024-10-22 15:31:11 +0000 URL: https://git.openjdk.org/leyden/commit/f9852aea8b45853544b7acd45ba21b10ab20a1ad 8342839: Malformed copyright in StringNameTable since JDK-8342806 Reviewed-by: thartmann ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/StringNameTable.java Changeset: 893266c4 Branch: hermetic-java-runtime Author: Chad Rakoczy Date: 2024-10-22 16:11:37 +0000 URL: https://git.openjdk.org/leyden/commit/893266c48f26e089d0449d2c161b04430741970c 8342601: AArch64: Micro-optimize bit shift in copy_memory Reviewed-by: dlong, aph, shade ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp Changeset: aafc8d0d Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2024-10-22 17:09:37 +0000 URL: https://git.openjdk.org/leyden/commit/aafc8d0dcb769ac9000b7024c1ccb8fb165da0e2 8342850: Change ProblemList to have LimitDirectMemory refer to JDK-8342849 Reviewed-by: tschatzl ! test/jdk/ProblemList.txt Changeset: c61d2c5a Branch: hermetic-java-runtime Author: Justin Lu Date: 2024-10-22 17:21:38 +0000 URL: https://git.openjdk.org/leyden/commit/c61d2c5a3403ad5f48daad22bdfb031f42bc3dd5 8341445: DecimalFormatSymbols setters should throw NPE Reviewed-by: naoto ! src/java.base/share/classes/java/text/DecimalFormatSymbols.java + test/jdk/java/text/Format/DecimalFormat/SettersShouldThrowNPETest.java Changeset: 28147dab Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-22 17:58:20 +0000 URL: https://git.openjdk.org/leyden/commit/28147dab072b8f054f13350ea37ad64f7693b43d 8341913: Support CDS heap dumping for Shenandoah and Epsilon Reviewed-by: iklam, matsaave ! src/hotspot/share/cds/heapShared.hpp ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/IncompatibleOptions.java Changeset: d6eddcda Branch: hermetic-java-runtime Author: Mandy Chung Date: 2024-10-22 18:14:37 +0000 URL: https://git.openjdk.org/leyden/commit/d6eddcdaf92f2352266ba519608879141997cd63 8327624: Remove VM implementation that bypass verification for core reflection Reviewed-by: liach, dholmes, jrose, alanb, mli ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/modules.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/vmClassMacros.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/interpreter/linkResolver.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/reflection.cpp - src/java.base/share/classes/jdk/internal/reflect/AccessorGenerator.java - src/java.base/share/classes/jdk/internal/reflect/ByteVector.java - src/java.base/share/classes/jdk/internal/reflect/ByteVectorFactory.java - src/java.base/share/classes/jdk/internal/reflect/ByteVectorImpl.java - src/java.base/share/classes/jdk/internal/reflect/ClassDefiner.java - src/java.base/share/classes/jdk/internal/reflect/ClassFileAssembler.java - src/java.base/share/classes/jdk/internal/reflect/ClassFileConstants.java ! src/java.base/share/classes/jdk/internal/reflect/ConstructorAccessorImpl.java ! src/java.base/share/classes/jdk/internal/reflect/FieldAccessorImpl.java - src/java.base/share/classes/jdk/internal/reflect/Label.java - src/java.base/share/classes/jdk/internal/reflect/MagicAccessorImpl.java ! src/java.base/share/classes/jdk/internal/reflect/MethodAccessorImpl.java ! src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java - src/java.base/share/classes/jdk/internal/reflect/SerializationConstructorAccessorGenerator.java - src/java.base/share/classes/jdk/internal/reflect/SerializationConstructorAccessorImpl.java Changeset: 476d0f19 Branch: hermetic-java-runtime Author: Yasumasa Suenaga Date: 2024-10-23 02:05:28 +0000 URL: https://git.openjdk.org/leyden/commit/476d0f19286c9d3c66d211352d0a8946b7039baf 8339309: unused-variable warnings happen in libfontmanager Reviewed-by: prr ! src/java.desktop/share/native/libfontmanager/HBShaper_Panama.c ! src/java.desktop/share/native/libfontmanager/freetypeScaler.c ! src/java.desktop/unix/native/libfontmanager/X11FontScaler.c Changeset: f1f15370 Branch: hermetic-java-runtime Author: Manukumar V S Date: 2024-10-23 05:13:29 +0000 URL: https://git.openjdk.org/leyden/commit/f1f15370fa26e4c1121abadb8938c0126c6f4f24 8341453: java/awt/a11y/AccessibleJTableTest.java fails in some cases where the test tables are not visible Reviewed-by: abhiscxk, asemenov ! test/jdk/java/awt/a11y/AccessibleJTableTest.java Changeset: 018db8c1 Branch: hermetic-java-runtime Author: Christian Hagedorn Date: 2024-10-23 06:39:18 +0000 URL: https://git.openjdk.org/leyden/commit/018db8c16a826b4b6b5eec76163616a07289b55a 8342809: C2 hits "assert(is_If()) failed: invalid node class: Con" during IGVN due to unhandled top Reviewed-by: roland, thartmann ! src/hotspot/share/opto/predicates.cpp + test/hotspot/jtreg/compiler/predicates/TestTopIntoIfTrue.java Changeset: cdad7286 Branch: hermetic-java-runtime Author: SendaoYan Date: 2024-10-23 06:49:46 +0000 URL: https://git.openjdk.org/leyden/commit/cdad7286c6a099f5d0aa1f936e6201df9f3004cb 8342646: JTREG_TEST_THREAD_FACTORY in testing.md should be TEST_THREAD_FACTORY Reviewed-by: ihse, erikj ! doc/testing.html ! doc/testing.md ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage001.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage004.java Changeset: a1ef8188 Branch: hermetic-java-runtime Author: Hannes Walln?fer Date: 2024-10-23 06:54:31 +0000 URL: https://git.openjdk.org/leyden/commit/a1ef81889bb5b9563f9295f979aee00f387be75f 8342825: Fix order of @param tags in module java.desktop Reviewed-by: prr ! src/java.desktop/share/classes/java/awt/BorderLayout.java ! src/java.desktop/share/classes/java/awt/Graphics2D.java ! src/java.desktop/share/classes/java/awt/dnd/DragSource.java ! src/java.desktop/share/classes/java/awt/event/ActionEvent.java ! src/java.desktop/share/classes/java/awt/geom/AffineTransform.java ! src/java.desktop/share/classes/javax/imageio/metadata/IIOMetadataFormatImpl.java ! src/java.desktop/share/classes/javax/swing/GroupLayout.java ! src/java.desktop/share/classes/javax/swing/LayoutStyle.java ! src/java.desktop/share/classes/javax/swing/ProgressMonitorInputStream.java ! src/java.desktop/share/classes/javax/swing/text/PlainView.java ! src/java.desktop/share/classes/javax/swing/text/TableView.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java Changeset: 37cfaa8d Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2024-10-23 07:08:07 +0000 URL: https://git.openjdk.org/leyden/commit/37cfaa8deb4cc15864bb6dc2c8a87fc97cff2f0d 8338449: ubsan: division by zero in sharedRuntimeTrans.cpp Reviewed-by: lucy, kbarrett ! src/hotspot/share/runtime/sharedRuntimeTrans.cpp Changeset: 7131f053 Branch: hermetic-java-runtime Author: Christian Hagedorn Date: 2024-10-23 08:00:42 +0000 URL: https://git.openjdk.org/leyden/commit/7131f053b0d26b62cbf0d8376ec117d6e8d79f9e 8342043: Split Opaque4Node into OpaqueTemplateAssertionPredicateNode and OpaqueNotNullNode Reviewed-by: kvn, roland ! src/hotspot/share/opto/classes.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/loopPredicate.cpp ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/opaquenode.cpp ! src/hotspot/share/opto/opaquenode.hpp ! src/hotspot/share/opto/predicates.cpp ! src/hotspot/share/opto/predicates.hpp ! src/hotspot/share/opto/split_if.cpp Changeset: 964d8d22 Branch: hermetic-java-runtime Author: Sorna Sarathi Committer: Amit Kumar Date: 2024-10-23 12:40:27 +0000 URL: https://git.openjdk.org/leyden/commit/964d8d2234595afaf4dfe48ea5cacdbfd3792d03 8340445: [PPC64] Wrong ConditionRegister used in ppc64.ad: flagsRegCR0 cr1 Reviewed-by: mdoerr, amitkumar ! src/hotspot/cpu/ppc/ppc.ad Changeset: afb62f73 Branch: hermetic-java-runtime Author: Fredrik Bredberg Date: 2024-10-23 15:26:32 +0000 URL: https://git.openjdk.org/leyden/commit/afb62f73499c09f4a7bde6f522fcd3ef1278e526 8342683: Use non-short forward jump when passing stop() Reviewed-by: aboldtch, shade, kvn ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp Changeset: a522d216 Branch: hermetic-java-runtime Author: Erik Joelsson Date: 2024-10-23 17:27:17 +0000 URL: https://git.openjdk.org/leyden/commit/a522d216b5bebbf103e5a823f0bba22cf1508883 8342858: Make target mac-jdk-bundle fails on chmod command Reviewed-by: lucy, ihse ! make/common/FileUtils.gmk Changeset: 426da4bb Branch: hermetic-java-runtime Author: Naoto Sato Date: 2024-10-23 17:44:15 +0000 URL: https://git.openjdk.org/leyden/commit/426da4bbad3a3eac15e8b17026ebad52b7c568ea 8341975: Unable to set encoding for IO.println, IO.print and IO.readln Reviewed-by: rriggs, iris, alanb ! src/java.base/share/classes/java/io/Console.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/unix/native/libjava/Console_md.c ! src/java.base/windows/native/libjava/Console_md.c + test/jdk/java/io/Console/DefaultCharsetTest.java Changeset: e64f0798 Branch: hermetic-java-runtime Author: Naoto Sato Date: 2024-10-23 17:44:31 +0000 URL: https://git.openjdk.org/leyden/commit/e64f0798be64d334b3ec2a918687aafc2031a8b7 8342582: user.region for formatting number no longer works for 21.0.5 Reviewed-by: jlu, rriggs ! src/java.base/share/classes/java/util/Locale.java ! src/java.base/share/classes/jdk/internal/util/StaticProperty.java + test/jdk/java/util/Locale/UserRegionTest.java Changeset: a21c5586 Branch: hermetic-java-runtime Author: Joe Darcy Date: 2024-10-23 18:23:50 +0000 URL: https://git.openjdk.org/leyden/commit/a21c558699646d44d071945c82203e2d68a4dcc3 8342863: Use pattern matching for instanceof in equals methods of wrapper classes Reviewed-by: rriggs ! src/java.base/share/classes/java/lang/Boolean.java ! src/java.base/share/classes/java/lang/Byte.java ! src/java.base/share/classes/java/lang/Character.java ! src/java.base/share/classes/java/lang/Double.java ! src/java.base/share/classes/java/lang/Float.java ! src/java.base/share/classes/java/lang/Integer.java ! src/java.base/share/classes/java/lang/Long.java ! src/java.base/share/classes/java/lang/Short.java Changeset: 002de860 Branch: hermetic-java-runtime Author: Chris Plummer Date: 2024-10-23 18:26:30 +0000 URL: https://git.openjdk.org/leyden/commit/002de860813ff6bac8c6392f8c10d1c30fc5c09c 8342673: Test serviceability/jvmti/events/NotifyFramePopStressTest/NotifyFramePopStressTest.java failed: waited too long for notify Reviewed-by: amenkov, lmesnik, sspitsyn ! test/hotspot/jtreg/serviceability/jvmti/events/NotifyFramePopStressTest/NotifyFramePopStressTest.java Changeset: de92fe37 Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2024-10-23 18:53:30 +0000 URL: https://git.openjdk.org/leyden/commit/de92fe375771315452fc5318abfd228fdd31c454 8233451: (fs) Files.newInputStream() cannot be used with character special files Reviewed-by: alanb ! src/java.base/share/classes/sun/nio/ch/ChannelInputStream.java ! src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java ! src/java.base/share/classes/sun/nio/ch/FileDispatcher.java ! src/java.base/unix/classes/sun/nio/ch/UnixFileDispatcherImpl.java ! src/java.base/unix/native/libnio/ch/UnixFileDispatcherImpl.c ! src/java.base/windows/classes/sun/nio/ch/FileDispatcherImpl.java ! src/java.base/windows/native/libnio/ch/FileDispatcherImpl.c ! test/jdk/java/nio/file/Files/InputStreamTest.java Changeset: 9a7a850e Branch: hermetic-java-runtime Author: Alexander Matveev Date: 2024-10-23 19:43:24 +0000 URL: https://git.openjdk.org/leyden/commit/9a7a850e2892990cf6755a0ccb19711816ad1b51 8341939: SigningOptionsTest fails without Xcode with command line developer tools after JDK-8341443 Reviewed-by: asemenyuk ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppBundler.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources.properties ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_de.properties ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_ja.properties ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_zh_CN.properties ! test/jdk/tools/jpackage/macosx/SigningOptionsTest.java ! test/jdk/tools/jpackage/macosx/base/SigningCheck.java Changeset: 98403b75 Branch: hermetic-java-runtime Author: Doug Simon Date: 2024-10-23 20:01:14 +0000 URL: https://git.openjdk.org/leyden/commit/98403b75df0a0737bdf082231f38c5c0019fe4c9 8342854: [JVMCI] Block secondary thread reporting a JVMCI fatal error Reviewed-by: never ! src/hotspot/share/jvmci/jvmci.cpp ! src/hotspot/share/jvmci/jvmci.hpp Changeset: 28d23ada Branch: hermetic-java-runtime Author: David Holmes Date: 2024-10-23 21:39:26 +0000 URL: https://git.openjdk.org/leyden/commit/28d23ada6dde007ed60b8538cc159afc62d76db3 8340177: Malformed system classes loaded by bootloader crash the JVM in product builds Reviewed-by: coleenp, mli ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classFileParser.hpp Changeset: 158b93d1 Branch: hermetic-java-runtime Author: Henry Jen Date: 2024-10-24 00:07:43 +0000 URL: https://git.openjdk.org/leyden/commit/158b93d19a518d2b9d3d185e2d4c4dbff9c82aab 8335912: Add an operation mode to the jar command when extracting to not overwriting existing files Reviewed-by: lancea ! src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java ! src/jdk.jartool/share/classes/sun/tools/jar/Main.java ! src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties + test/jdk/tools/jar/ExtractFilesTest.java + test/jdk/tools/jar/MultipleManifestTest.java Changeset: 25c2f48d Branch: hermetic-java-runtime Author: Chen Liang Date: 2024-10-24 02:40:08 +0000 URL: https://git.openjdk.org/leyden/commit/25c2f48d458bfd92423c311a887679ad3e1e4041 8338544: Dedicated Array class descriptor implementation Reviewed-by: redestad, mchung, jvernee ! src/java.base/share/classes/java/lang/constant/ClassDesc.java ! src/java.base/share/classes/java/lang/constant/ConstantDescs.java ! src/java.base/share/classes/java/lang/invoke/ClassSpecializer.java ! src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java ! src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java ! src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java ! src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java ! src/java.base/share/classes/java/lang/invoke/TypeConvertingMethodAdapter.java ! src/java.base/share/classes/java/lang/reflect/ProxyGenerator.java ! src/java.base/share/classes/java/lang/runtime/SwitchBootstraps.java ! src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java + src/java.base/share/classes/jdk/internal/constant/ArrayClassDescImpl.java + src/java.base/share/classes/jdk/internal/constant/ClassOrInterfaceDescImpl.java ! src/java.base/share/classes/jdk/internal/constant/ConstantUtils.java ! src/java.base/share/classes/jdk/internal/constant/MethodTypeDescImpl.java ! src/java.base/share/classes/jdk/internal/constant/PrimitiveClassDescImpl.java - src/java.base/share/classes/jdk/internal/constant/ReferenceClassDescImpl.java ! test/jdk/java/lang/constant/ClassDescTest.java Changeset: f7a61fce Branch: hermetic-java-runtime Author: David Holmes Date: 2024-10-24 05:03:39 +0000 URL: https://git.openjdk.org/leyden/commit/f7a61fce949ea2d15ec09d295c643d0c2eabea1e 8342931: ProblemList failing tests from JDK-8335912 Reviewed-by: henryjen, mikael ! test/jdk/ProblemList.txt Changeset: e96b4cf0 Branch: hermetic-java-runtime Author: Emanuel Peter Date: 2024-10-24 05:45:35 +0000 URL: https://git.openjdk.org/leyden/commit/e96b4cf0a81914c6a615bb4f62ea3f139a4737f3 8342387: C2 SuperWord: refactor and improve compiler/loopopts/superword/TestDependencyOffsets.java Reviewed-by: thartmann, chagedorn ! test/hotspot/jtreg/compiler/loopopts/superword/TestDependencyOffsets.java Changeset: f0b130e5 Branch: hermetic-java-runtime Author: Jan Lahoda Date: 2024-10-24 06:45:16 +0000 URL: https://git.openjdk.org/leyden/commit/f0b130e54f33d3190640ce33c991e35f27e9f812 8339296: Record deconstruction pattern in switch fails to compile Reviewed-by: vromero, mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeTag.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! test/langtools/tools/javac/patterns/Switches.java + test/langtools/tools/javac/types/UnknownTypeTest.java Changeset: 2c31c8ee Branch: hermetic-java-runtime Author: Fredrik Bredberg Date: 2024-10-24 09:51:24 +0000 URL: https://git.openjdk.org/leyden/commit/2c31c8eeb42188ad6fd15eca50db4342cd791fb2 8339730: Windows regression after removing ObjectMonitor Responsible Reviewed-by: coleenp, jwaters ! src/hotspot/os/windows/os_windows.cpp Changeset: 85774b71 Branch: hermetic-java-runtime Author: Fei Yang Date: 2024-10-24 11:22:01 +0000 URL: https://git.openjdk.org/leyden/commit/85774b713edf8782f162ac25b61ce99a77e116f4 8342882: RISC-V: Unify handling of jumps to runtime Reviewed-by: rehn ! src/hotspot/cpu/riscv/gc/z/zBarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp ! src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp ! src/hotspot/cpu/riscv/templateTable_riscv.cpp Changeset: b0ac633b Branch: hermetic-java-runtime Author: Daniel Fuchs Date: 2024-10-24 12:24:14 +0000 URL: https://git.openjdk.org/leyden/commit/b0ac633b2d0076d64b463b2a6ce19abf6b12c50f 8342075: HttpClient: improve HTTP/2 flow control checks Reviewed-by: jpai ! src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java ! src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java ! src/java.net.http/share/classes/jdk/internal/net/http/Stream.java ! src/java.net.http/share/classes/jdk/internal/net/http/WindowUpdateSender.java ! src/java.net.http/share/classes/jdk/internal/net/http/frame/FramesDecoder.java ! src/java.net.http/share/classes/jdk/internal/net/http/frame/SettingsFrame.java ! src/java.net.http/share/classes/module-info.java ! test/jdk/java/net/httpclient/GZIPInputStreamTest.java ! test/jdk/java/net/httpclient/ProxySelectorTest.java + test/jdk/java/net/httpclient/http2/ConnectionFlowControlTest.java + test/jdk/java/net/httpclient/http2/StreamFlowControlTest.java ! test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/BodyOutputStream.java ! test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/Http2TestServerConnection.java Changeset: 3c14c2ba Branch: hermetic-java-runtime Author: Markus KARG Committer: Chen Liang Date: 2024-10-24 14:34:58 +0000 URL: https://git.openjdk.org/leyden/commit/3c14c2babbdfb46a77636ed80e083ef2f8be2b45 8341566: Add Reader.of(CharSequence) Reviewed-by: rriggs, jpai, liach, alanb ! src/java.base/share/classes/java/io/Reader.java ! src/java.base/share/classes/java/io/StringReader.java + test/jdk/java/io/Reader/Of.java Changeset: d8c3b0f8 Branch: hermetic-java-runtime Author: hanklo6 Committer: Sandhya Viswanathan Date: 2024-10-24 16:01:31 +0000 URL: https://git.openjdk.org/leyden/commit/d8c3b0f834c603fe115ef4ca442727948b7a834e 8342768: GTest AssemblerX86.validate_vm failed: assert(VM_Version::supports_bmi1()) failed: tzcnt instruction not supported Reviewed-by: sviswanathan, thartmann, kvn ! src/hotspot/cpu/x86/vm_version_x86.hpp ! test/hotspot/gtest/x86/test_assemblerx86.cpp Changeset: 7d5eefa5 Branch: hermetic-java-runtime Author: hanklo6 Committer: Sandhya Viswanathan Date: 2024-10-24 16:02:30 +0000 URL: https://git.openjdk.org/leyden/commit/7d5eefa50673d6f7c5bd916f63271cf7898d6dee 8342862: Gtest added by 8339507 appears to be causing 8GB build machines to hang Reviewed-by: kvn, sviswanathan ! test/hotspot/gtest/x86/asmtest.out.h ! test/hotspot/gtest/x86/test_assemblerx86.cpp ! test/hotspot/gtest/x86/x86-asmtest.py Changeset: 7af46a6b Branch: hermetic-java-runtime Author: Justin Lu Date: 2024-10-24 16:17:43 +0000 URL: https://git.openjdk.org/leyden/commit/7af46a6b424cadfe298958d774da0f21db58ecd3 8340554: Improve MessageFormat readObject checks Reviewed-by: naoto ! src/java.base/share/classes/java/text/MessageFormat.java ! test/jdk/java/text/Format/MessageFormat/SerializationTest.java Changeset: d1540e2a Branch: hermetic-java-runtime Author: Vicente Romero Date: 2024-10-24 17:25:43 +0000 URL: https://git.openjdk.org/leyden/commit/d1540e2a49c7a41eb771fc9896c367187d070dec 8342090: Infer::IncorporationBinaryOp::equals can produce side-effects 8288590: javac failure: incompatible types: cannot infer type arguments due to Object.hashCode collision Co-authored-by: Maurizio Cimadamore Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java + test/langtools/tools/javac/inference_non_determinism/NonDeterminismTest.java Changeset: ca1700b8 Branch: hermetic-java-runtime Author: Mark Powers Date: 2024-10-24 23:09:45 +0000 URL: https://git.openjdk.org/leyden/commit/ca1700b8bf3b7b34616c469837748ac4c3607dfc 8336665: CCE in X509CRLImpl$TBSCertList.getCertIssuer Reviewed-by: mullan ! src/java.base/share/classes/sun/security/x509/X509CRLImpl.java + test/jdk/sun/security/x509/X509CRLImpl/UnexpectedCCE.java Changeset: c5489866 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2024-10-25 06:14:10 +0000 URL: https://git.openjdk.org/leyden/commit/c5489866308bd09729c5431537e0836145452624 8342918: Building ParallelGC without G1 and Shenandoah fails because SpaceMangler not declared Reviewed-by: jwaters, shade ! src/hotspot/share/gc/parallel/mutableSpace.cpp ! src/hotspot/share/gc/parallel/psOldGen.cpp ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psScavenge.cpp ! src/hotspot/share/gc/parallel/psYoungGen.cpp Changeset: 415d8151 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2024-10-25 07:03:09 +0000 URL: https://git.openjdk.org/leyden/commit/415d8151a6c7ce04d8ab27ff641acb5d69840125 8342938: Problem list java/io/IO/IO.java test on Linux ppc64le Reviewed-by: lucy, naoto ! test/jdk/ProblemList.txt Changeset: fd5ff054 Branch: hermetic-java-runtime Author: Hannes Walln?fer Date: 2024-10-25 07:08:29 +0000 URL: https://git.openjdk.org/leyden/commit/fd5ff0547ced6733ae05f1428664062615408dc9 8342827: Fix order of @param tags in other modules Reviewed-by: jpai, iris, joehw, darcy, dfuchs ! src/java.compiler/share/classes/javax/lang/model/util/Elements.java ! src/java.management/share/classes/javax/management/AttributeList.java ! src/java.management/share/classes/javax/management/DefaultLoaderRepository.java ! src/java.management/share/classes/javax/management/MBeanConstructorInfo.java ! src/java.management/share/classes/javax/management/MBeanOperationInfo.java ! src/java.management/share/classes/javax/management/MBeanServer.java ! src/java.management/share/classes/javax/management/MBeanServerConnection.java ! src/java.management/share/classes/javax/management/loading/ClassLoaderRepository.java ! src/java.management/share/classes/javax/management/loading/DefaultLoaderRepository.java ! src/java.management/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java ! src/java.naming/share/classes/javax/naming/CompositeName.java ! src/java.naming/share/classes/javax/naming/CompoundName.java ! src/java.naming/share/classes/javax/naming/Name.java ! src/java.naming/share/classes/javax/naming/Reference.java ! src/java.naming/share/classes/javax/naming/directory/SearchControls.java ! src/java.naming/share/classes/javax/naming/ldap/LdapName.java ! src/java.naming/share/classes/javax/naming/ldap/LdapReferralException.java ! src/java.scripting/share/classes/javax/script/Invocable.java ! src/java.sql.rowset/share/classes/javax/sql/rowset/CachedRowSet.java ! src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java ! src/java.xml/share/classes/javax/xml/stream/XMLStreamException.java ! src/java.xml/share/classes/javax/xml/stream/XMLStreamWriter.java ! src/java.xml/share/classes/javax/xml/transform/TransformerConfigurationException.java ! src/java.xml/share/classes/javax/xml/validation/SchemaFactoryConfigurationError.java ! src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java ! src/jdk.jdi/share/classes/com/sun/jdi/ArrayReference.java ! src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequestManager.java ! src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpMultiChannel.java Changeset: 4635351b Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2024-10-25 07:16:52 +0000 URL: https://git.openjdk.org/leyden/commit/4635351b1570fcea07fac1ece5f76f528d68c2a7 8342939: Building ZGC without compiler2 fails Reviewed-by: eosterlund, mli, kvn ! src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp Changeset: 3c5db12b Branch: hermetic-java-runtime Author: Stefan Karlsson Date: 2024-10-25 07:26:21 +0000 URL: https://git.openjdk.org/leyden/commit/3c5db12bbe4d1155ab874c2862005621c6b8541d 8342857: SA: Heap iterator makes incorrect assumptions about TLAB layout Reviewed-by: cjplummer, rkennke, lmesnik ! src/hotspot/share/gc/shared/vmStructs_gc.hpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ThreadLocalAllocBuffer.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java Changeset: 94317dbc Branch: hermetic-java-runtime Author: Hamlin Li Date: 2024-10-25 07:48:48 +0000 URL: https://git.openjdk.org/leyden/commit/94317dbcf26a54428c649ad0286e127bd6dab570 8342884: RISC-V: verify float <--> float16 conversion Reviewed-by: fyang, luhenry ! src/hotspot/cpu/riscv/globals_riscv.hpp ! src/hotspot/os_cpu/linux_riscv/riscv_hwprobe.cpp Changeset: a9eb50a2 Branch: hermetic-java-runtime Author: Fei Yang Date: 2024-10-25 11:23:12 +0000 URL: https://git.openjdk.org/leyden/commit/a9eb50a2d8341b454c55c2f56446775c497ddde9 8342953: RISC-V: Fix definition of RISCV_HWPROBE_EXT_ZVFHMIN Reviewed-by: mli, rehn ! src/hotspot/os_cpu/linux_riscv/riscv_hwprobe.cpp Changeset: 4f8f395e Branch: hermetic-java-runtime Author: Hamlin Li Date: 2024-10-25 14:28:01 +0000 URL: https://git.openjdk.org/leyden/commit/4f8f395e2bb692148e2b891198f28a579749dd6d 8343060: RISC-V: enable TestFloat16VectorConvChain for riscv Reviewed-by: fyang ! test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorConvChain.java Changeset: 1e35da8d Branch: hermetic-java-runtime Author: Hamlin Li Date: 2024-10-25 14:28:23 +0000 URL: https://git.openjdk.org/leyden/commit/1e35da8d3341ed1af266e5b59aa90bfcfae6576a 8343063: RISC-V: remove redundant reg copy in generate_resolve_blob Reviewed-by: fyang, rehn ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp Changeset: 5cbd578f Branch: hermetic-java-runtime Author: Henry Jen Date: 2024-10-25 14:35:11 +0000 URL: https://git.openjdk.org/leyden/commit/5cbd578fbe9df4f68ab21bf764208ad4f67443f6 8342930: New tests from JDK-8335912 are failing Reviewed-by: jpai ! src/jdk.jartool/share/man/jar.1 ! test/jdk/ProblemList.txt ! test/jdk/tools/jar/ExtractFilesTest.java ! test/jdk/tools/jar/MultipleManifestTest.java Changeset: c202a2f7 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2024-10-25 15:24:55 +0000 URL: https://git.openjdk.org/leyden/commit/c202a2f7b231152136bd8960c55e43bc96cf1eb9 8295269: G1: Improve slow startup due to predictor initialization Reviewed-by: iwalulya, sjohanss ! src/hotspot/share/gc/g1/g1AnalyticsSequences.hpp ! src/hotspot/share/gc/g1/g1AnalyticsSequences.inline.hpp Changeset: 0853aee3 Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2024-10-25 15:35:49 +0000 URL: https://git.openjdk.org/leyden/commit/0853aee3b377cf9f17340a85f600651db42e6999 8338426: Test java/nio/channels/Selector/WakeupNow.java failed Reviewed-by: jpai, alanb ! test/jdk/java/nio/channels/Selector/WakeupNow.java Changeset: ff165f9f Branch: hermetic-java-runtime Author: Joe Darcy Date: 2024-10-25 16:49:11 +0000 URL: https://git.openjdk.org/leyden/commit/ff165f9f0cf519144d7361b766bcce53d04c518e 8342934: TYPE_USE annotations printed with error causing "," in toString output Reviewed-by: iris, vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java ! test/langtools/tools/javac/processing/model/type/AnnotatedTypeToString/AnnotatedTypeToString.java ! test/langtools/tools/javac/processing/model/type/AnnotatedTypeToString/Test.java Changeset: 36d71735 Branch: hermetic-java-runtime Author: Alex Menkov Date: 2024-10-25 18:08:21 +0000 URL: https://git.openjdk.org/leyden/commit/36d71735e3554264e8d17f7e0e72999ac639e398 8339289: Enhance Attach API to support arbitrary length arguments - Windows Reviewed-by: kevinw, sspitsyn ! src/hotspot/os/windows/attachListener_windows.cpp ! src/hotspot/share/services/attachListener.cpp ! src/hotspot/share/services/attachListener.hpp ! src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java ! src/jdk.attach/windows/classes/sun/tools/attach/VirtualMachineImpl.java ! src/jdk.attach/windows/native/libattach/VirtualMachineImpl.c + test/hotspot/jtreg/serviceability/attach/AttachAPIv2/CompatTest.java Changeset: f1cc890d Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2024-10-25 19:17:42 +0000 URL: https://git.openjdk.org/leyden/commit/f1cc890ddfe2e472cf786856dc7d01645f61b054 8343086: [BACKOUT] JDK-8295269 G1: Improve slow startup due to predictor initialization Reviewed-by: sangheki ! src/hotspot/share/gc/g1/g1AnalyticsSequences.hpp ! src/hotspot/share/gc/g1/g1AnalyticsSequences.inline.hpp Changeset: f1a9a8d2 Branch: hermetic-java-runtime Author: Maurizio Cimadamore Date: 2024-10-25 21:07:48 +0000 URL: https://git.openjdk.org/leyden/commit/f1a9a8d25b2e1f9b5dbe8719abb66ec4cd9057dc 8342902: Deduplication of acquire calls in BindingSpecializer causes escape-analyisis failure Reviewed-by: jvernee ! src/java.base/share/classes/jdk/internal/foreign/abi/BindingSpecializer.java + test/micro/org/openjdk/bench/java/lang/foreign/CallByRefHighArity.java + test/micro/org/openjdk/bench/java/lang/foreign/libCallByRefHighArity.c Changeset: 1476f6c4 Branch: hermetic-java-runtime Author: Fei Yang Date: 2024-10-26 03:32:30 +0000 URL: https://git.openjdk.org/leyden/commit/1476f6c47511ad9dceda3633776ace3ee353d7ed 8343030: RISC-V: Small assembler cleanups Reviewed-by: mli, rehn ! src/hotspot/cpu/riscv/c1_CodeStubs_riscv.cpp ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c2_CodeStubs_riscv.cpp ! src/hotspot/cpu/riscv/interp_masm_riscv.cpp ! src/hotspot/cpu/riscv/jniFastGetField_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/templateTable_riscv.cpp Changeset: 873f8a69 Branch: hermetic-java-runtime Author: Jonathan Gibbons Committer: Hannes Walln?fer Date: 2024-10-26 06:57:45 +0000 URL: https://git.openjdk.org/leyden/commit/873f8a696fa45c7d94a164be20cf3c797ce7f2a6 8305406: Add @spec tags in java.base/java.* (part 2) Co-authored-by: Daniel Jeli?ski Co-authored-by: Hannes Walln?fer Reviewed-by: valeriep ! src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrap.java ! src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrapPadded.java ! src/java.base/share/classes/com/sun/crypto/provider/KWUtil.java ! src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java ! src/java.base/share/classes/java/security/DrbgParameters.java ! src/java.base/share/classes/java/security/Key.java ! src/java.base/share/classes/java/security/KeyRep.java ! src/java.base/share/classes/java/security/SecureRandom.java ! src/java.base/share/classes/java/security/Security.java ! src/java.base/share/classes/java/security/cert/CRL.java ! src/java.base/share/classes/java/security/cert/CRLReason.java ! src/java.base/share/classes/java/security/cert/PKIXRevocationChecker.java ! src/java.base/share/classes/java/security/cert/TrustAnchor.java ! src/java.base/share/classes/java/security/cert/X509CRL.java ! src/java.base/share/classes/java/security/cert/X509CRLSelector.java ! src/java.base/share/classes/java/security/cert/X509CertSelector.java ! src/java.base/share/classes/java/security/cert/X509Certificate.java ! src/java.base/share/classes/java/security/cert/package-info.java ! src/java.base/share/classes/java/security/interfaces/EdECKey.java ! src/java.base/share/classes/java/security/interfaces/EdECPrivateKey.java ! src/java.base/share/classes/java/security/interfaces/EdECPublicKey.java ! src/java.base/share/classes/java/security/interfaces/RSAKey.java ! src/java.base/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java ! src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java ! src/java.base/share/classes/java/security/package-info.java ! src/java.base/share/classes/java/security/spec/DSAGenParameterSpec.java ! src/java.base/share/classes/java/security/spec/EdDSAParameterSpec.java ! src/java.base/share/classes/java/security/spec/EdECPoint.java ! src/java.base/share/classes/java/security/spec/EdECPrivateKeySpec.java ! src/java.base/share/classes/java/security/spec/EdECPublicKeySpec.java ! src/java.base/share/classes/java/security/spec/MGF1ParameterSpec.java ! src/java.base/share/classes/java/security/spec/PSSParameterSpec.java ! src/java.base/share/classes/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java ! src/java.base/share/classes/java/security/spec/RSAOtherPrimeInfo.java ! src/java.base/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java ! src/java.base/share/classes/javax/crypto/Cipher.java ! src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java ! src/java.base/share/classes/javax/crypto/package-info.java ! src/java.base/share/classes/javax/crypto/spec/ChaCha20ParameterSpec.java ! src/java.base/share/classes/javax/crypto/spec/GCMParameterSpec.java ! src/java.base/share/classes/javax/crypto/spec/OAEPParameterSpec.java ! src/java.base/share/classes/javax/crypto/spec/PBEKeySpec.java ! src/java.base/share/classes/javax/crypto/spec/PBEParameterSpec.java ! src/java.base/share/classes/javax/crypto/spec/PSource.java ! src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java ! src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java ! src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java ! src/java.base/share/classes/javax/net/ssl/ExtendedSSLSession.java ! src/java.base/share/classes/javax/net/ssl/SNIHostName.java ! src/java.base/share/classes/javax/net/ssl/SNIServerName.java ! src/java.base/share/classes/javax/net/ssl/SSLEngine.java ! src/java.base/share/classes/javax/net/ssl/SSLParameters.java ! src/java.base/share/classes/javax/net/ssl/SSLSocket.java ! src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java ! src/java.base/share/classes/javax/net/ssl/StandardConstants.java ! src/java.base/share/classes/javax/net/ssl/package-info.java ! src/java.base/share/classes/javax/security/auth/login/package-info.java ! src/java.base/share/classes/javax/security/auth/x500/X500Principal.java ! src/java.base/share/classes/javax/security/auth/x500/package-info.java Changeset: 9e451aa3 Branch: hermetic-java-runtime Author: Alexey Semenyuk Date: 2024-10-26 14:01:19 +0000 URL: https://git.openjdk.org/leyden/commit/9e451aa36586badc7be58804ae6f12e6b671445d 8343102: Remove `--compress` from jlink command lines from jpackage tests Reviewed-by: almatvee ! test/jdk/tools/jpackage/share/RuntimeImageTest.java ! test/jdk/tools/jpackage/share/RuntimePackageTest.java Changeset: 40e07a7e Branch: hermetic-java-runtime Author: Chen Liang Date: 2024-10-26 14:45:04 +0000 URL: https://git.openjdk.org/leyden/commit/40e07a7ea31d04722cda3e6d2fc988df50a7cdca 8342865: Use type parameter for Class::getPrimitiveClass Reviewed-by: darcy ! src/java.base/share/classes/java/lang/Boolean.java ! src/java.base/share/classes/java/lang/Byte.java ! src/java.base/share/classes/java/lang/Character.java ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/Double.java ! src/java.base/share/classes/java/lang/Float.java ! src/java.base/share/classes/java/lang/Integer.java ! src/java.base/share/classes/java/lang/Long.java ! src/java.base/share/classes/java/lang/Short.java ! src/java.base/share/classes/java/lang/Void.java Changeset: 762a573e Branch: hermetic-java-runtime Author: Chen Liang Date: 2024-10-26 14:45:19 +0000 URL: https://git.openjdk.org/leyden/commit/762a573ef1f4d800b98d3acfcc72c0b2792de69e 8335880: More troubleshooting tips around windows space in path Reviewed-by: erikj, ihse ! doc/building.html ! doc/building.md Changeset: 0e3fc93d Branch: hermetic-java-runtime Author: Andrey Turbanov Date: 2024-10-26 17:59:15 +0000 URL: https://git.openjdk.org/leyden/commit/0e3fc93dfb14378a848571a6b83282c0c73e690f 8342083: Make a few fields in FileSystemPreferences final Reviewed-by: jpai, bpb ! src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java Changeset: eb3669a5 Branch: hermetic-java-runtime Author: Fredrik Bredberg Date: 2024-10-28 09:02:54 +0000 URL: https://git.openjdk.org/leyden/commit/eb3669a5869d3066341e63dfb8792bd967663656 8340796: Use a consistent order when loading cxq and EntryList Reviewed-by: dholmes, coleenp, eosterlund ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp ! src/hotspot/cpu/s390/macroAssembler_s390.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/share/runtime/objectMonitor.cpp Changeset: ec061874 Branch: hermetic-java-runtime Author: Jonathan Lamp?rth Committer: Vicente Romero Date: 2024-10-28 09:42:03 +0000 URL: https://git.openjdk.org/leyden/commit/ec0618742ff6cfd6d83f1278e8d245673fb9ef2c 8034066: Incorrect alignment in the "Code" section for "-c -XDdetails" options Reviewed-by: jvernee, liach ! src/jdk.jdeps/share/classes/com/sun/tools/javap/ClassWriter.java ! src/jdk.jdeps/share/classes/com/sun/tools/javap/CodeWriter.java + test/langtools/tools/javap/ClassWriterCodeIndentTest.java Changeset: a5ad974b Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-28 12:11:51 +0000 URL: https://git.openjdk.org/leyden/commit/a5ad974bec932c63ddc647c9986a513ae32ef663 8343056: C2: Micro-optimize Node lists grow Reviewed-by: kvn, redestad ! src/hotspot/share/libadt/vectset.cpp ! src/hotspot/share/libadt/vectset.hpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp Changeset: d5fb6b4a Branch: hermetic-java-runtime Author: Yudi Zheng Date: 2024-10-28 12:39:04 +0000 URL: https://git.openjdk.org/leyden/commit/d5fb6b4a3cf4926acb333e7ee55f96fc76225631 8339939: [JVMCI] Don't compress abstract and interface Klasses Co-authored-by: Doug Simon Reviewed-by: dnsimon ! src/hotspot/share/jvmci/jvmciCodeInstaller.cpp ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/DirectHotSpotObjectConstantImpl.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCompressedNullConstant.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotConstant.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotObjectConstantImpl.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/IndirectHotSpotObjectConstantImpl.java Changeset: 120a9357 Branch: hermetic-java-runtime Author: Coleen Phillimore Date: 2024-10-28 13:48:23 +0000 URL: https://git.openjdk.org/leyden/commit/120a9357b3cf63427a6c8539128b69b11b9beca3 8342561: Metaspace for generated reflection classes is no longer needed Reviewed-by: shade, stuefe ! src/hotspot/share/memory/metaspace.hpp ! src/hotspot/share/memory/metaspace/metaspaceArenaGrowthPolicy.cpp ! src/hotspot/share/memory/metaspace/metaspaceReporter.cpp ! src/hotspot/share/prims/whitebox.cpp ! test/hotspot/gtest/metaspace/test_arenagrowthpolicy.cpp ! test/hotspot/gtest/metaspace/test_metaspacearena.cpp ! test/hotspot/gtest/metaspace/test_metaspacearena_stress.cpp Changeset: 9f6211bc Branch: hermetic-java-runtime Author: Matias Saavedra Silva Date: 2024-10-28 14:31:35 +0000 URL: https://git.openjdk.org/leyden/commit/9f6211bcf1b46e4bfba2d128d9eb8457bc0cde51 8341371: CDS cannot load archived heap objects with -XX:+UseSerialGC -XX:-UseCompressedOops Reviewed-by: ccheung, iklam ! src/hotspot/share/cds/archiveHeapLoader.cpp ! src/hotspot/share/cds/archiveHeapLoader.hpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/gc/epsilon/epsilonHeap.hpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp ! src/hotspot/share/gc/serial/serialHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/prims/whitebox.cpp ! test/hotspot/jtreg/runtime/cds/appcds/TestEpsilonGCWithCDS.java ! test/hotspot/jtreg/runtime/cds/appcds/TestParallelGCWithCDS.java ! test/hotspot/jtreg/runtime/cds/appcds/TestSerialGCWithCDS.java ! test/hotspot/jtreg/runtime/cds/appcds/TestShenandoahWithCDS.java Changeset: e659d9da Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2024-10-28 15:38:05 +0000 URL: https://git.openjdk.org/leyden/commit/e659d9da5d6198ad9c85efd6472e138a6a3961c2 8342975: C2: Micro-optimize PhaseIdealLoop::Dominators() Reviewed-by: dlong, kvn ! src/hotspot/share/opto/domgraph.cpp Changeset: 52382e28 Branch: hermetic-java-runtime Author: Jatin Bhateja Date: 2024-10-28 16:30:29 +0000 URL: https://git.openjdk.org/leyden/commit/52382e285fdf853c01605f8e0d7f3f5d34965802 8338021: Support new unsigned and saturating vector operators in VectorAPI Reviewed-by: psandoz, epeter, sviswanathan ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/adlc/formssel.cpp ! src/hotspot/share/opto/classes.hpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/opto/vectornode.cpp ! src/hotspot/share/opto/vectornode.hpp ! src/hotspot/share/prims/vectorSupport.cpp ! src/hotspot/share/prims/vectorSupport.hpp ! src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java + src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorMath.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template ! test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithImmTest.java ! test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithZeroTest.java ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/IntMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/LongMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java + test/jdk/jdk/incubator/vector/VectorMathTest.java ! test/jdk/jdk/incubator/vector/gen-template.sh = test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-Masked-op.template = test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-op.template + test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-Masked-op.template + test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-op.template ! test/jdk/jdk/incubator/vector/templates/Unit-header.template Changeset: 1341b813 Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2024-10-28 16:38:36 +0000 URL: https://git.openjdk.org/leyden/commit/1341b81321fe77005ba68fba19c7d83e3fcb5fde 8341666: FileInputStream doesn't support readAllBytes() or readNBytes(int) on pseudo devices Reviewed-by: alanb ! src/java.base/share/classes/java/io/FileInputStream.java ! src/java.base/share/native/libjava/FileInputStream.c ! src/java.base/unix/native/libjava/io_util_md.c ! src/java.base/unix/native/libjava/io_util_md.h ! src/java.base/windows/native/libjava/io_util_md.c ! src/java.base/windows/native/libjava/io_util_md.h + test/jdk/java/io/FileInputStream/PseudoDevice.java Changeset: 9f6d5b46 Branch: hermetic-java-runtime Author: David M. Lloyd Committer: Brian Burkhalter Date: 2024-10-28 16:58:44 +0000 URL: https://git.openjdk.org/leyden/commit/9f6d5b46ce2cfcdb39f94b8ac8621ee21f4e8740 8343020: (fs) Add support for SecureDirectoryStream on macOS Reviewed-by: bpb, alanb ! src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java ! src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c ! test/jdk/java/nio/file/DirectoryStream/SecureDS.java Changeset: 00fe9f7b Branch: hermetic-java-runtime Author: Alexey Semenyuk Date: 2024-10-28 17:22:38 +0000 URL: https://git.openjdk.org/leyden/commit/00fe9f7bdfd245791bca6b5b1b2d0a98d41af221 8343100: Consolidate EmptyFolderTest and EmptyFolderPackageTest jpackage tests into single java file Reviewed-by: almatvee ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java - test/jdk/tools/jpackage/share/EmptyFolderBase.java - test/jdk/tools/jpackage/share/EmptyFolderPackageTest.java ! test/jdk/tools/jpackage/share/EmptyFolderTest.java Changeset: a95374f5 Branch: hermetic-java-runtime Author: Alexey Semenyuk Date: 2024-10-28 17:24:01 +0000 URL: https://git.openjdk.org/leyden/commit/a95374f588149d80068275a496ba4aa04b3bb4fd 8343101: Rework BasicTest.testTemp test cases Reviewed-by: almatvee ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TestBuilder.java ! test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java Changeset: d2e716eb Branch: hermetic-java-runtime Author: Valerie Peng Date: 2024-10-28 18:06:42 +0000 URL: https://git.openjdk.org/leyden/commit/d2e716eb72ea603fce50f0757a766ec623ef2faf 8331958: Update PC/SC Lite for Suse Linux to 2.3.0 Reviewed-by: weijun ! src/java.smartcardio/unix/legal/pcsclite.md ! src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/pcsclite.h ! src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/winscard.h ! src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/wintypes.h Changeset: d49f2104 Branch: hermetic-java-runtime Author: Eirik Bj?rsn?s Date: 2024-10-28 18:21:18 +0000 URL: https://git.openjdk.org/leyden/commit/d49f21043b84ebcc8b9176de3a84621ca7bca8fb 8342040: Further improve entry lookup performance for multi-release JARs Co-authored-by: Claes Redestad Reviewed-by: redestad ! src/java.base/share/classes/java/util/jar/JarFile.java ! src/java.base/share/classes/java/util/zip/ZipFile.java ! src/java.base/share/classes/jdk/internal/access/JavaUtilZipFileAccess.java ! test/micro/org/openjdk/bench/java/util/jar/JarFileGetEntry.java Changeset: 3cfd92bf Branch: hermetic-java-runtime Author: Jiangli Zhou Date: 2024-10-28 11:31:42 +0000 URL: https://git.openjdk.org/leyden/commit/3cfd92bfcc6e54377fc2cd4004c926db6aa5e16e Merge branch 'master' into hermetic-java-runtime ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/java.base/share/classes/java/security/Security.java ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/java.base/share/classes/java/security/Security.java From duke at openjdk.org Thu Oct 31 16:52:32 2024 From: duke at openjdk.org (duke) Date: Thu, 31 Oct 2024 16:52:32 GMT Subject: git: openjdk/leyden: premain: Make TD::allocate() a template to reduce boilerplate Message-ID: <04e91cc6-1101-4152-a532-2053c07f169f@openjdk.org> Changeset: 21640b10 Branch: premain Author: Igor Veresov Date: 2024-10-31 09:48:57 +0000 URL: https://git.openjdk.org/leyden/commit/21640b10188c8bfb414505043110d6da15080d16 Make TD::allocate() a template to reduce boilerplate ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/oops/trainingData.hpp