From david.holmes at oracle.com Mon Jun 2 02:55:36 2025 From: david.holmes at oracle.com (David Holmes) Date: Mon, 2 Jun 2025 12:55:36 +1000 Subject: Questions about the Hermetic Java project In-Reply-To: References: <6a9afe3f-e232-4636-8a2e-6112a6e68cce@oracle.com> <30fbc8de-74f9-483e-a1f4-7ab2f1f26fbd@oracle.com> <105e5e22-cc87-48a0-978c-f2e472277843@oracle.com> <8d5075b2-fcbf-4be2-8510-9619b33aee87@oracle.com> Message-ID: <472b8b8a-53ce-4e43-ab20-8b3b7f71fd9d@oracle.com> On 31/05/2025 7:20 am, Jiangli Zhou wrote: > On Thu, May 29, 2025 at 11:54?PM David Holmes wrote: >> >> On 30/05/2025 9:26 am, Jiangli Zhou wrote: >>> >>> I just thought of one more thing related to the discussion now. Any >>> concern if the implementation does not ignore JNI_OnLoad_L and etc if >>> they are defined application's dynamically linked native libraries? Or >>> that's unspecified behavior and it's up to the implement to decide? >> >> For Internal libraries or external? For external you have to follow the >> spec - if both methods exist you only want to execute one of them. > > It's for the external (non-JDK) library that I'm a bit more cautious. > > In the existing code in JDK mainline, > https://github.com/openjdk/jdk/blob/3cc630985d47be6ba4cf991698e999f17dbde203/src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java#L117, > loadLibrary() first tries to find the built-in library using > JNI_OnLoad_L symbol (L is the library name). When dlsym is called to > find the symbol from the main process, any of the already loaded > shared libraries are also searched, as described by the dlsym man page > (included related part below). > > https://man7.org/linux/man-pages/man3/dlsym.3.html: > RTLD_DEFAULT > Find the first occurrence of the desired symbol using the > default shared object search order. The search will > include global symbols in the executable and its > dependencies, as well as symbols in shared objects that > were dynamically loaded with the RTLD_GLOBAL flag. > > I think it would be rare, it is possible to construct such case: > > There are user JNI libraries A and B, with B is built as a dependency > of A. A defines JNI_OnLoad_A and JNI_OnLoad. B defines JNI_OnLoad_B > and JNI_OnLoad. When A is being loaded using loadLibrary(), > loadLibrary() tries first to lookup JNI_OnLoad_A, which is not found. > A is then loaded dynamically, which causes B being loaded implicitly > as a dependency of A. Later when loadLibrary() is called for B, > JNI_OnLoad_B would be found and then called. This is an existing > behavior. I think it's an unspecified behavior and we don't need to > add any additional checks to prevent JNI_OnLoad_B from being called. That sounds like a significant design flaw to me. You can't specify that JNI_OnLoad_L will only be called if L is statically linked, if the existence of JNI_OnLoad_L is used to infer that L is statically linked! I would expect libraries to have both versions of the OnLoad functions to allow for them being statically or dynamically linked - which the spec allows for by saying the alternate variant is ignored. But then the JDK will execute the wrong method if it finds JNI_OnLoad_L in a dynamically linked library. David ----- > Thanks, > Jiangli > >> >> David >> ----- >> >>> Thanks! >>> Jiangli >>>> >>>> David >>>> >>>>> Best, >>>>> Jiangli >>>>> >>>>> >>>>>> >>>>>> David >>>>>> ----- >>>>>> >>>>>> >>>>>>> From JNI spec [3]: >>>>>>> >>>>>>> - JNI_OnLoad/JNI_OnUnload >>>>>>> Optional function defined by dynamically linked libraries. >>>>>>> >>>>>>> LINKAGE: >>>>>>> Exported from dynamically linked native libraries that contain >>>>>>> native method implementations. >>>>>>> >>>>>>> - JNI_OnLoad_L >>>>>>> Mandatory function that must be defined by statically linked libraries . >>>>>>> >>>>>>> LINKAGE: >>>>>>> Exported from statically linked native libraries that contain native >>>>>>> method implementations. >>>>>>> >>>>>>> - JNI_OnUnload_L >>>>>>> Optional function defined by statically linked libraries. >>>>>>> >>>>>>> From JVMTI spec [4]: >>>>>>> >>>>>>> An agent L whose image has been combined with the VM is defined as >>>>>>> statically linked if and only if the agent exports a function called >>>>>>> Agent_OnLoad_L. >>>>>>> >>>>>>> [1]: https://bugs.openjdk.org/browse/JDK-8350450 >>>>>>> [2]: https://github.com/openjdk/leyden/tree/hermetic-java-runtime >>>>>>> [3]: https://docs.oracle.com/en/java/javase/21/docs/specs/jni/ >>>>>>> [4]: https://docs.oracle.com/en/java/javase/24/docs/specs/jvmti.html >>>>>>> >>>>>>> Best, >>>>>>> Jiangli >>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> And finally, on top of all of this, is the question of widening the platform support. To support linux/gcc with objcopy is trivial, but the question about Windows still remain. I have two possible ways forward, one is to check if there is alternative tooling to use (the prime candidate is the clang-ldd), and the other is to try to "fake" a partial linking by concatenating all source code before compiling. This is not ideal, though, for many reasons, and I am not keen on implementing it, not even for testing. And at this point, I have not had time to investigate any of these options much further, since I have been focusing on 1) above. >>>>>>>>> >>>>>>>>> A third option is of course to just say that due to toolchain limitations, static linking is not available on Windows. >>>>>>>> >>>>>>>> Thank you for taking this on! Potentially we could consider taking the >>>>>>>> objcopy to localizing hotspot symbols on unix-like platforms, based on >>>>>>>> https://github.com/openjdk/jdk/pull/17456 discussions. Additional >>>>>>>> testing is still needed to verify the solution. >>>>>>>> >>>>>>>>> >>>>>>>>> My recommendation is that you keep on working to resolve the (much more thorny) issues of resource access in Hermetic Java in your branch, where you have a prototype static build that works for you. In the meantime, I will make sure that there will be a functioning, stable and robust way of creating static builds in the mainline, that can be regularly tested and not bit-rot, like the static build hacks that has gone in before. >>>>>>>> >>>>>>>> Most of the JDK resources are now supported as hermetic jimage >>>>>>>> (lib/modules) bundled in the >>>>>>>> https://github.com/openjdk/leyden/tree/hermetic-java-runtime branch. >>>>>>>> The remaining sound.properties, ct.sym and .jfc files can be handled >>>>>>>> later. Overally, that part of the work has confirmed the hermetic >>>>>>>> jimage bundled solution is robust and helps resolve some of the >>>>>>>> difficult start-up sequence issues observed when the hermetic resource >>>>>>>> was implemented using JAR file based solution. >>>>>>>> >>>>>>>> It might be a good idea to follow up on the static linking discussion >>>>>>>> in tomorrow's zoom meeting (hope you'll be able to join tomorrow). >>>>>>>> >>>>>>>> Thanks! >>>>>>>> >>>>>>>> Jiangli >>>>>>>>> >>>>>>>>> /Magnus >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Thanks! >>>>>>>>> Jiangli >>>>>>>>> >>>>>>>>> On Thu, Feb 15, 2024 at 12:01?PM Jiangli Zhou wrote: >>>>>>>>>> >>>>>>>>>> On Wed, Feb 14, 2024 at 5:07?PM Jiangli Zhou wrote: >>>>>>>>>>> >>>>>>>>>>> Hi Magnus, >>>>>>>>>>> >>>>>>>>>>> Thanks for looking into this from the build perspective. >>>>>>>>>>> >>>>>>>>>>> On Wed, Feb 14, 2024 at 1:00?AM Magnus Ihse Bursie >>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> First some background for build-dev: I have spent some time looking at >>>>>>>>>>>> the build implications of the Hermetic Java effort, which is part of >>>>>>>>>>>> Project Leyden. A high-level overview is available here: >>>>>>>>>>>> https://cr.openjdk.org/~jiangli/hermetic_java.pdf and the current source >>>>>>>>>>>> code is here: https://github.com/openjdk/leyden/tree/hermetic-java-runtime. >>>>>>>>>>> >>>>>>>>>>> Some additional hermetic Java related references that are also useful: >>>>>>>>>>> >>>>>>>>>>> - https://bugs.openjdk.org/browse/JDK-8303796 is an umbrella bug that >>>>>>>>>>> links to the issues for resolving static linking issues so far >>>>>>>>>>> - https://github.com/openjdk/jdk21/pull/26 is the enhancement for >>>>>>>>>>> building the complete set of static libraries in JDK/VM, particularly >>>>>>>>>>> including libjvm.a >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Hermetic Java faces several challenges, but the part that is relevant >>>>>>>>>>>> for the build system is the ability to create static libraries. We've >>>>>>>>>>>> had this functionality (in three different ways...) for some time, but >>>>>>>>>>>> it is rather badly implemented. >>>>>>>>>>>> >>>>>>>>>>>> As a result of my investigations, I have a bunch of questions. :-) I >>>>>>>>>>>> have gotten some answers in private discussion, but for the sake of >>>>>>>>>>>> transparency I will repeat them here, to foster an open dialogue. >>>>>>>>>>>> >>>>>>>>>>>> 1. Am I correct in understanding that the ultimate goal of this exercise >>>>>>>>>>>> is to be able to have jmods which include static libraries (*.a) of the >>>>>>>>>>>> native code which the module uses, and that the user can then run a >>>>>>>>>>>> special jlink command to have this linked into a single executable >>>>>>>>>>>> binary (which also bundles the *.class files and any additional >>>>>>>>>>>> resources needed)? >>>>>>>>>>>> >>>>>>>>>>>> 2. If so, is the idea to create special kinds of static jmods, like >>>>>>>>>>>> java.base-static.jmod, that contains *.a files instead of lib*.so files? >>>>>>>>>>>> Or is the idea that the normal jmod should contain both? >>>>>>>>>>>> >>>>>>>>>>>> 3. Linking .o and .a files into an executable is a formidable task. Is >>>>>>>>>>>> the intention to have jlink call a system-provided ld, or to bundle ld >>>>>>>>>>>> with jlink, or to reimplement this functionality in Java? >>>>>>>>>>> >>>>>>>>>>> I have a similar view as Alan responded in your other email thread. >>>>>>>>>>> Things are still in the early stage for the general solution. >>>>>>>>>>> >>>>>>>>>>> In the https://github.com/openjdk/leyden/tree/hermetic-java-runtime >>>>>>>>>>> branch, when configuring JDK with --with-static-java=yes, the JDK >>>>>>>>>>> binary contains the following extra artifacts: >>>>>>>>>>> >>>>>>>>>>> - static-libs/*.a: The complete set of JDK/VM static libraries >>>>>>>>>>> - jdk/bin/javastatic: A demo Java launcher fully statically linked >>>>>>>>>>> with the selected JDK .a libraries (e.g. it currently statically link >>>>>>>>>>> with the headless) and libjvm.a. It's the standard Java launcher >>>>>>>>>>> without additional work for hermetic Java. >>>>>>>>>>> >>>>>>>>>>> In our prototype for hermetic Java, we build the hermetic executable >>>>>>>>>>> image (a single image) from the following input (see description on >>>>>>>>>>> singlejar packaging tool in >>>>>>>>>>> https://cr.openjdk.org/~jiangli/hermetic_java.pdf): >>>>>>>>>>> >>>>>>>>>>> - A customized launcher (with additional work for hermetic) executable >>>>>>>>>>> fully statically linked with JDK/VM static libraries (.a files), >>>>>>>>>>> application natives and dependencies (e.g. in .a static libraries) >>>>>>>>>>> - JDK lib/modules, JDK resource files >>>>>>>>>>> - Application classes and resource files >>>>>>>>>>> >>>>>>>>>>> Including a JDK library .a into the corresponding .jmod would require >>>>>>>>>>> extracting the .a for linking with the executable. In some systems >>>>>>>>>>> that may cause memory overhead due to the extracted copy of the .a >>>>>>>>>>> files. I think we should consider the memory overhead issue. >>>>>>>>>>> >>>>>>>>>>> One possibility (as Alan described in his response) is for jlink to >>>>>>>>>>> invoke the ld on the build system. jlink could pass the needed JDK >>>>>>>>>>> static libraries and libjvm.a (provided as part of the JDK binary) to >>>>>>>>>>> ld based on the modules required for the application. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I gave a bit more thoughts on this one. For jlink to trigger ld, it >>>>>>>>>> would need to know the complete linker options and inputs. Those >>>>>>>>>> include options and inputs related to the application part as well. In >>>>>>>>>> some usages, it might be easier to handle native linking separately >>>>>>>>>> and pass the linker output, the executable to jlink directly. Maybe we >>>>>>>>>> could consider supporting different modes for various usages >>>>>>>>>> requirements, from static libraries and native linking point of view: >>>>>>>>>> >>>>>>>>>> Mode #1 >>>>>>>>>> Support .jmod packaged natives static libraries, for both JDK/VM .a >>>>>>>>>> and application natives and dependencies. If the inputs to jlink >>>>>>>>>> include .jmods, jlink can extract the .a libraries and pass the >>>>>>>>>> information to ld to link the executable. >>>>>>>>>> >>>>>>>>>> Mode #2 >>>>>>>>>> Support separate .a as jlink input. Jlink could pass the path >>>>>>>>>> information to the .a libraries and other linker options to ld to >>>>>>>>>> create the executable. >>>>>>>>>> >>>>>>>>>> For both mode #1 and #2, jlink would then use the linker output >>>>>>>>>> executable to create the final hermetic image. >>>>>>>>>> >>>>>>>>>> Mode #3 >>>>>>>>>> Support a fully linked executable as a jlink input. When a linked >>>>>>>>>> executable is given to jlink, it can process it directly with other >>>>>>>>>> JDK data/files to create the final image, without native linking step. >>>>>>>>>> >>>>>>>>>> Any other thoughts and considerations? >>>>>>>>>> >>>>>>>>>> Best, >>>>>>>>>> Jiangli >>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> 4. Is the intention is to allow users to create their own jmods with >>>>>>>>>>>> static libraries, and have these linked in as well? This seems to be the >>>>>>>>>>>> case. >>>>>>>>>>> >>>>>>>>>>> An alternative with less memory overhead could be using application >>>>>>>>>>> modular JAR and separate .a as the input for jlink. >>>>>>>>>>> >>>>>>>>>>>> If that is so, then there will always be the risk for name >>>>>>>>>>>> collisions, and we can only minimize the risk by making sure any global >>>>>>>>>>>> names are as unique as possible. >>>>>>>>>>> >>>>>>>>>>> Part of the current effort includes resolving the discovered symbol >>>>>>>>>>> collision issues with static linking. Will respond to your other email >>>>>>>>>>> on the symbol issue separately later. >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> 5. The original implementation of static builds in the JDK, created for >>>>>>>>>>>> the Mobile project, used a configure flag, --enable-static-builds, to >>>>>>>>>>>> change the entire behavior of the build system to only produce *.a files >>>>>>>>>>>> instead of lib*.so. In contrast, the current system is using a special >>>>>>>>>>>> target instead. >>>>>>>>>>> >>>>>>>>>>> I think we would need both configure flag and special target for the >>>>>>>>>>> static builds. >>>>>>>>>>> >>>>>>>>>>>> In my eyes, this is a much worse solution. Apart from >>>>>>>>>>>> the conceptual principle (if the build should generate static or dynamic >>>>>>>>>>>> libraries is definitely a property of what a "configuration" means), >>>>>>>>>>>> this makes it much harder to implement efficiently, since we cannot make >>>>>>>>>>>> changes in NativeCompilation.gmk, where they are needed. >>>>>>>>>>> >>>>>>>>>>> For the potential objcopy work to resolve symbol issues, we can add >>>>>>>>>>> that conditionally in NativeCompilation.gmk if STATIC_LIBS is true. We >>>>>>>>>>> have an internal prototype (not included in >>>>>>>>>>> https://github.com/openjdk/leyden/tree/hermetic-java-runtime yet) done >>>>>>>>>>> by one of colleagues for localizing symbols in libfreetype using >>>>>>>>>>> objcopy. >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> That was not as much a question as a statement. ? But here is the >>>>>>>>>>>> question: Do you think it would be reasonable to restore the old >>>>>>>>>>>> behavior but with the new methods, so that we don't use special targets, >>>>>>>>>>>> but instead tells configure to generate static libraries? I'm thinking >>>>>>>>>>>> we should have a flag like "--with-library-type=" that can have values >>>>>>>>>>>> "dynamic" (which is default), "static" or "both". >>>>>>>>>>> >>>>>>>>>>> If we want to also build a fully statically linked launcher, maybe >>>>>>>>>>> --with-static-java? Being able to configure either dynamic, static or >>>>>>>>>>> both as you suggested also seems to be a good idea. >>>>>>>>>>> >>>>>>>>>>>> I am not sure if "both" are needed, but if we want to bundle both lib*.so and *.a files >>>>>>>>>>>> into a single jmod file (see question 2 above), then it definitely is. >>>>>>>>>>>> In general, the cost of producing two kinds of libraries are quite >>>>>>>>>>>> small, compared to the cost of compiling the source code to object files. >>>>>>>>>>> >>>>>>>>>>> Completely agree. It would be good to avoid recompiling the .o file >>>>>>>>>>> for static and dynamic builds. As proposed in >>>>>>>>>>> https://bugs.openjdk.org/browse/JDK-8303796: >>>>>>>>>>> >>>>>>>>>>> It's beneficial to be able to build both .so and .a from the same set >>>>>>>>>>> of .o files. That would involve some changes to handle the dynamic JDK >>>>>>>>>>> and static JDK difference at runtime, instead of relying on the >>>>>>>>>>> STATIC_BUILD macro. >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Finally, I have looked at how to manipulate symbol visibility. There >>>>>>>>>>>> seems many ways forward, so I feel confident that we can find a good >>>>>>>>>>>> solution. >>>>>>>>>>>> >>>>>>>>>>>> One way forward is to use objcopy to manipulate symbol status >>>>>>>>>>>> (global/local). There is an option --localize-symbol in objcopy, that >>>>>>>>>>>> has been available in objcopy since at least 2.15, which was released >>>>>>>>>>>> 2004, so it should be safe to use. But ideally we should avoid using >>>>>>>>>>>> objcopy and do this as part of the linking process. This should be >>>>>>>>>>>> possible to do, given that we make changes in NativeCompilation.gmk -- >>>>>>>>>>>> see question 5 above. >>>>>>>>>>>> >>>>>>>>>>>> As a fallback, it is also possible to rename symbols, either piecewise >>>>>>>>>>>> or wholesale, using objcopy. There are many ways to do this, using >>>>>>>>>>>> --prefix-symbols, --redefine-sym or --redefine-syms (note the -s, this >>>>>>>>>>>> takes a file with a list of symbols). Thus we can always introduce a >>>>>>>>>>>> "post factum namespace" by renaming symbols. >>>>>>>>>>> >>>>>>>>>>> Renaming or redefining the symbol at build time could cause confusions >>>>>>>>>>> with debugging. That's a concern raised in >>>>>>>>>>> https://github.com/openjdk/jdk/pull/17456 discussions. >>>>>>>>>>> >>>>>>>>>>> Additionally, redefining symbols using tools like objcopy may not >>>>>>>>>>> handle member names referenced in string literals. For example, in >>>>>>>>>>> https://github.com/openjdk/jdk/pull/17456 additional changes are >>>>>>>>>>> needed in assembling and SA to reflect the symbol change. >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> So in the end, I think it will be fully possible to produce .a files >>>>>>>>>>>> that only has global symbols for the functions that are part of the API >>>>>>>>>>>> exposed by that library, and have all other symbols local, and make this >>>>>>>>>>>> is in a way that is consistent with the rest of the build system. >>>>>>>>>>>> >>>>>>>>>>>> Finally, a note on Hotspot. Due to debugging reasons, we export >>>>>>>>>>>> basically all symbols in hotspot as global. This is not reasonable to do >>>>>>>>>>>> for a static build. The effect of not exporting those symbols will be >>>>>>>>>>>> that SA will not function to 100%. On the other hand, I have no idea if >>>>>>>>>>>> SA works at all with a static build. Have you tested this? Is this part >>>>>>>>>>>> of the plan to support, or will it be officially dropped for Hermetic Java? >>>>>>>>>>> >>>>>>>>>>> We have done some testing with jtreg SA related tests for the fully >>>>>>>>>>> statically linked `javastatic`. >>>>>>>>>>> >>>>>>>>>>> If we use objcopy to localize symbols in hotspot, it's not yet clear >>>>>>>>>>> what's the impact on SA. We could do some tests. The other question >>>>>>>>>>> that I raised is the supported gcc versions (for partial linking) >>>>>>>>>>> related to the solution. >>>>>>>>>>> >>>>>>>>>>> Best, >>>>>>>>>>> Jiangli >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> /Magnus >>>>>>>>>>>> >>>>>> >>>> >> From asmehra at openjdk.org Mon Jun 2 14:15:58 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 2 Jun 2025 14:15:58 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods Message-ID: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. ------------- Commit messages: - More cleanup - Fix compile failures - Refactor nmethod caching - Replace apply_relocations with fix_relocations Changes: https://git.openjdk.org/leyden/pull/71/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=00 Stats: 685 lines in 7 files changed: 102 ins; 459 del; 124 mod Patch: https://git.openjdk.org/leyden/pull/71.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/71/head:pull/71 PR: https://git.openjdk.org/leyden/pull/71 From asmehra at openjdk.org Mon Jun 2 14:15:58 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 2 Jun 2025 14:15:58 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods In-Reply-To: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 2 Jun 2025 14:10:41 GMT, Ashutosh Mehra wrote: > This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. @vnkozlov @adinn please review. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2930929481 From asmehra at openjdk.org Mon Jun 2 14:37:00 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 2 Jun 2025 14:37:00 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v2] In-Reply-To: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: > This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: Remove redundant call to clear() Signed-off-by: Ashutosh Mehra ------------- Changes: - all: https://git.openjdk.org/leyden/pull/71/files - new: https://git.openjdk.org/leyden/pull/71/files/6bab593a..b9346a62 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=00-01 Stats: 2 lines in 1 file changed: 0 ins; 2 del; 0 mod Patch: https://git.openjdk.org/leyden/pull/71.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/71/head:pull/71 PR: https://git.openjdk.org/leyden/pull/71 From asmehra at openjdk.org Mon Jun 2 14:51:47 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 2 Jun 2025 14:51:47 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: > This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: Remove CodeBuffer::clear_strings() as the relevant destructors clear the strings Signed-off-by: Ashutosh Mehra ------------- Changes: - all: https://git.openjdk.org/leyden/pull/71/files - new: https://git.openjdk.org/leyden/pull/71/files/b9346a62..646769d0 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=02 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=01-02 Stats: 7 lines in 2 files changed: 0 ins; 7 del; 0 mod Patch: https://git.openjdk.org/leyden/pull/71.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/71/head:pull/71 PR: https://git.openjdk.org/leyden/pull/71 From shade at openjdk.org Mon Jun 2 20:16:21 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 2 Jun 2025 20:16:21 GMT Subject: RFR: Fix recent merge errors Message-ID: I skipped through current premain-vs-mainline webrev, and noticed a few merge errors. `metaspaceShared.cpp` hunks are obvious duplications. I removed the lines that are actually different from mainline. `compilationPolicy.hpp` hunk is a leftover from AOT Profiling. I remember pointing this out to @veresov during mainline review, and we went into mainline without that extra `notify_all`. We should ditch it in premain too. Additional testing: - [x] Linux x86_64 server fastdebug, `runtime/cds` ------------- Commit messages: - Fix Changes: https://git.openjdk.org/leyden/pull/72/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=72&range=00 Stats: 4 lines in 2 files changed: 0 ins; 4 del; 0 mod Patch: https://git.openjdk.org/leyden/pull/72.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/72/head:pull/72 PR: https://git.openjdk.org/leyden/pull/72 From duke at openjdk.org Mon Jun 2 20:28:22 2025 From: duke at openjdk.org (duke) Date: Mon, 2 Jun 2025 20:28:22 GMT Subject: git: openjdk/leyden: hermetic-java-runtime: 128 new changesets Message-ID: Changeset: c1f066e1 Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2025-05-27 17:11:24 +0000 URL: https://git.openjdk.org/leyden/commit/c1f066e17eacf7649df4042e2fb985da9724ef40 8356888: (fs) FileSystems.newFileSystem that take an env must specify IllegalArgumentException Reviewed-by: lancea, alanb, jpai ! src/java.base/share/classes/java/nio/file/FileSystems.java Changeset: d4b923d1 Branch: hermetic-java-runtime Author: Per Minborg Date: 2025-05-27 19:11:12 +0000 URL: https://git.openjdk.org/leyden/commit/d4b923d175b07e39ee8ee2c79f04457ea1cfbdd0 8357268: Use JavaNioAccess.getBufferAddress rather than DirectBuffer.address() Reviewed-by: alanb, valeriep ! src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java ! src/java.base/share/classes/sun/nio/ch/IOUtil.java ! src/java.base/unix/classes/sun/nio/fs/UnixUserDefinedFileAttributeView.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11AEADCipher.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Cipher.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Digest.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11KeyWrapCipher.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Mac.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11PSSSignature.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java ! src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SctpChannelImpl.java ! src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SctpMultiChannelImpl.java ! test/jdk/java/nio/channels/AsynchronousFileChannel/Basic.java ! test/jdk/java/nio/file/attribute/UserDefinedFileAttributeView/Basic.java Changeset: da228e06 Branch: hermetic-java-runtime Author: Per Minborg Date: 2025-05-27 19:15:40 +0000 URL: https://git.openjdk.org/leyden/commit/da228e069359bbab0e5c54f8cb2e20d67693b87c 8357145: CRC/Inflater/Deflater/Adler32 methods that take a ByteBuffer throw UOE if backed by shared memory segment Reviewed-by: alanb ! src/java.base/share/classes/java/util/zip/Adler32.java ! src/java.base/share/classes/java/util/zip/CRC32.java ! src/java.base/share/classes/java/util/zip/CRC32C.java ! src/java.base/share/classes/java/util/zip/Deflater.java ! src/java.base/share/classes/java/util/zip/Inflater.java ! test/jdk/java/util/zip/ChecksumBase.java ! test/jdk/java/util/zip/DeInflate.java Changeset: 4755276f Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2025-05-27 19:47:56 +0000 URL: https://git.openjdk.org/leyden/commit/4755276f36ccc989d9171fc9f92f8e886d4d99b9 8357912: (fs) Remove @since tag from java.nio.file.FileSystems.newFileSystem(Path,ClassLoader) Reviewed-by: lancea, alanb ! src/java.base/share/classes/java/nio/file/FileSystems.java Changeset: 11ad1733 Branch: hermetic-java-runtime Author: Andrey Turbanov Date: 2025-05-27 20:43:09 +0000 URL: https://git.openjdk.org/leyden/commit/11ad1733f8db3d8e868383fc9826963b9ffd620f 8354944: Remove unnecessary PartiallyOrderedSet.nodes Reviewed-by: serb, aivanov ! src/java.desktop/share/classes/javax/imageio/spi/PartiallyOrderedSet.java Changeset: 2e8b195a Branch: hermetic-java-runtime Author: William Kemper Date: 2025-05-27 21:40:27 +0000 URL: https://git.openjdk.org/leyden/commit/2e8b195a96e3b2a4ca27c64a923adc4334073128 8354078: Implement JEP 521: Generational Shenandoah Reviewed-by: ysr ! src/hotspot/share/gc/shenandoah/mode/shenandoahGenerationalMode.hpp ! test/hotspot/jtreg/gc/shenandoah/options/TestModeUnlock.java Changeset: f25f4a3e Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-05-27 22:41:39 +0000 URL: https://git.openjdk.org/leyden/commit/f25f4a3eb2f3ebba4af30471de9d35778c120d50 8349665: Make clean removes module-deps.gmk Reviewed-by: erikj ! make/Init.gmk ! make/Main.gmk ! make/PreInitSupport.gmk Changeset: c110623d Branch: hermetic-java-runtime Author: Alex Menkov Date: 2025-05-27 23:23:26 +0000 URL: https://git.openjdk.org/leyden/commit/c110623d38806c5170fbff640e77933dcef8981b 8357282: Test vmTestbase/nsk/jvmti/AttachOnDemand/attach045/TestDescription.java fails after ClassNotFoundException Reviewed-by: lmesnik, sspitsyn ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/vmTestbase/nsk/share/aod/AODRunnerArgParser.java Changeset: 4cad4379 Branch: hermetic-java-runtime Author: Steffen Nie?ing Committer: SendaoYan Date: 2025-05-28 01:54:48 +0000 URL: https://git.openjdk.org/leyden/commit/4cad437956ff75a377adba8a760e19dc6cf7dc8d 8357597: Proxy.getInvocationHandler throws NullPointerException instead of IllegalArgumentException for null Reviewed-by: rriggs, jpai, liach ! src/java.base/share/classes/java/lang/reflect/Proxy.java Changeset: 96fb31e2 Branch: hermetic-java-runtime Author: Dingli Zhang Committer: Feilong Jiang Date: 2025-05-28 02:27:06 +0000 URL: https://git.openjdk.org/leyden/commit/96fb31e2dbc16875c6c8183096cd03f30d0632ee 8357695: RISC-V: Move vector intrinsic condition checks into match_rule_supported_vector Reviewed-by: fyang, fjiang ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/riscv/riscv_v.ad Changeset: 72b9aafd Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-05-28 02:39:59 +0000 URL: https://git.openjdk.org/leyden/commit/72b9aafd5a0dfb379a979f554fa99a767eef3e50 8357917: Assert in MetaspaceShared::preload_and_dump() when printing exception Reviewed-by: kvn, jrose ! src/hotspot/share/cds/metaspaceShared.cpp Changeset: 670ef8cc Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2025-05-28 05:54:10 +0000 URL: https://git.openjdk.org/leyden/commit/670ef8cc52e6eb068ca6968142629abc1c424571 8357561: BootstrapLoggerTest does not work on Ubuntu 24 with LANG de_DE.UTF-8 Reviewed-by: dfuchs ! test/jdk/java/lang/System/LoggerFinder/internal/BootstrapLogger/BootstrapLoggerTest.java ! test/jdk/java/util/logging/LocalizedLevelName.java ! test/jdk/java/util/logging/SimpleFormatterFormat.java ! test/jdk/sun/util/logging/SourceClassName.java Changeset: db515566 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2025-05-28 06:55:20 +0000 URL: https://git.openjdk.org/leyden/commit/db515566875b92bd4aff08cccc80d80b85f01514 8354428: [ubsan] g1BiasedArray.hpp: pointer overflow in address calculation Reviewed-by: ayang, kbarrett, mbaesken ! src/hotspot/share/gc/g1/g1BiasedArray.cpp ! src/hotspot/share/gc/g1/g1BiasedArray.hpp ! src/hotspot/share/gc/g1/vmStructs_g1.hpp ! test/hotspot/gtest/gc/g1/test_g1BiasedArray.cpp Changeset: 1d57ff8a Branch: hermetic-java-runtime Author: Marc Chevalier Date: 2025-05-28 07:52:17 +0000 URL: https://git.openjdk.org/leyden/commit/1d57ff8ad4938bc9ca9b1996eb200c1b51bdf300 8357781: Deep recursion in PhaseCFG::set_next_call leads to stack overflow Reviewed-by: thartmann, kvn, mhaessig ! src/hotspot/share/opto/block.hpp ! src/hotspot/share/opto/lcm.cpp + test/hotspot/jtreg/compiler/c2/StackOverflowInSetNextCall.java Changeset: efeb050e Branch: hermetic-java-runtime Author: Raffaello Giulietti Date: 2025-05-28 08:13:02 +0000 URL: https://git.openjdk.org/leyden/commit/efeb050e00145da18f979fe17c22da2f736dbd41 8357808: Add a command line option for specifying a counter in TestRandomFloatingDecimal Reviewed-by: liach ! test/jdk/jdk/internal/math/FloatingDecimal/TestRandomFloatingDecimal.java Changeset: f74fbfe5 Branch: hermetic-java-runtime Author: Axel Boldt-Christmas Date: 2025-05-28 08:20:48 +0000 URL: https://git.openjdk.org/leyden/commit/f74fbfe5de9dc5b90652956935642670c085938c 8357449: ZGC: Multiple medium page sizes Reviewed-by: stefank, jsikstro ! src/hotspot/share/gc/z/vmStructs_z.hpp ! src/hotspot/share/gc/z/zAllocationFlags.hpp ! src/hotspot/share/gc/z/zArguments.cpp ! src/hotspot/share/gc/z/zGlobals.cpp ! src/hotspot/share/gc/z/zGlobals.hpp ! src/hotspot/share/gc/z/zHeap.cpp ! src/hotspot/share/gc/z/zHeuristics.cpp ! src/hotspot/share/gc/z/zMappedCache.cpp ! src/hotspot/share/gc/z/zMappedCache.hpp ! src/hotspot/share/gc/z/zObjectAllocator.cpp ! src/hotspot/share/gc/z/zPage.cpp ! src/hotspot/share/gc/z/zPageAllocator.cpp ! src/hotspot/share/gc/z/zPageAllocator.hpp ! src/hotspot/share/gc/z/zRelocationSetSelector.cpp ! src/hotspot/share/gc/z/zRelocationSetSelector.hpp ! src/hotspot/share/gc/z/zRelocationSetSelector.inline.hpp ! src/hotspot/share/gc/z/zStat.cpp ! src/hotspot/share/gc/z/z_globals.hpp + test/hotspot/jtreg/gc/z/TestZMediumPageSizes.java Changeset: 1e0caedb Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-05-28 08:47:36 +0000 URL: https://git.openjdk.org/leyden/commit/1e0caedb9ab1c56e3986764ce260b94e423d4948 8357854: Parallel: Inline args of PSOldGen::initialize_performance_counters Reviewed-by: tschatzl, jsikstro ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/psOldGen.cpp ! src/hotspot/share/gc/parallel/psOldGen.hpp Changeset: f02190bc Branch: hermetic-java-runtime Author: Markus Gr?nlund Date: 2025-05-28 08:57:04 +0000 URL: https://git.openjdk.org/leyden/commit/f02190bc30bf3d203a5012140a72023622fc2d77 8357829: Commented out sample limit in JfrSamplerThread::task_stacktrace Reviewed-by: shade ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp Changeset: 4e1878ca Branch: hermetic-java-runtime Author: Andrew Haley Date: 2025-05-28 09:41:37 +0000 URL: https://git.openjdk.org/leyden/commit/4e1878ca452d1e781eb61610a94064c0c4798073 8355022: Implement JEP 506: Scoped Values Reviewed-by: liach, alanb ! src/java.base/share/classes/java/lang/ScopedValue.java ! src/java.base/share/classes/javax/security/auth/Subject.java ! src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java ! test/jdk/java/lang/ScopedValue/ManyBindings.java ! test/jdk/java/lang/ScopedValue/ScopedValueAPI.java ! test/jdk/java/lang/ScopedValue/UnboundValueAfterOOME.java Changeset: 39714b60 Branch: hermetic-java-runtime Author: Hannes Walln?fer Date: 2025-05-28 09:46:49 +0000 URL: https://git.openjdk.org/leyden/commit/39714b603040f1619f5e0e2a13ea8a90bb993c27 8357869: Remove PreviewNote taglet in its current form Reviewed-by: erikj ! make/Docs.gmk - make/jdk/src/classes/build/tools/taglet/PreviewNote.java Changeset: 627ef344 Branch: hermetic-java-runtime Author: Mikhail Yankelevich Committer: Michael McMahon Date: 2025-05-28 10:34:50 +0000 URL: https://git.openjdk.org/leyden/commit/627ef34498c31b5d16f9da423cfe0a5fe46a3562 8304065: HttpServer.stop should terminate immediately if no exchanges are in progress Co-authored-by: Eirik Bj?rsn?s Reviewed-by: dfuchs, michaelm ! src/jdk.httpserver/share/classes/sun/net/httpserver/ChunkedOutputStream.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/Event.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/FixedLengthOutputStream.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/ServerImpl.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/UndefLengthOutputStream.java - src/jdk.httpserver/share/classes/sun/net/httpserver/WriteFinishedEvent.java + test/jdk/com/sun/net/httpserver/ServerStopTerminationTest.java Changeset: 0671309d Branch: hermetic-java-runtime Author: Per Minborg Date: 2025-05-28 10:57:57 +0000 URL: https://git.openjdk.org/leyden/commit/0671309de530822cc261e8251fc425c8aa3cc487 8357919: Arena::allocate returns segments with address zero if the segment length is zero after JDK-8345687 Reviewed-by: mcimadamore ! src/java.base/share/classes/jdk/internal/foreign/SegmentFactories.java ! test/jdk/java/foreign/TestSegments.java Changeset: f30e1541 Branch: hermetic-java-runtime Author: Serguei Spitsyn Date: 2025-05-28 11:38:20 +0000 URL: https://git.openjdk.org/leyden/commit/f30e15411f5c0fc90565dac19203fdc1ab43fd88 8357673: remove test serviceability/jvmti/vthread/TestPinCaseWithCFLH Reviewed-by: amenkov, lmesnik - test/hotspot/jtreg/serviceability/jvmti/vthread/TestPinCaseWithCFLH/TestPinCaseWithCFLH.java Changeset: 6ebae6cd Branch: hermetic-java-runtime Author: Casper Norrbin Committer: Albert Mingkun Yang Date: 2025-05-28 12:00:15 +0000 URL: https://git.openjdk.org/leyden/commit/6ebae6cded49f9b0b0d42899af3303647eca7848 8241678: Remove PerfData sampling via StatSampler Reviewed-by: jsjolen, ayang ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/gc/parallel/spaceCounters.cpp ! src/hotspot/share/gc/parallel/spaceCounters.hpp ! src/hotspot/share/gc/serial/cSpaceCounters.cpp ! src/hotspot/share/gc/serial/cSpaceCounters.hpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/runtime/perfData.cpp ! src/hotspot/share/runtime/perfData.hpp ! src/hotspot/share/runtime/perfDataTypes.hpp ! src/hotspot/share/runtime/perfMemory.cpp - src/hotspot/share/runtime/statSampler.cpp - src/hotspot/share/runtime/statSampler.hpp ! src/hotspot/share/runtime/threads.cpp ! src/jdk.internal.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/v1_0/PerfDataBuffer.java ! src/jdk.internal.jvmstat/share/classes/sun/jvmstat/perfdata/resources/aliasmap ! src/jdk.jcmd/share/classes/sun/tools/jstat/ExpressionExecuter.java ! src/jdk.jcmd/share/classes/sun/tools/jstat/ExpressionResolver.java ! src/jdk.jcmd/share/classes/sun/tools/jstat/Parser.java + src/jdk.jcmd/share/classes/sun/tools/jstat/Timestamp.java ! src/jdk.jcmd/share/classes/sun/tools/jstat/resources/jstat_options Changeset: c9e6c4d0 Branch: hermetic-java-runtime Author: Fabio Romano Committer: Raffaello Giulietti Date: 2025-05-28 12:48:47 +0000 URL: https://git.openjdk.org/leyden/commit/c9e6c4d0171ff6f419344f9341747c71416d4ec9 8356891: Some code simplifications in BigInteger Reviewed-by: rgiulietti ! src/java.base/share/classes/java/math/BigInteger.java Changeset: 4b9290af Branch: hermetic-java-runtime Author: Marc Chevalier Date: 2025-05-28 13:26:15 +0000 URL: https://git.openjdk.org/leyden/commit/4b9290af0a46bdf662735c24d00732a4c1601102 8356647: C2: Excessively strict assert in PhaseIdealLoop::do_unroll Reviewed-by: chagedorn, epeter, dlong ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopnode.hpp + test/hotspot/jtreg/compiler/loopopts/UnrollWideLoopHitsTooStrictAssert.java Changeset: 016cc4f3 Branch: hermetic-java-runtime Author: Markus Gr?nlund Date: 2025-05-28 13:51:24 +0000 URL: https://git.openjdk.org/leyden/commit/016cc4f333d1a59a7cd534cb7ee4c373087efd10 8357830: JfrVframeStream::_cont_entry shadows super-class field Reviewed-by: egahlin - src/hotspot/share/jfr/recorder/stacktrace/jfrVframeStream.cpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrVframeStream.hpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrVframeStream.inline.hpp Changeset: 1a65719a Branch: hermetic-java-runtime Author: Markus Gr?nlund Date: 2025-05-28 13:51:40 +0000 URL: https://git.openjdk.org/leyden/commit/1a65719ab336336f94777df85bafeeef2c4d5b56 8357911: JFR: Fix subtle xor method tagging bug Reviewed-by: egahlin ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdMacros.hpp Changeset: 18285fc1 Branch: hermetic-java-runtime Author: Viktor Klang Date: 2025-05-28 14:23:23 +0000 URL: https://git.openjdk.org/leyden/commit/18285fc136e1a892ab54a705c1fa82e91325b06a 8356553: Incorrect uses of {@link} in AbstractQueuedLongSynchronizer and AbstractQueuedSynchronizer Reviewed-by: alanb ! src/java.base/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java ! src/java.base/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java Changeset: 7bd8375f Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-05-28 14:25:12 +0000 URL: https://git.openjdk.org/leyden/commit/7bd8375fe49eedecae7b2a1c75e7efb5ab06b22d 8357920: Add .rej and .orig to .gitignore Reviewed-by: syan, erikj ! .gitignore Changeset: a4f870df Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-05-28 14:42:21 +0000 URL: https://git.openjdk.org/leyden/commit/a4f870df553e4d7669edf6e454e147526ff2fae7 8357510: [REDO] RunTest variables should always be assigned Reviewed-by: erikj ! make/RunTests.gmk Changeset: 63d0e7ff Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-05-28 14:42:35 +0000 URL: https://git.openjdk.org/leyden/commit/63d0e7ff117537bf4768b88c43a0231a14ed1512 8355725: SPEC_FILTER stopped working Reviewed-by: erikj ! make/Docs.gmk Changeset: e3f85c96 Branch: hermetic-java-runtime Author: Igor Veresov Date: 2025-05-28 15:15:03 +0000 URL: https://git.openjdk.org/leyden/commit/e3f85c961b4c1e5e01aedf3a0f4e1b0e6ff457fd 8355003: Implement JEP 515: Ahead-of-Time Method Profiling Co-authored-by: John R Rose Co-authored-by: Vladimir Ivanov Co-authored-by: Ioi Lam Co-authored-by: Vladimir Kozlov Co-authored-by: Aleksey Shipilev Reviewed-by: kvn, ihse, cjplummer, iklam ! make/hotspot/lib/JvmFeatures.gmk ! src/hotspot/share/cds/aotArtifactFinder.cpp ! src/hotspot/share/cds/aotLinkedClassBulkLoader.cpp ! src/hotspot/share/cds/aotLinkedClassBulkLoader.hpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveBuilder.hpp ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/cdsConfig.hpp ! src/hotspot/share/cds/cds_globals.hpp ! src/hotspot/share/cds/cppVtables.cpp ! src/hotspot/share/cds/dumpAllocStats.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/cds/runTimeClassInfo.hpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/ci/ciInstanceKlass.hpp ! src/hotspot/share/ci/ciMethod.cpp ! src/hotspot/share/ci/ciMethodData.cpp ! src/hotspot/share/ci/ciObjectFactory.cpp ! src/hotspot/share/ci/ciObjectFactory.hpp ! src/hotspot/share/classfile/compactHashtable.hpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/compiler/compilationPolicy.hpp ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/compiler/compileBroker.hpp ! src/hotspot/share/compiler/compileTask.cpp ! src/hotspot/share/compiler/compileTask.hpp ! src/hotspot/share/compiler/compilerDefinitions.hpp ! src/hotspot/share/compiler/compiler_globals.hpp ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/memory/allocation.cpp ! src/hotspot/share/memory/allocation.hpp ! src/hotspot/share/memory/metadataFactory.hpp ! src/hotspot/share/memory/metaspaceClosure.hpp ! src/hotspot/share/oops/array.hpp ! src/hotspot/share/oops/array.inline.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/instanceKlassFlags.hpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/klass.inline.hpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/method.hpp ! src/hotspot/share/oops/methodCounters.cpp ! src/hotspot/share/oops/methodCounters.hpp ! src/hotspot/share/oops/methodData.cpp ! src/hotspot/share/oops/methodData.hpp + src/hotspot/share/oops/trainingData.cpp + src/hotspot/share/oops/trainingData.hpp ! src/hotspot/share/runtime/init.cpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/FileMapInfo.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Threads.java + test/hotspot/jtreg/runtime/cds/appcds/aotProfile/AOTProfileFlags.java Changeset: 4ced4e73 Branch: hermetic-java-runtime Author: gauthamkrishnanibm Committer: Roger Riggs Date: 2025-05-28 15:38:00 +0000 URL: https://git.openjdk.org/leyden/commit/4ced4e73fc0a517df826860839681004bb67e624 8334742: Change java.time month/day field types to 'byte' Reviewed-by: rriggs ! src/java.base/share/classes/java/time/LocalDate.java ! src/java.base/share/classes/java/time/MonthDay.java ! src/java.base/share/classes/java/time/YearMonth.java ! src/java.base/share/classes/java/time/chrono/HijrahDate.java Changeset: 2e6838a2 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2025-05-28 15:49:34 +0000 URL: https://git.openjdk.org/leyden/commit/2e6838a20d52e9fa0a3b7322f2cb548e034b5d83 8357307: VM GC operations should have a public gc_succeeded() Reviewed-by: ayang, iwalulya ! src/hotspot/share/gc/g1/g1VMOperations.hpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/serial/serialHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/gcVMOperations.hpp Changeset: e579cca6 Branch: hermetic-java-runtime Author: PAWAN CHAWDHARY Committer: Leonid Mesnik Date: 2025-05-28 15:59:37 +0000 URL: https://git.openjdk.org/leyden/commit/e579cca619147aa51563dc00f374e02db49e1238 8354475: TestDockerMemoryMetricsSubgroup.java fails with exitValue = 1 Reviewed-by: lmesnik, mseledtsov ! test/jdk/jdk/internal/platform/docker/TestDockerMemoryMetricsSubgroup.java Changeset: 8949c074 Branch: hermetic-java-runtime Author: Alexey Semenyuk Date: 2025-05-28 16:18:46 +0000 URL: https://git.openjdk.org/leyden/commit/8949c07484bd2ea0ab1e5207d45e6ef3694b7428 8357930: Amendment for JDK-8333664 Reviewed-by: almatvee ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageFileExtras.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageFile.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/ApplicationBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/FileAssociationGroup.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/FromParams.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/LauncherData.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/LauncherStartupInfoBuilder.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/ModuleInfo.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/Application.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/ApplicationWriter.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/BundleCreator.java = src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/BundleSpec.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/BundlingEnvironment.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/BundlingOperation.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/ExternalApplication.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/LauncherModularStartupInfoMixin.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/Package.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/PackageWriter.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/util/CollectionUtils.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/util/TokenReplace.java ! test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/AppImageFileTest.java Changeset: b2a61a99 Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-05-28 16:24:04 +0000 URL: https://git.openjdk.org/leyden/commit/b2a61a9972493d67d0f1a9f3f529c11e45838d5b 8356985: Use "stdin.encoding" in Console's read*() methods Reviewed-by: jlu, smarks, alanb, vyazici ! src/java.base/share/classes/java/io/Console.java ! src/java.base/share/classes/jdk/internal/io/JdkConsoleImpl.java ! src/java.base/share/classes/jdk/internal/io/JdkConsoleProvider.java ! src/jdk.internal.le/share/classes/jdk/internal/org/jline/JdkConsoleProviderImpl.java ! src/jdk.jshell/share/classes/jdk/jshell/execution/impl/ConsoleImpl.java ! test/jdk/java/io/Console/CharsetTest.java + test/jdk/java/io/Console/StdinEncodingTest.java = test/jdk/java/io/Console/csp/module-info.java + test/jdk/java/io/Console/csp/provider/UppercasingCharsetProvider.java ! test/jdk/java/io/Console/script.exp + test/jdk/java/io/Console/stdinEncoding.exp Changeset: cd052c72 Branch: hermetic-java-runtime Author: Henry Jen Date: 2025-05-28 17:22:41 +0000 URL: https://git.openjdk.org/leyden/commit/cd052c72cdb62186e66c1d2ecf9216f3df61b242 8345431: Improve jar --validate to detect duplicate or invalid entries Reviewed-by: lancea, jpai ! src/jdk.jartool/share/classes/sun/tools/jar/Main.java ! src/jdk.jartool/share/classes/sun/tools/jar/Validator.java ! src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties ! src/jdk.jartool/share/man/jar.md + test/jdk/tools/jar/ValidatorTest.java Changeset: 28f50931 Branch: hermetic-java-runtime Author: Gerard Ziemski Date: 2025-05-28 19:14:36 +0000 URL: https://git.openjdk.org/leyden/commit/28f509317d477c5f4076658f9ae9995aa6c53631 8356233: NMT: tty->print_cr should not be used in VirtualMemoryTracker::add_reserved_region() Reviewed-by: jsjolen, dholmes ! src/hotspot/share/nmt/virtualMemoryTracker.cpp Changeset: bb2c80c0 Branch: hermetic-java-runtime Author: Anthony Scarpino Date: 2025-05-28 19:52:18 +0000 URL: https://git.openjdk.org/leyden/commit/bb2c80c0e9923385e0b6243c0ebff9afef208470 8298420: Implement JEP 470: PEM Encodings of Cryptographic Objects (Preview) Reviewed-by: weijun, mr, mullan, jnimeh ! src/java.base/share/classes/java/security/AsymmetricKey.java + src/java.base/share/classes/java/security/DEREncodable.java ! src/java.base/share/classes/java/security/KeyPair.java + src/java.base/share/classes/java/security/PEMDecoder.java + src/java.base/share/classes/java/security/PEMEncoder.java + src/java.base/share/classes/java/security/PEMRecord.java ! src/java.base/share/classes/java/security/cert/X509CRL.java ! src/java.base/share/classes/java/security/cert/X509Certificate.java ! src/java.base/share/classes/java/security/spec/PKCS8EncodedKeySpec.java ! src/java.base/share/classes/java/security/spec/X509EncodedKeySpec.java ! src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java ! src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java ! src/java.base/share/classes/sun/security/ec/ECKeyFactory.java ! src/java.base/share/classes/sun/security/ec/ECPrivateKeyImpl.java ! src/java.base/share/classes/sun/security/ec/XDHKeyFactory.java ! src/java.base/share/classes/sun/security/ec/XDHPrivateKeyImpl.java ! src/java.base/share/classes/sun/security/ec/ed/EdDSAKeyFactory.java ! src/java.base/share/classes/sun/security/ec/ed/EdDSAPrivateKeyImpl.java ! src/java.base/share/classes/sun/security/pkcs/NamedPKCS8Key.java ! src/java.base/share/classes/sun/security/pkcs/PKCS8Key.java ! src/java.base/share/classes/sun/security/provider/DSAPrivateKey.java ! src/java.base/share/classes/sun/security/provider/KeyProtector.java ! src/java.base/share/classes/sun/security/provider/X509Factory.java ! src/java.base/share/classes/sun/security/rsa/RSAKeyFactory.java ! src/java.base/share/classes/sun/security/rsa/RSAPrivateCrtKeyImpl.java ! src/java.base/share/classes/sun/security/rsa/RSAPrivateKeyImpl.java ! src/java.base/share/classes/sun/security/rsa/RSAPublicKeyImpl.java ! src/java.base/share/classes/sun/security/util/DerValue.java ! src/java.base/share/classes/sun/security/util/KeyUtil.java ! src/java.base/share/classes/sun/security/util/Pem.java ! src/java.base/share/classes/sun/security/x509/X509Key.java ! src/java.base/share/conf/security/java.security ! test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java + test/jdk/java/security/PEM/PEMData.java + test/jdk/java/security/PEM/PEMDecoderTest.java + test/jdk/java/security/PEM/PEMEncoderTest.java + test/jdk/javax/crypto/EncryptedPrivateKeyInfo/EncryptKey.java + test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKey.java ! test/jdk/sun/security/pkcs/pkcs8/PKCS8Test.java Changeset: b7f0f480 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2025-05-28 20:36:44 +0000 URL: https://git.openjdk.org/leyden/commit/b7f0f480cefb7295bbd5f8830458b69baf2eaff6 8357681: Fixed the DigitList::toString method causing incorrect results during debugging Reviewed-by: jlu, naoto ! src/java.base/share/classes/java/text/DigitList.java Changeset: dede3532 Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-05-28 22:12:14 +0000 URL: https://git.openjdk.org/leyden/commit/dede3532f7238d527fb89be41f1b8050bde02ee3 8355798: Implement JEP 514: Ahead-of-Time Command Line Ergonomics Reviewed-by: erikj, kvn, asmehra ! doc/testing.html ! doc/testing.md ! make/RunTests.gmk ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/cdsConfig.hpp ! src/hotspot/share/cds/cds_globals.hpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/cds/metaspaceShared.hpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp ! src/java.base/share/classes/jdk/internal/misc/CDS.java ! src/java.base/share/man/java.md ! test/hotspot/jtreg/TEST.groups - test/hotspot/jtreg/runtime/cds/appcds/AOTFlags.java - test/hotspot/jtreg/runtime/cds/appcds/UseAppCDS_Test.java + test/hotspot/jtreg/runtime/cds/appcds/aotCache/SpecialCacheNames.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/MethodHandleTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/WeakReferenceTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCode/AOTCodeFlags.java + test/hotspot/jtreg/runtime/cds/appcds/aotFlags/AOTFlags.java + test/hotspot/jtreg/runtime/cds/appcds/aotFlags/FileNameSubstitution.java + test/hotspot/jtreg/runtime/cds/appcds/aotFlags/JDK_AOT_VM_OPTIONS.java ! test/lib/jdk/test/lib/cds/CDSAppTester.java ! test/setup_aot/TestSetupAOT.java Changeset: 2ec6ab34 Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-05-28 22:58:34 +0000 URL: https://git.openjdk.org/leyden/commit/2ec6ab347a18f454e33a3a281daf1d50a1fd5e27 8357525: Default CDS archive becomes non-deterministic after JDK-8305895 Reviewed-by: shade, coleenp ! src/hotspot/share/oops/klass.cpp Changeset: 83a28048 Branch: hermetic-java-runtime Author: Lei Zhu Committer: SendaoYan Date: 2025-05-29 05:40:36 +0000 URL: https://git.openjdk.org/leyden/commit/83a280485889573d5709b2bb59185d11ab6a38da 8357408: runtime/interpreter/CountBytecodesTest.java should be flagless Reviewed-by: shade, syan, lmesnik ! test/hotspot/jtreg/runtime/interpreter/CountBytecodesTest.java Changeset: 04e0fe00 Branch: hermetic-java-runtime Author: Phil Race Date: 2025-05-29 05:52:12 +0000 URL: https://git.openjdk.org/leyden/commit/04e0fe00abcf1d7919a50e0c9dd44ce2856984ea 8356049: Need a simple way to play back a sound clip Reviewed-by: serb, aivanov, kizune ! src/java.desktop/share/classes/com/sun/media/sound/DataPusher.java ! src/java.desktop/share/classes/com/sun/media/sound/JavaSoundAudioClip.java + src/java.desktop/share/classes/javax/sound/SoundClip.java + src/java.desktop/share/classes/javax/sound/package-info.java ! src/java.desktop/share/classes/module-info.java + test/jdk/javax/sound/SoundClip/LoopExitTest.java + test/jdk/javax/sound/SoundClip/SoundClipTest.java + test/jdk/javax/sound/SoundClip/badsound.wav + test/jdk/javax/sound/SoundClip/javasound.wav Changeset: d43f588d Branch: hermetic-java-runtime Author: Adam Sotona Date: 2025-05-29 07:03:26 +0000 URL: https://git.openjdk.org/leyden/commit/d43f588db1b39724da2823b73fe09f8609fd8e48 8357955: java.lang.classfile.Signature.ArrayTypeSig.of IAE not thrown for dims > 255 Reviewed-by: jlahoda ! src/java.base/share/classes/java/lang/classfile/Signature.java ! test/jdk/jdk/classfile/SignaturesTest.java Changeset: 07f5b762 Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-05-29 08:31:17 +0000 URL: https://git.openjdk.org/leyden/commit/07f5b762a09e4fe9f7ba71368593f6dfa0ff8f6e 8352738: Implement JEP 520: JFR Method Timing and Tracing Co-authored-by: Markus Gr?nlund Reviewed-by: shade, mgronlun ! src/hotspot/share/classfile/modules.hpp + src/hotspot/share/jfr/instrumentation/jfrClassTransformer.cpp + src/hotspot/share/jfr/instrumentation/jfrClassTransformer.hpp ! src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp ! src/hotspot/share/jfr/instrumentation/jfrJvmtiAgent.cpp ! src/hotspot/share/jfr/instrumentation/jfrJvmtiAgent.hpp ! src/hotspot/share/jfr/jfr.cpp ! src/hotspot/share/jfr/jfr.hpp ! src/hotspot/share/jfr/jni/jfrJavaSupport.cpp ! src/hotspot/share/jfr/jni/jfrJavaSupport.hpp ! src/hotspot/share/jfr/jni/jfrJniMethod.cpp ! src/hotspot/share/jfr/jni/jfrJniMethod.hpp ! src/hotspot/share/jfr/jni/jfrJniMethodRegistration.cpp ! src/hotspot/share/jfr/jni/jfrUpcalls.cpp ! src/hotspot/share/jfr/jni/jfrUpcalls.hpp ! src/hotspot/share/jfr/metadata/metadata.xml ! src/hotspot/share/jfr/periodic/jfrPeriodic.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdEpoch.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdEpoch.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdLoadBarrier.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdLoadBarrier.inline.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdMacros.hpp + src/hotspot/share/jfr/support/jfrAnnotationElementIterator.cpp + src/hotspot/share/jfr/support/jfrAnnotationElementIterator.hpp + src/hotspot/share/jfr/support/jfrAnnotationIterator.cpp + src/hotspot/share/jfr/support/jfrAnnotationIterator.hpp ! src/hotspot/share/jfr/support/jfrKlassExtension.hpp + src/hotspot/share/jfr/support/methodtracer/jfrClassFilterClosure.cpp + src/hotspot/share/jfr/support/methodtracer/jfrClassFilterClosure.hpp + src/hotspot/share/jfr/support/methodtracer/jfrFilter.cpp + src/hotspot/share/jfr/support/methodtracer/jfrFilter.hpp + src/hotspot/share/jfr/support/methodtracer/jfrFilterManager.cpp + src/hotspot/share/jfr/support/methodtracer/jfrFilterManager.hpp + src/hotspot/share/jfr/support/methodtracer/jfrInstrumentedClass.hpp + src/hotspot/share/jfr/support/methodtracer/jfrMethodProcessor.cpp + src/hotspot/share/jfr/support/methodtracer/jfrMethodProcessor.hpp + src/hotspot/share/jfr/support/methodtracer/jfrMethodTracer.cpp + src/hotspot/share/jfr/support/methodtracer/jfrMethodTracer.hpp + src/hotspot/share/jfr/support/methodtracer/jfrTraceTagging.cpp + src/hotspot/share/jfr/support/methodtracer/jfrTraceTagging.hpp + src/hotspot/share/jfr/support/methodtracer/jfrTracedMethod.cpp + src/hotspot/share/jfr/support/methodtracer/jfrTracedMethod.hpp ! src/hotspot/share/jfr/utilities/jfrLogTagSets.hpp ! src/hotspot/share/jfr/utilities/jfrRelation.hpp ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp + src/jdk.jfr/share/classes/jdk/jfr/events/MethodTimingEvent.java + src/jdk.jfr/share/classes/jdk/jfr/events/MethodTraceEvent.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventControl.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/JDKEvents.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/JVM.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/JVMUpcalls.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/LogTag.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataRepository.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformEventType.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformRecorder.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformRecording.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/SecuritySupport.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/ShutdownHook.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/query/Field.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/query/FieldFormatter.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/query/QueryParser.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini + src/jdk.jfr/share/classes/jdk/jfr/internal/settings/FilterSetting.java + src/jdk.jfr/share/classes/jdk/jfr/internal/settings/MethodSetting.java + src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/ExcludeList.java + src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/Filter.java + src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/Instrumentation.java + src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/Method.java + src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/Modification.java + src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/PlatformTracer.java + src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/TimedClass.java + src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/TimedMethod.java + src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/Transform.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/util/Bytecode.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/util/ValueFormatter.java ! src/jdk.jfr/share/classes/jdk/jfr/package-info.java + src/jdk.jfr/share/classes/jdk/jfr/tracing/MethodTracer.java ! src/jdk.jfr/share/conf/jfr/default.jfc ! src/jdk.jfr/share/conf/jfr/profile.jfc ! test/jdk/jdk/jfr/api/settings/TestSettingControl.java + test/jdk/jdk/jfr/event/tracing/Apple.java + test/jdk/jdk/jfr/event/tracing/Banana.java + test/jdk/jdk/jfr/event/tracing/Car.java + test/jdk/jdk/jfr/event/tracing/StaticInitializer.java + test/jdk/jdk/jfr/event/tracing/TestClinit.java + test/jdk/jdk/jfr/event/tracing/TestCombinedFilters.java + test/jdk/jdk/jfr/event/tracing/TestFilterClass.java + test/jdk/jdk/jfr/event/tracing/TestFilterClassAnnotation.java + test/jdk/jdk/jfr/event/tracing/TestFilterMethod.java + test/jdk/jdk/jfr/event/tracing/TestFilterMethodAnnotation.java + test/jdk/jdk/jfr/event/tracing/TestInstrumentation.java + test/jdk/jdk/jfr/event/tracing/TestMethodTiming.java + test/jdk/jdk/jfr/event/tracing/TestMethodTrace.java + test/jdk/jdk/jfr/event/tracing/TestMultipleRecordings.java + test/jdk/jdk/jfr/event/tracing/TestMultipleThreads.java + test/jdk/jdk/jfr/event/tracing/TestRestrictedClasses.java + test/jdk/jdk/jfr/event/tracing/TestRetransformFalse.java + test/jdk/jdk/jfr/event/tracing/TestWithClassLoaders.java + test/jdk/jdk/jfr/event/tracing/TestWithModules.java ! test/lib/jdk/test/lib/jfr/EventNames.java ! test/lib/jdk/test/lib/jfr/Events.java Changeset: a2743bab Branch: hermetic-java-runtime Author: Hannes Walln?fer Date: 2025-05-29 09:19:02 +0000 URL: https://git.openjdk.org/leyden/commit/a2743bab4fd203b0791cf47e617c1a95b05ab3cc 8357458: Missing Highlight.js license file Reviewed-by: jlahoda ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java + src/jdk.javadoc/share/legal/highlightjs.md ! test/langtools/jdk/javadoc/doclet/checkLibraryVersions/CheckLibraryVersions.java ! test/langtools/jdk/javadoc/doclet/testLegalNotices/TestLegalNotices.java Changeset: 4cf729cf Branch: hermetic-java-runtime Author: Thomas Stuefe Date: 2025-05-29 10:42:50 +0000 URL: https://git.openjdk.org/leyden/commit/4cf729cfac57c9aec692a52c1f3f95f2403e7958 8323497: On x64, use 32-bit immediate moves for narrow klass base if possible Reviewed-by: shade, kvn, rkennke ! src/hotspot/cpu/x86/compressedKlass_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/share/oops/compressedKlass.cpp ! src/hotspot/share/oops/compressedKlass.hpp ! test/hotspot/jtreg/runtime/CompressedOops/CompressedCPUSpecificClassSpaceReservation.java Changeset: d8a78302 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-05-29 15:06:51 +0000 URL: https://git.openjdk.org/leyden/commit/d8a783020d247d2c01834db14b44d239ad1f2bf4 8357999: SA: FileMapInfo.metadataTypeArray initialization issue after JDK-8355003 Reviewed-by: ayang, iklam, kvn, sspitsyn ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/FileMapInfo.java Changeset: 79aff26c Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2025-05-29 15:20:39 +0000 URL: https://git.openjdk.org/leyden/commit/79aff26c2880922b92863911d8a5a035ba9a1e75 8354724: Methods in java.io.Reader to read all characters and all lines Reviewed-by: rriggs, smarks, jpai, alanb ! src/java.base/share/classes/java/io/Reader.java + test/jdk/java/io/Reader/ReadAll.java Changeset: f3188682 Branch: hermetic-java-runtime Author: Justin Lu Date: 2025-05-29 17:01:28 +0000 URL: https://git.openjdk.org/leyden/commit/f318868268f32934a2f0c4e26a6c75360d8e74b1 8348328: Update IANA Language Subtag Registry to Version 2025-05-15 Reviewed-by: iris, naoto ! src/java.base/share/data/lsrdata/language-subtag-registry.txt ! test/jdk/java/util/Locale/LanguageSubtagRegistryTest.java Changeset: e3063678 Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-05-29 17:06:42 +0000 URL: https://git.openjdk.org/leyden/commit/e306367813db7c8a3ecac5e46740600b7ab04f9d 8357693: AOTCodeCompressedOopsTest.java failed with -XX:+UseLargePages Reviewed-by: kvn, shade ! src/hotspot/share/cds/filemap.cpp Changeset: e509997f Branch: hermetic-java-runtime Author: Justin Lu Date: 2025-05-29 17:39:08 +0000 URL: https://git.openjdk.org/leyden/commit/e509997fe87a09513b8f79d303cc69392d2cb7b0 8357275: Locale.Builder.setLanguageTag should mention conversions made on language tag Reviewed-by: naoto ! src/java.base/share/classes/java/util/Locale.java Changeset: d922e318 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2025-05-29 20:09:01 +0000 URL: https://git.openjdk.org/leyden/commit/d922e318bc2104d69c46403bceb609d538f3259a 8349400: Improve startup speed via eliminating nested classes Reviewed-by: valeriep, rriggs ! src/java.base/share/classes/sun/security/util/KnownOIDs.java Changeset: 727412d1 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2025-05-29 20:09:58 +0000 URL: https://git.openjdk.org/leyden/commit/727412d1b5f0764363ebd2ff600d4b7f0c99bb9b 8357690: Add @Stable and final to java.lang.CharacterDataLatin1 and other CharacterData classes Reviewed-by: naoto ! make/jdk/src/classes/build/tools/generatecharacter/GenerateCharacter.java ! src/java.base/share/classes/java/lang/CharacterData.java ! src/java.base/share/classes/java/lang/CharacterData00.java.template ! src/java.base/share/classes/java/lang/CharacterData01.java.template ! src/java.base/share/classes/java/lang/CharacterData02.java.template ! src/java.base/share/classes/java/lang/CharacterData03.java.template ! src/java.base/share/classes/java/lang/CharacterData0E.java.template ! src/java.base/share/classes/java/lang/CharacterDataLatin1.java.template ! src/java.base/share/classes/java/lang/CharacterDataPrivateUse.java ! src/java.base/share/classes/java/lang/CharacterDataUndefined.java Changeset: cb8eea4e Branch: hermetic-java-runtime Author: Boris Ulasevich Date: 2025-05-29 21:29:35 +0000 URL: https://git.openjdk.org/leyden/commit/cb8eea4ecd12669e361baac8bb6e71cde7937812 8356095: AArch64: Obsolete -XX:+NearCPool option Reviewed-by: aph ! src/hotspot/cpu/aarch64/globals_aarch64.hpp ! src/hotspot/share/runtime/arguments.cpp Changeset: 648c337b Branch: hermetic-java-runtime Author: Dean Long Date: 2025-05-29 21:41:49 +0000 URL: https://git.openjdk.org/leyden/commit/648c337bea5ec65908cab02eaf232243ccf2d4bf 8356648: runtime/Thread/AsyncExceptionTest.java fails with +StressCompiledExceptionHandlers Reviewed-by: thartmann, kvn ! src/hotspot/share/c1/c1_Runtime1.cpp ! test/hotspot/jtreg/runtime/Thread/AsyncExceptionTest.java Changeset: a05f9dea Branch: hermetic-java-runtime Author: Alexey Semenyuk Date: 2025-05-29 21:44:47 +0000 URL: https://git.openjdk.org/leyden/commit/a05f9dea18ec812abad1dbe0084c0c58384a9076 8358017: Various enhancements of jpackage test helpers Reviewed-by: almatvee ! test/jdk/tools/jpackage/helpers-test/jdk/jpackage/test/AnnotationsTest.java ! test/jdk/tools/jpackage/helpers-test/jdk/jpackage/test/JUnitAdapter.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/FileAssociations.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/HelloApp.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JavaTool.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacSign.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacSignVerify.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/RunnablePackageTest.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TestBuilder.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TestInstance.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TestMethodSupplier.java Changeset: 64503c78 Branch: hermetic-java-runtime Author: Prasanta Sadhukhan Date: 2025-05-30 02:06:56 +0000 URL: https://git.openjdk.org/leyden/commit/64503c784bbddc638ce0098f5c6ef0cb81cbf938 8357299: Graphics copyArea doesn't copy any pixels when there is overflow Reviewed-by: achung, kizune, prr ! src/java.desktop/share/native/libawt/java2d/loops/Blit.c + test/jdk/java/awt/Graphics/BrokenBoundsClip.java Changeset: fd51b039 Branch: hermetic-java-runtime Author: Alexander Matveev Date: 2025-05-30 03:07:04 +0000 URL: https://git.openjdk.org/leyden/commit/fd51b03910ba90ca1c46a4204b8940421338e22e 8351369: [macos] Use --install-dir option with DMG packaging Reviewed-by: asemenyuk ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacDmgPackageBuilder.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacDmgPackager.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/DMGsetup.scpt ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources.properties ! test/jdk/tools/jpackage/share/InstallDirTest.java Changeset: 20005511 Branch: hermetic-java-runtime Author: Amit Kumar Date: 2025-05-30 03:50:43 +0000 URL: https://git.openjdk.org/leyden/commit/20005511e3612d6a5f12fa83066f02c88c628e8b 8353500: [s390x] Intrinsify Unsafe::setMemory Reviewed-by: lucy, mdoerr ! src/hotspot/cpu/s390/stubGenerator_s390.cpp Changeset: 6f9e1175 Branch: hermetic-java-runtime Author: Daniel Skantz Date: 2025-05-30 06:23:11 +0000 URL: https://git.openjdk.org/leyden/commit/6f9e1175a983c735c1beed755ec5b14b476858d7 8356246: C2: Compilation fails with "assert(bol->is_Bool()) failed: unexpected if shape" in StringConcat::eliminate_unneeded_control Reviewed-by: rcastanedalo, kvn ! src/hotspot/share/opto/stringopts.cpp + test/hotspot/jtreg/compiler/stringopts/TestStackedConcatsSharedTest.java Changeset: e33eeeea Branch: hermetic-java-runtime Author: Abhishek Kumar Date: 2025-05-30 06:25:08 +0000 URL: https://git.openjdk.org/leyden/commit/e33eeeea04fc7899bf66b0a2fdaccc30060854b4 8341311: [Accessibility,macOS,VoiceOver] VoiceOver announces incorrect number of items in submenu of JPopupMenu Reviewed-by: asemenov, kizune ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CAccessibility.java ! src/java.desktop/macosx/native/libawt_lwawt/awt/a11y/MenuAccessibility.m + test/jdk/javax/accessibility/TestPopupMenuChildCount.java Changeset: 566e3b21 Branch: hermetic-java-runtime Author: nibjen Committer: Sean Coffey Date: 2025-05-30 09:22:16 +0000 URL: https://git.openjdk.org/leyden/commit/566e3b21ed14748cb0d9117b6bd58b4bfcf625c6 8357253: Test test/jdk/sun/security/ssl/SSLSessionImpl/ResumeClientTLS12withSNI.java writes in src dir Reviewed-by: coffeys ! test/jdk/sun/security/ssl/SSLSessionImpl/ResumeClientTLS12withSNI.java Changeset: a0eb1900 Branch: hermetic-java-runtime Author: Qizheng Xing Committer: Joel Sikstr?m Date: 2025-05-30 09:41:08 +0000 URL: https://git.openjdk.org/leyden/commit/a0eb1900c91531db26d1086a3b251bce0cf7c141 8358104: Fix ZGC compilation error on GCC 10.2 Reviewed-by: kbarrett, jsikstro ! src/hotspot/share/gc/z/zMappedCache.cpp Changeset: acd64ba2 Branch: hermetic-java-runtime Author: Anjian Wen Committer: Feilong Jiang Date: 2025-05-30 10:56:37 +0000 URL: https://git.openjdk.org/leyden/commit/acd64ba24afd508689803adaa6714a784946979c 8357626: RISC-V: Tighten up template interpreter method entry code Reviewed-by: fyang, fjiang ! src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp Changeset: 12ee80ca Branch: hermetic-java-runtime Author: Alexey Ivanov Date: 2025-05-30 13:31:35 +0000 URL: https://git.openjdk.org/leyden/commit/12ee80cac754c1a6dd37191a9f80c01de8b659ad 8357675: Amend headless message Reviewed-by: prr, shade ! src/java.desktop/unix/classes/sun/awt/PlatformGraphicsInfo.java Changeset: ae3d96a4 Branch: hermetic-java-runtime Author: Thomas Stuefe Date: 2025-05-30 13:40:25 +0000 URL: https://git.openjdk.org/leyden/commit/ae3d96a4ec87262bc2f01d87fe91daa5d0d3966f 8357683: (process) SIGQUIT still blocked after JDK-8234262 with jdk.lang.Process.launchMechanism=FORK or VFORK Reviewed-by: rriggs ! src/java.base/unix/native/jspawnhelper/jspawnhelper.c ! src/java.base/unix/native/libjava/childproc.c ! test/jdk/java/lang/ProcessBuilder/UnblockSignals.java Changeset: 26275a10 Branch: hermetic-java-runtime Author: Archie Cobbs Date: 2025-05-30 14:42:36 +0000 URL: https://git.openjdk.org/leyden/commit/26275a10b2aa75f0d4ff49248a3309f9d7b19bf3 8355753: @SuppressWarnings("this-escape") not respected for indirect leak via field Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ThisEscapeAnalyzer.java ! test/langtools/tools/javac/warnings/ThisEscape.java ! test/langtools/tools/javac/warnings/ThisEscape.out Changeset: 99048c3d Branch: hermetic-java-runtime Author: Artur Barashev Date: 2025-05-30 16:03:13 +0000 URL: https://git.openjdk.org/leyden/commit/99048c3d4a66be9bf586949bd08e33cb091fa6bf 8357033: Reduce stateless session ticket size Reviewed-by: wetmore, djelinski, ascarpino ! src/java.base/share/classes/sun/security/ssl/PreSharedKeyExtension.java ! src/java.base/share/classes/sun/security/ssl/SSLSessionImpl.java ! src/java.base/share/classes/sun/security/ssl/SessionTicketExtension.java ! test/jdk/sun/security/ssl/SSLSessionImpl/ResumeChecksServer.java ! test/jdk/sun/security/ssl/SSLSessionImpl/ResumeChecksServerStateless.java Changeset: 81464cd1 Branch: hermetic-java-runtime Author: Justin Lu Date: 2025-05-30 17:13:04 +0000 URL: https://git.openjdk.org/leyden/commit/81464cd1141ebdf0cdde22e7388b97224d810f4a 8358089: Remove the GenerateKeyList.java test tool Reviewed-by: naoto - test/jdk/java/util/Locale/GenerateKeyList.java Changeset: eaf7815e Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-05-30 17:22:51 +0000 URL: https://git.openjdk.org/leyden/commit/eaf7815ea6854de603a1b5c179799a9ef5d37f42 8357886: Remove TimeZoneNames_* of the COMPAT locale data provider Reviewed-by: joehw, jlu - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_de.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_en_CA.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_en_GB.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_en_IE.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_es.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_fr.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_hi.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_it.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ja.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ko.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_pt_BR.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_sv.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_CN.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_HK.java - src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_TW.java Changeset: 4fa4f151 Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-05-30 17:23:52 +0000 URL: https://git.openjdk.org/leyden/commit/4fa4f15122213afea5cb25166c3b36a1c395b06c 8357882: Use UTF-8 encoded data in LocaleDataTest Reviewed-by: jlu, joehw ! test/jdk/sun/text/resources/LocaleData.cldr ! test/jdk/sun/text/resources/LocaleDataTest.java Changeset: 3cc63098 Branch: hermetic-java-runtime Author: Chris Plummer Date: 2025-05-30 17:36:03 +0000 URL: https://git.openjdk.org/leyden/commit/3cc630985d47be6ba4cf991698e999f17dbde203 8353955: nsk/jdi tests should be fixed to not always require includevirtualthreads=y Reviewed-by: sspitsyn, amenkov, lmesnik ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassPrepareEvent/thread/thread001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod011/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod012/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod013/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/Event/request/request001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventIterator/nextEvent/nextevent001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequestManager/createStepRequest/crstepreq005/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequestManager/createStepRequest/crstepreq006/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequestManager/createStepRequest/crstepreq007/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequestManager/createStepRequest/crstepreq008/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequestManager/createStepRequest/crstepreq009/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequestManager/createStepRequest/crstepreq010/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequestManager/stepRequests/stepreq001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/LocatableEvent/thread/thread001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod010/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod011/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod012/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod013/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadStartEvent/thread/thread001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/VirtualMachine/allThreads/allthreads001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/share/ArgumentParser.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jdi/Binder.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jdi/SerialExecutionDebugger.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jpda/DebugeeArgumentHandler.java Changeset: 82807d43 Branch: hermetic-java-runtime Author: Chris Plummer Date: 2025-05-30 17:58:46 +0000 URL: https://git.openjdk.org/leyden/commit/82807d43f8d18b186428be88a80ebe28892517cc 8357184: Test vmTestbase/nsk/jdi/ExceptionEvent/_itself_/exevent008/TestDescription.java fails with unreported exception Reviewed-by: lmesnik, sspitsyn ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ExceptionEvent/_itself_/exevent008.java Changeset: b7ca672d Branch: hermetic-java-runtime Author: Ashutosh Mehra Date: 2025-05-30 18:26:19 +0000 URL: https://git.openjdk.org/leyden/commit/b7ca672d5c5f11f472110154868f08299f6e8796 8357047: [ubsan] AdapterFingerPrint::AdapterFingerPrint runtime error: index 3 out of bounds Reviewed-by: kvn, adinn ! src/hotspot/share/runtime/sharedRuntime.cpp Changeset: 94039e22 Branch: hermetic-java-runtime Author: Daniel Gredler Committer: Harshitha Onkar Date: 2025-05-30 19:16:17 +0000 URL: https://git.openjdk.org/leyden/commit/94039e22bbe943888e858d8ae278145e2668526a 8353230: Emoji rendering regression after JDK-8208377 Reviewed-by: prr, honkar ! src/java.desktop/macosx/classes/sun/font/CCharToGlyphMapper.java ! src/java.desktop/share/classes/sun/font/CMap.java ! src/java.desktop/share/classes/sun/font/CharToGlyphMapper.java ! src/java.desktop/share/classes/sun/font/CompositeGlyphMapper.java ! src/java.desktop/share/classes/sun/font/Font2D.java ! src/java.desktop/share/classes/sun/font/FontUtilities.java ! src/java.desktop/share/classes/sun/font/HBShaper.java ! src/java.desktop/share/classes/sun/font/TrueTypeGlyphMapper.java ! src/java.desktop/share/classes/sun/font/Type1GlyphMapper.java ! src/java.desktop/share/classes/sun/print/RasterPrinterJob.java ! src/java.desktop/share/native/libfontmanager/sunFont.c ! src/java.desktop/unix/classes/sun/font/NativeGlyphMapper.java + test/jdk/java/awt/font/GlyphVector/GlyphVectorGsubTest.java Changeset: c9d6e012 Branch: hermetic-java-runtime Author: Anthony Scarpino Date: 2025-05-30 20:13:00 +0000 URL: https://git.openjdk.org/leyden/commit/c9d6e01233fbc9f3a95a4879feff906748649c54 8358076: KeyFactory.getInstance("EdDSA").generatePublic(null) throws NPE Reviewed-by: weijun ! src/java.base/share/classes/sun/security/ec/ECKeyFactory.java ! src/java.base/share/classes/sun/security/ec/XDHKeyFactory.java ! src/java.base/share/classes/sun/security/ec/ed/EdDSAKeyFactory.java ! src/java.base/share/classes/sun/security/rsa/RSAKeyFactory.java Changeset: 14e41ab0 Branch: hermetic-java-runtime Author: Chris Plummer Date: 2025-05-30 20:14:14 +0000 URL: https://git.openjdk.org/leyden/commit/14e41ab055955ffd7cf9e8129cc3269b4e3807b7 8357172: Extend try block in nsk/jdi tests to capture exceptions thrown by Debuggee.classByName() Reviewed-by: lmesnik, sspitsyn ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod009.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod010.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod014.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassType/newInstance/newinstance009.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod002.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod003.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod004.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod005.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod006.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod007.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod008.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod009.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod014.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue002.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue003.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue004.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue005.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/StackFrame/setValue/setvalue005/setvalue005.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/ownedMonitors/ownedmonitors002.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes006.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes007.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/stop/stop002.java Changeset: abbffc01 Branch: hermetic-java-runtime Author: Alex Menkov Date: 2025-05-30 21:00:34 +0000 URL: https://git.openjdk.org/leyden/commit/abbffc0103826a2e02fe52ef9b55890a57944933 8358202: ProblemList vmTestbase/nsk/jvmti/AttachOnDemand/attach045/TestDescription.java Reviewed-by: sspitsyn, cjplummer ! test/hotspot/jtreg/ProblemList.txt Changeset: 09301c1d Branch: hermetic-java-runtime Author: Ian Graves Date: 2025-05-30 21:11:38 +0000 URL: https://git.openjdk.org/leyden/commit/09301c1dc03a44e5c56a91303de81ba01dabfe71 8356634: VectorShape#largestShapeFor should have public access Reviewed-by: psandoz ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorShape.java ! test/jdk/jdk/incubator/vector/PreferredSpeciesTest.java Changeset: db340e54 Branch: hermetic-java-runtime Author: Alex Menkov Date: 2025-05-30 21:11:58 +0000 URL: https://git.openjdk.org/leyden/commit/db340e54f83cf7bf72abb94c9cf9cdac007ed38a 8356222: Thread.print command reports waiting on the Class initialization monitor for both carrier and virtual threads Reviewed-by: alanb, sspitsyn ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/vframe.cpp ! src/hotspot/share/runtime/vframe.hpp + test/hotspot/jtreg/serviceability/dcmd/thread/ClassInitMonitorVThread.java Changeset: 0df8c968 Branch: hermetic-java-runtime Author: Mohamed Issa Committer: Sandhya Viswanathan Date: 2025-05-30 21:47:20 +0000 URL: https://git.openjdk.org/leyden/commit/0df8c9684b8782ef830e2bd425217864c3f51784 8353686: Optimize Math.cbrt for x86 64 bit platforms Reviewed-by: sviswanathan, sparasa, jbhateja ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.hpp + src/hotspot/cpu/x86/stubGenerator_x86_64_cbrt.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp ! src/hotspot/share/c1/c1_Compiler.cpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/classfile/vmIntrinsics.cpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/abstractInterpreter.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.cpp ! src/hotspot/share/interpreter/zero/zeroInterpreterGenerator.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.hpp ! src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/runtime/stubDeclarations.hpp ! src/java.base/share/classes/java/lang/Math.java + test/micro/org/openjdk/bench/java/lang/CbrtPerf.java Changeset: 2926435d Branch: hermetic-java-runtime Author: Bradford Wetmore Date: 2025-05-30 23:06:36 +0000 URL: https://git.openjdk.org/leyden/commit/2926435d228f21a227763ff4efcf32e511aa258a 8341346: Add support for exporting TLS Keying Material Reviewed-by: hchao, jnimeh, weijun ! src/java.base/share/classes/com/sun/crypto/provider/TlsPrfGenerator.java ! src/java.base/share/classes/javax/net/ssl/ExtendedSSLSession.java ! src/java.base/share/classes/sun/security/internal/spec/TlsPrfParameterSpec.java ! src/java.base/share/classes/sun/security/ssl/Finished.java ! src/java.base/share/classes/sun/security/ssl/SSLSessionImpl.java ! src/java.base/share/classes/sun/security/ssl/ServerHello.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java + test/jdk/javax/net/ssl/ExtendedSSLSession/ExportKeyingMaterialTests.java Changeset: 5ad02c98 Branch: hermetic-java-runtime Author: Sergey Bylokhov Date: 2025-05-31 00:16:40 +0000 URL: https://git.openjdk.org/leyden/commit/5ad02c98f1d9227bb6abdd37126f2a351d4e1a50 8355004: Apply java.io.Serial annotations in java.compiler Reviewed-by: liach, darcy ! src/java.compiler/share/classes/javax/annotation/processing/FilerException.java ! src/java.compiler/share/classes/javax/lang/model/UnknownEntityException.java ! src/java.compiler/share/classes/javax/lang/model/element/UnknownAnnotationValueException.java ! src/java.compiler/share/classes/javax/lang/model/element/UnknownDirectiveException.java ! src/java.compiler/share/classes/javax/lang/model/element/UnknownElementException.java ! src/java.compiler/share/classes/javax/lang/model/type/MirroredTypeException.java ! src/java.compiler/share/classes/javax/lang/model/type/MirroredTypesException.java ! src/java.compiler/share/classes/javax/lang/model/type/UnknownTypeException.java Changeset: d9d00d33 Branch: hermetic-java-runtime Author: Sergey Bylokhov Date: 2025-05-31 00:26:50 +0000 URL: https://git.openjdk.org/leyden/commit/d9d00d33a6a0d540a10e0a58f6df27cae46d2753 8358107: Rollback JDK-8357299 changeset Reviewed-by: psadhukhan ! src/java.desktop/share/native/libawt/java2d/loops/Blit.c - test/jdk/java/awt/Graphics/BrokenBoundsClip.java Changeset: c67fc735 Branch: hermetic-java-runtime Author: Serguei Spitsyn Date: 2025-05-31 00:40:23 +0000 URL: https://git.openjdk.org/leyden/commit/c67fc735959ddd41a8d1116908ca7bae9b966016 8320189: vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001 memory corruption when using -Xcheck:jni Reviewed-by: lmesnik, amenkov ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001/bi02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t001/bi03t001.cpp ! test/lib/jdk/test/lib/jvmti/jvmti_common.hpp Changeset: c62223a5 Branch: hermetic-java-runtime Author: Ian Graves Date: 2025-05-31 00:41:16 +0000 URL: https://git.openjdk.org/leyden/commit/c62223a5af747bc5cbdd3d970dd994f74aa08834 8358215: ProblemList jdk/incubator/vector/PreferredSpeciesTest.java Reviewed-by: psandoz ! test/jdk/ProblemList.txt Changeset: 061b24d4 Branch: hermetic-java-runtime Author: David Briemann Committer: SendaoYan Date: 2025-05-31 02:47:26 +0000 URL: https://git.openjdk.org/leyden/commit/061b24d4f9d8635944683766532e9252c3ba0152 8357304: [PPC64] C2: Implement MinV, MaxV and Reduction nodes Reviewed-by: mdoerr, varadam ! src/hotspot/cpu/ppc/assembler_ppc.hpp ! src/hotspot/cpu/ppc/assembler_ppc.inline.hpp ! src/hotspot/cpu/ppc/c2_MacroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/c2_MacroAssembler_ppc.hpp ! src/hotspot/cpu/ppc/ppc.ad ! test/hotspot/jtreg/compiler/loopopts/superword/MinMaxRed_Int.java Changeset: 19360a90 Branch: hermetic-java-runtime Author: Chad Rakoczy Committer: SendaoYan Date: 2025-05-31 02:48:33 +0000 URL: https://git.openjdk.org/leyden/commit/19360a904b180f6608c6dcd574c77f78f1880673 8356949: AArch64: Tighten up template interpreter method entry code Reviewed-by: aph, shade ! src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp Changeset: 3a3ea7e1 Branch: hermetic-java-runtime Author: Sergey Bylokhov Date: 2025-05-31 07:06:08 +0000 URL: https://git.openjdk.org/leyden/commit/3a3ea7e17fff100e368c956350bb9aaa2261b8a9 8357598: Toolkit.removeAWTEventListener should handle null listener in AWTEventListenerProxy Reviewed-by: aivanov, dnguyen ! src/java.desktop/share/classes/java/awt/Toolkit.java ! test/jdk/java/awt/Toolkit/AWTEventListenerProxyTest/AWTEventListenerProxyTest.java Changeset: 84002d12 Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2025-05-31 13:02:58 +0000 URL: https://git.openjdk.org/leyden/commit/84002d12ed83c8254422fdda349aa647422d0768 8228773: URLClassLoader constructors should include API note warning that the parent should not be null Reviewed-by: alanb, mullan ! src/java.base/share/classes/java/net/URLClassLoader.java ! src/java.base/share/classes/java/security/SecureClassLoader.java Changeset: a3f9e222 Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2025-05-31 16:31:24 +0000 URL: https://git.openjdk.org/leyden/commit/a3f9e222632d29982ef1463e6c391d5896524705 8358218: Problemlist jdk/incubator/vector/PreferredSpeciesTest.java#id0 Reviewed-by: psandoz ! test/jdk/ProblemList.txt Changeset: fc3d3d9b Branch: hermetic-java-runtime Author: Srinivas Vamsi Parasa Committer: Sandhya Viswanathan Date: 2025-05-31 23:07:55 +0000 URL: https://git.openjdk.org/leyden/commit/fc3d3d9b303652275599e315b2d7e534d92080ea 8351994: Enable Extended EVEX to REX2/REX demotion when src and dst are the same Reviewed-by: sviswanathan, jbhateja, epeter ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp ! src/hotspot/cpu/x86/x86_64.ad ! test/hotspot/gtest/x86/asmtest.out.h ! test/hotspot/gtest/x86/test_assembler_x86.cpp ! test/hotspot/gtest/x86/x86-asmtest.py Changeset: 59dc8499 Branch: hermetic-java-runtime Author: Ashutosh Mehra Date: 2025-06-01 01:04:54 +0000 URL: https://git.openjdk.org/leyden/commit/59dc849909c1edc892c94a27b0340fcf53db3a98 8358230: Incorrect location for the assert for blob != nullptr in CodeBlob::create Reviewed-by: kvn ! src/hotspot/share/code/codeBlob.cpp Changeset: 470ffeed Branch: hermetic-java-runtime Author: Mikhail Yankelevich Committer: Jaikiran Pai Date: 2025-06-01 03:50:39 +0000 URL: https://git.openjdk.org/leyden/commit/470ffeedda45b6f75ce0c794a965428b7859be6f 8230016: re-visit test sun/security/pkcs11/Serialize/SerializeProvider.java Reviewed-by: rhalade ! test/jdk/sun/security/pkcs11/Serialize/SerializeProvider.java Changeset: e3eb089d Branch: hermetic-java-runtime Author: Vladimir Kozlov Date: 2025-06-01 03:57:28 +0000 URL: https://git.openjdk.org/leyden/commit/e3eb089d47d62ae6feeba3dc6b3752a025e27bed 8357175: Failure to generate or load AOT code should be handled gracefully Reviewed-by: iveresov, asmehra ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/aotCodeCache.hpp Changeset: ac9af69e Branch: hermetic-java-runtime Author: Alan Bateman Date: 2025-06-01 06:17:50 +0000 URL: https://git.openjdk.org/leyden/commit/ac9af69eee9636ff98c2b60224964e518aebb421 8357637: Native resources cached in thread locals not released when FJP common pool threads clears thread locals Reviewed-by: vklang ! src/java.base/share/classes/java/lang/InheritableThreadLocal.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/lang/Thread.java ! src/java.base/share/classes/java/lang/ThreadLocal.java ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java ! src/java.base/share/classes/jdk/internal/misc/CarrierThreadLocal.java ! src/java.base/share/classes/jdk/internal/misc/TerminatingThreadLocal.java ! src/java.base/share/classes/sun/nio/ch/IOVecWrapper.java ! test/jdk/jdk/internal/misc/TerminatingThreadLocal/TestTerminatingThreadLocal.java Changeset: c1b5f62a Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2025-06-01 09:06:04 +0000 URL: https://git.openjdk.org/leyden/commit/c1b5f62a8c30038d3b1a14d184535ba0642d51c9 8358136: Make langtools/jdk/javadoc/doclet/testLinkOption/TestRedirectLinks.java intermittent Reviewed-by: jpai, nbenalla, syan ! test/langtools/jdk/javadoc/doclet/testLinkOption/TestRedirectLinks.java Changeset: 85e36d79 Branch: hermetic-java-runtime Author: Igor Veresov Date: 2025-06-01 21:21:27 +0000 URL: https://git.openjdk.org/leyden/commit/85e36d79246913abb8b85c2be719670655d619ab 8358236: [AOT] Graal crashes when trying to use persisted MDOs Reviewed-by: kvn ! src/hotspot/share/oops/methodData.cpp Changeset: 3193a28c Branch: hermetic-java-runtime Author: David Holmes Date: 2025-06-01 23:36:25 +0000 URL: https://git.openjdk.org/leyden/commit/3193a28c532d8536d621c99bb661304c49ca13e1 8358259: ProblemList compiler/startup/StartupOutput.java on Windows Reviewed-by: darcy ! test/hotspot/jtreg/ProblemList.txt Changeset: 90d6ad01 Branch: hermetic-java-runtime Author: Prasanta Sadhukhan Date: 2025-06-02 02:06:06 +0000 URL: https://git.openjdk.org/leyden/commit/90d6ad015714b81064dd16d0e64f1b774e68d4f3 8356594: JSplitPane loses divider location when reopened via JOptionPane.createDialog() Reviewed-by: kizune ! src/java.desktop/share/classes/javax/swing/JSplitPane.java + test/jdk/javax/swing/JSplitPane/TestSplitPaneResetDividerLoc.java Changeset: c5a1543e Branch: hermetic-java-runtime Author: Robbin Ehn Date: 2025-06-02 05:43:20 +0000 URL: https://git.openjdk.org/leyden/commit/c5a1543ee3e68775f09ca29fb07efd9aebfdb33e 8357968: RISC-V: Interpreter volatile reference stores with G1 are not sequentially consistent Reviewed-by: eosterlund, fbredberg, shade, fyang ! src/hotspot/cpu/riscv/templateTable_riscv.cpp Changeset: 3f59bfd2 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2025-06-02 07:59:10 +0000 URL: https://git.openjdk.org/leyden/commit/3f59bfd2e1b35e10fe736e2fa6886cff74ecd35d 8334759: gc/g1/TestMixedGCLiveThreshold.java fails on Windows with JTREG_TEST_THREAD_FACTORY=Virtual due to extra memory allocation Reviewed-by: ayang, iwalulya ! test/hotspot/jtreg/ProblemList-Virtual.txt ! test/hotspot/jtreg/gc/g1/TestMixedGCLiveThreshold.java Changeset: 64183062 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-02 08:23:06 +0000 URL: https://git.openjdk.org/leyden/commit/6418306211be47063a9b06bad8003dee1d81570c 8357944: Remove unused CollectedHeap::is_maximal_no_gc Reviewed-by: jsikstro, tschatzl ! src/hotspot/share/gc/epsilon/epsilonHeap.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp ! src/hotspot/share/gc/parallel/psOldGen.hpp ! src/hotspot/share/gc/serial/serialHeap.cpp ! src/hotspot/share/gc/serial/serialHeap.hpp ! src/hotspot/share/gc/serial/tenuredGeneration.hpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/z/zCollectedHeap.cpp ! src/hotspot/share/gc/z/zCollectedHeap.hpp Changeset: 40ce05d4 Branch: hermetic-java-runtime Author: Martin Doerr Date: 2025-06-02 08:28:10 +0000 URL: https://git.openjdk.org/leyden/commit/40ce05d4080a9a2b4876c21f83a184f9b8a580a2 8358231: Template interpreter generator crashes with ShouldNotReachHere on some platforms after 8353686 Reviewed-by: shade, amitkumar, mbaesken, kvn ! src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp ! src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp ! src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp Changeset: ba9f44c9 Branch: hermetic-java-runtime Author: Martin Doerr Date: 2025-06-02 08:31:10 +0000 URL: https://git.openjdk.org/leyden/commit/ba9f44c90fe8da2d97d67b6878ac2c0c14e35bd0 8357793: [PPC64] VM crashes with -XX:-UseSIGTRAP -XX:-ImplicitNullChecks Reviewed-by: shade, dbriemann ! src/hotspot/cpu/ppc/methodHandles_ppc.cpp ! src/hotspot/cpu/ppc/templateTable_ppc_64.cpp Changeset: a9e7a74d Branch: hermetic-java-runtime Author: Guoxiong Li Date: 2025-06-02 08:47:36 +0000 URL: https://git.openjdk.org/leyden/commit/a9e7a74d00fe1c8d3179392738bb15d8e3508b3a 8357109: Parallel: Fix typo in YoungedGeneration Reviewed-by: ayang, zgu, tschatzl ! src/hotspot/share/gc/shared/gc_globals.hpp Changeset: eb9badd8 Branch: hermetic-java-runtime Author: Roman Kennke Date: 2025-06-02 08:57:16 +0000 URL: https://git.openjdk.org/leyden/commit/eb9badd8a4ea6dca834525fd49429e2ce771a76c 8358169: Shenandoah/JVMCI: Export GC state constants Reviewed-by: dnsimon, shade ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp Changeset: 612f2c0c Branch: hermetic-java-runtime Author: Martin Doerr Date: 2025-06-02 09:21:31 +0000 URL: https://git.openjdk.org/leyden/commit/612f2c0c0b75466c60d4b54dab6aa793a810c846 8357981: [PPC64] Remove old instructions from VM_Version::determine_features() Reviewed-by: dbriemann, mbaesken ! src/hotspot/cpu/ppc/vm_version_ppc.cpp ! src/hotspot/cpu/ppc/vm_version_ppc.hpp Changeset: 83cb0c6d Branch: hermetic-java-runtime Author: Viktor Klang Date: 2025-06-02 09:22:37 +0000 URL: https://git.openjdk.org/leyden/commit/83cb0c6de5988de526545d0926c2c6ef60efc1c7 8358151: Harden JSR166 Test case testShutdownNow_delayedTasks Reviewed-by: alanb, shade ! test/jdk/java/util/concurrent/tck/ForkJoinPool20Test.java ! test/jdk/java/util/concurrent/tck/ScheduledExecutorSubclassTest.java Changeset: c22af0c2 Branch: hermetic-java-runtime Author: Coleen Phillimore Date: 2025-06-02 11:50:50 +0000 URL: https://git.openjdk.org/leyden/commit/c22af0c29ea89857c5cf57dd127b5c739130b2f1 8358205: Remove unused JFR array allocation code Reviewed-by: kbarrett, mgronlun ! src/hotspot/share/jfr/jni/jfrJavaCall.cpp ! src/hotspot/share/jfr/jni/jfrJavaCall.hpp ! src/hotspot/share/jfr/jni/jfrJavaSupport.cpp ! src/hotspot/share/jfr/jni/jfrJavaSupport.hpp ! src/hotspot/share/memory/oopFactory.cpp Changeset: 83b15da2 Branch: hermetic-java-runtime Author: Erik ?sterlund Date: 2025-06-02 12:26:08 +0000 URL: https://git.openjdk.org/leyden/commit/83b15da2eb3cb6c8937f517c9b75eaa9eeece314 8351997: AArch64: Interpreter volatile reference stores with G1 are not sequentially consistent Reviewed-by: shade, aph, fbredberg ! src/hotspot/cpu/aarch64/templateTable_aarch64.cpp Changeset: b3594c9e Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-02 13:08:41 +0000 URL: https://git.openjdk.org/leyden/commit/b3594c9e5508101a39d10099830f04b0c09ad41f 8357481: Excessive CompileTask wait/notify monitor creation Reviewed-by: vlivanov, kvn ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/compiler/compileTask.cpp ! src/hotspot/share/compiler/compileTask.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp Changeset: a4eb1519 Branch: hermetic-java-runtime Author: Phil Race Date: 2025-06-02 15:24:09 +0000 URL: https://git.openjdk.org/leyden/commit/a4eb15195ceeadf311fe81e622a54f4733b90df2 8357672: Extreme font sizes can cause font substitution Reviewed-by: dmarkov, jdv ! src/java.desktop/share/classes/sun/font/FileFontStrike.java ! src/java.desktop/share/native/libfontmanager/freetypeScaler.c ! test/jdk/java/awt/FontMetrics/ExtremeFontSizeTest.java Changeset: daab7b5c Branch: hermetic-java-runtime Author: Hannes Walln?fer Date: 2025-06-02 15:27:14 +0000 URL: https://git.openjdk.org/leyden/commit/daab7b5ceeb12222bda709e35699e620b98cb74d 8357796: Stylesheet adjustments after JDK-8357452 Reviewed-by: rriggs ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/stylesheet.css Changeset: 1b6ae205 Branch: hermetic-java-runtime Author: Matias Saavedra Silva Date: 2025-06-02 15:29:30 +0000 URL: https://git.openjdk.org/leyden/commit/1b6ae2059b0475ec78559d2d6612f3b6ec68309f 8357576: FieldInfo::_index is not initialized by the constructor Reviewed-by: coleenp, dholmes ! src/hotspot/share/oops/fieldInfo.hpp Changeset: 99a4b22a Branch: hermetic-java-runtime Author: William Kemper Date: 2025-06-02 16:48:16 +0000 URL: https://git.openjdk.org/leyden/commit/99a4b22ae7dc2755df1780cc7d74c5d6e3cd4cd4 8358102: GenShen: Age tables could be seeded with cumulative values Reviewed-by: ysr ! src/hotspot/share/gc/shenandoah/shenandoahEvacTracker.cpp Changeset: ab5de456 Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-06-02 16:50:10 +0000 URL: https://git.openjdk.org/leyden/commit/ab5de45636f0bf96e52c0ae0dcf080f279d9caee 8357991: make bootcycle-images is broken after JDK-8349665 Reviewed-by: erikj ! make/Main.gmk Changeset: 8b6a11f7 Branch: hermetic-java-runtime Author: Calvin Cheung Date: 2025-06-02 16:51:44 +0000 URL: https://git.openjdk.org/leyden/commit/8b6a11f7e05ee0cece798c5ff6646bddbee04900 8352187: Don't start management agent during AOT cache creation Reviewed-by: shade, iklam, kvn ! src/hotspot/share/runtime/threads.cpp + test/hotspot/jtreg/runtime/cds/appcds/aotCache/ManagementAgent.java Changeset: bce2bd24 Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-06-02 16:52:05 +0000 URL: https://git.openjdk.org/leyden/commit/bce2bd24ef64e71d895bbf4d91693b30a285746b 8356308: Assert with -Xlog:class+path when classpath has an empty element Reviewed-by: dholmes, ccheung ! src/hotspot/share/cds/aotClassLocation.cpp ! src/hotspot/share/cds/aotClassLocation.hpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/utilities/classpathStream.cpp ! src/hotspot/share/utilities/classpathStream.hpp ! test/hotspot/jtreg/runtime/cds/appcds/PrintSharedArchiveAndExit.java + test/hotspot/jtreg/runtime/cds/appcds/aotCache/ClassPathLogging.java Changeset: a7671e73 Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-06-02 17:06:45 +0000 URL: https://git.openjdk.org/leyden/commit/a7671e7360ce23df9577110266e66a1c1a790196 8358337: JDK-8357991 was committed with incorrect indentation Reviewed-by: shade ! make/Main.gmk Changeset: ec02a87a Branch: hermetic-java-runtime Author: Alex Menkov Date: 2025-06-02 18:13:24 +0000 URL: https://git.openjdk.org/leyden/commit/ec02a87aeef008f6b2f94001fa33bac66bf24627 8345745: Update mode of the Attach API communication pipe. Reviewed-by: sspitsyn, kevinw ! src/jdk.attach/windows/native/libattach/VirtualMachineImpl.c Changeset: 1373ceb7 Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-02 18:22:35 +0000 URL: https://git.openjdk.org/leyden/commit/1373ceb7f3040a03ae142cfaab0f74894fc6a0a3 8356698: JFR: @Contextual Reviewed-by: mgronlun + src/jdk.jfr/share/classes/jdk/jfr/Contextual.java ! src/jdk.jfr/share/classes/jdk/jfr/events/MethodTraceEvent.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataRepository.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/tool/PrettyWriter.java ! src/jdk.jfr/share/classes/jdk/jfr/snippet-files/Snippets.java + test/jdk/jdk/jfr/tool/TestPrintContextual.java Changeset: 5243f385 Branch: hermetic-java-runtime Author: Chris Plummer Date: 2025-06-02 19:07:29 +0000 URL: https://git.openjdk.org/leyden/commit/5243f3851b0345b874ff51ea3a07e82f73741546 8357924: Remove runtime/ErrorHandling/CreateCoredumpOnCrash.java from problem list for macosx-x64 Reviewed-by: syan, dholmes ! test/hotspot/jtreg/ProblemList.txt Changeset: 86b40f52 Branch: hermetic-java-runtime Author: Jiangli Zhou Date: 2025-06-02 13:11:58 +0000 URL: https://git.openjdk.org/leyden/commit/86b40f52140e42c09761548b92991d60e8977cd9 Merge branch 'master' into hermetic-java-runtime ! make/Main.gmk ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/threads.cpp ! src/java.base/unix/native/libjava/childproc.c ! make/Main.gmk ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/threads.cpp ! src/java.base/unix/native/libjava/childproc.c From shade at openjdk.org Mon Jun 2 21:20:23 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 2 Jun 2025 21:20:23 GMT Subject: RFR: Fix recent merge errors [v2] In-Reply-To: References: Message-ID: > I skipped through current premain-vs-mainline webrev, and noticed a few merge errors. > > `metaspaceShared.cpp` hunks are obvious duplications. I removed the lines that are actually different from mainline. > > ~`compilationPolicy.hpp` hunk is a leftover from AOT Profiling. I remember pointing this out to @veresov during mainline review, and we went into mainline without that extra `notify_all`. We should ditch it in premain too.~ Actually, I see test timeouts when that `notify_all` is removed. Filed [JDK-8358343](https://bugs.openjdk.org/browse/JDK-8358343) to figure it out. Yanked the hunk from this PR. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Put notify_all back ------------- Changes: - all: https://git.openjdk.org/leyden/pull/72/files - new: https://git.openjdk.org/leyden/pull/72/files/0262c563..ac9c2a78 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=72&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=72&range=00-01 Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod Patch: https://git.openjdk.org/leyden/pull/72.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/72/head:pull/72 PR: https://git.openjdk.org/leyden/pull/72 From iveresov at openjdk.org Mon Jun 2 23:00:14 2025 From: iveresov at openjdk.org (Igor Veresov) Date: Mon, 2 Jun 2025 23:00:14 GMT Subject: RFR: Fix recent merge errors [v2] In-Reply-To: References: Message-ID: On Mon, 2 Jun 2025 21:20:23 GMT, Aleksey Shipilev wrote: >> I skipped through current premain-vs-mainline webrev, and noticed a few merge errors. >> >> `metaspaceShared.cpp` hunks are obvious duplications. I removed the lines that are actually different from mainline. >> >> ~`compilationPolicy.hpp` hunk is a leftover from AOT Profiling. I remember pointing this out to @veresov during mainline review, and we went into mainline without that extra `notify_all`. We should ditch it in premain too.~ Actually, I see test timeouts when that `notify_all` is removed. Filed [JDK-8358343](https://bugs.openjdk.org/browse/JDK-8358343) to figure it out. Yanked the hunk from this PR. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Put notify_all back Marked as reviewed by iveresov (Committer). ------------- PR Review: https://git.openjdk.org/leyden/pull/72#pullrequestreview-2890151659 From jianglizhou at google.com Mon Jun 2 23:29:34 2025 From: jianglizhou at google.com (Jiangli Zhou) Date: Mon, 2 Jun 2025 16:29:34 -0700 Subject: Questions about the Hermetic Java project In-Reply-To: <472b8b8a-53ce-4e43-ab20-8b3b7f71fd9d@oracle.com> References: <6a9afe3f-e232-4636-8a2e-6112a6e68cce@oracle.com> <30fbc8de-74f9-483e-a1f4-7ab2f1f26fbd@oracle.com> <105e5e22-cc87-48a0-978c-f2e472277843@oracle.com> <8d5075b2-fcbf-4be2-8510-9619b33aee87@oracle.com> <472b8b8a-53ce-4e43-ab20-8b3b7f71fd9d@oracle.com> Message-ID: On Sun, Jun 1, 2025 at 7:55?PM David Holmes wrote: > > On 31/05/2025 7:20 am, Jiangli Zhou wrote: > > On Thu, May 29, 2025 at 11:54?PM David Holmes wrote: > >> > >> On 30/05/2025 9:26 am, Jiangli Zhou wrote: > >>> > >>> I just thought of one more thing related to the discussion now. Any > >>> concern if the implementation does not ignore JNI_OnLoad_L and etc if > >>> they are defined application's dynamically linked native libraries? Or > >>> that's unspecified behavior and it's up to the implement to decide? > >> > >> For Internal libraries or external? For external you have to follow the > >> spec - if both methods exist you only want to execute one of them. > > > > It's for the external (non-JDK) library that I'm a bit more cautious. > > > > In the existing code in JDK mainline, > > https://github.com/openjdk/jdk/blob/3cc630985d47be6ba4cf991698e999f17dbde203/src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java#L117, > > loadLibrary() first tries to find the built-in library using > > JNI_OnLoad_L symbol (L is the library name). When dlsym is called to > > find the symbol from the main process, any of the already loaded > > shared libraries are also searched, as described by the dlsym man page > > (included related part below). > > > > https://man7.org/linux/man-pages/man3/dlsym.3.html: > > RTLD_DEFAULT > > Find the first occurrence of the desired symbol using the > > default shared object search order. The search will > > include global symbols in the executable and its > > dependencies, as well as symbols in shared objects that > > were dynamically loaded with the RTLD_GLOBAL flag. > > > > I think it would be rare, it is possible to construct such case: > > > > There are user JNI libraries A and B, with B is built as a dependency > > of A. A defines JNI_OnLoad_A and JNI_OnLoad. B defines JNI_OnLoad_B > > and JNI_OnLoad. When A is being loaded using loadLibrary(), > > loadLibrary() tries first to lookup JNI_OnLoad_A, which is not found. > > A is then loaded dynamically, which causes B being loaded implicitly > > as a dependency of A. Later when loadLibrary() is called for B, > > JNI_OnLoad_B would be found and then called. This is an existing > > behavior. I think it's an unspecified behavior and we don't need to > > add any additional checks to prevent JNI_OnLoad_B from being called. > > That sounds like a significant design flaw to me. You can't specify that > JNI_OnLoad_L will only be called if L is statically linked, if the > existence of JNI_OnLoad_L is used to infer that L is statically linked! > I would expect libraries to have both versions of the OnLoad functions > to allow for them being statically or dynamically linked - which the > spec allows for by saying the alternate variant is ignored. But then the > JDK will execute the wrong method if it finds JNI_OnLoad_L in a > dynamically linked library. JNI_OnLoad_L is used to determine if a requested JNI native library is a built-in (statically linked) library. Thus, it can avoid the operation of explicit loading for the shared library, e.g. with dlopen on Linux. JNI_OnLoad_L is expected to provide the same implementation as JNI_OnLoad besides being used as an identifier of a built-in library, IIUC. In the scenario that I described in the previous message, when a JNI shared library is already implicitly loaded as a dependency of another native library, dlopen for explicitly loading the shared library is not necessary. From the implementation point of view, the code seems to have been doing the right thing since JDK 8. I did some search and found https://stackoverflow.com/questions/32302262/does-dlopen-re-load-already-loaded-dependencies-if-so-what-are-the-implication, which point out to the following in POSIX spec (latest https://pubs.opengroup.org/onlinepubs/9799919799/): "Only a single copy of an executable object file shall be brought into the address space, even if dlopen() is invoked multiple times in reference to the executable object file, and even if different pathnames are used to reference the executable object file." Then avoiding calling dlopen for the already loaded native library doesn't cause any undesired side effects. Perhaps we can update the JNI spec to include the "already loaded" JNI native libraries case, in addition to the built-in native libraries, regarding JNI_OnLoad_L. Also clarify the "these functions will be ignored" part in JNI spec for the dynamically linked libraries. "If dynamically linked library defines JNI_OnLoad_L and/or JNI_OnUnload_L functions, these functions will be ignored." Thoughts? Thanks! Jiangli > > David > ----- > > > Thanks, > > Jiangli > > > >> > >> David > >> ----- > >> > >>> Thanks! > >>> Jiangli > >>>> > >>>> David > >>>> > >>>>> Best, > >>>>> Jiangli > >>>>> > >>>>> > >>>>>> > >>>>>> David > >>>>>> ----- > >>>>>> > >>>>>> > >>>>>>> From JNI spec [3]: > >>>>>>> > >>>>>>> - JNI_OnLoad/JNI_OnUnload > >>>>>>> Optional function defined by dynamically linked libraries. > >>>>>>> > >>>>>>> LINKAGE: > >>>>>>> Exported from dynamically linked native libraries that contain > >>>>>>> native method implementations. > >>>>>>> > >>>>>>> - JNI_OnLoad_L > >>>>>>> Mandatory function that must be defined by statically linked libraries . > >>>>>>> > >>>>>>> LINKAGE: > >>>>>>> Exported from statically linked native libraries that contain native > >>>>>>> method implementations. > >>>>>>> > >>>>>>> - JNI_OnUnload_L > >>>>>>> Optional function defined by statically linked libraries. > >>>>>>> > >>>>>>> From JVMTI spec [4]: > >>>>>>> > >>>>>>> An agent L whose image has been combined with the VM is defined as > >>>>>>> statically linked if and only if the agent exports a function called > >>>>>>> Agent_OnLoad_L. > >>>>>>> > >>>>>>> [1]: https://bugs.openjdk.org/browse/JDK-8350450 > >>>>>>> [2]: https://github.com/openjdk/leyden/tree/hermetic-java-runtime > >>>>>>> [3]: https://docs.oracle.com/en/java/javase/21/docs/specs/jni/ > >>>>>>> [4]: https://docs.oracle.com/en/java/javase/24/docs/specs/jvmti.html > >>>>>>> > >>>>>>> Best, > >>>>>>> Jiangli > >>>>>>> > >>>>>>>> > >>>>>>>>> > >>>>>>>>> And finally, on top of all of this, is the question of widening the platform support. To support linux/gcc with objcopy is trivial, but the question about Windows still remain. I have two possible ways forward, one is to check if there is alternative tooling to use (the prime candidate is the clang-ldd), and the other is to try to "fake" a partial linking by concatenating all source code before compiling. This is not ideal, though, for many reasons, and I am not keen on implementing it, not even for testing. And at this point, I have not had time to investigate any of these options much further, since I have been focusing on 1) above. > >>>>>>>>> > >>>>>>>>> A third option is of course to just say that due to toolchain limitations, static linking is not available on Windows. > >>>>>>>> > >>>>>>>> Thank you for taking this on! Potentially we could consider taking the > >>>>>>>> objcopy to localizing hotspot symbols on unix-like platforms, based on > >>>>>>>> https://github.com/openjdk/jdk/pull/17456 discussions. Additional > >>>>>>>> testing is still needed to verify the solution. > >>>>>>>> > >>>>>>>>> > >>>>>>>>> My recommendation is that you keep on working to resolve the (much more thorny) issues of resource access in Hermetic Java in your branch, where you have a prototype static build that works for you. In the meantime, I will make sure that there will be a functioning, stable and robust way of creating static builds in the mainline, that can be regularly tested and not bit-rot, like the static build hacks that has gone in before. > >>>>>>>> > >>>>>>>> Most of the JDK resources are now supported as hermetic jimage > >>>>>>>> (lib/modules) bundled in the > >>>>>>>> https://github.com/openjdk/leyden/tree/hermetic-java-runtime branch. > >>>>>>>> The remaining sound.properties, ct.sym and .jfc files can be handled > >>>>>>>> later. Overally, that part of the work has confirmed the hermetic > >>>>>>>> jimage bundled solution is robust and helps resolve some of the > >>>>>>>> difficult start-up sequence issues observed when the hermetic resource > >>>>>>>> was implemented using JAR file based solution. > >>>>>>>> > >>>>>>>> It might be a good idea to follow up on the static linking discussion > >>>>>>>> in tomorrow's zoom meeting (hope you'll be able to join tomorrow). > >>>>>>>> > >>>>>>>> Thanks! > >>>>>>>> > >>>>>>>> Jiangli > >>>>>>>>> > >>>>>>>>> /Magnus > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> Thanks! > >>>>>>>>> Jiangli > >>>>>>>>> > >>>>>>>>> On Thu, Feb 15, 2024 at 12:01?PM Jiangli Zhou wrote: > >>>>>>>>>> > >>>>>>>>>> On Wed, Feb 14, 2024 at 5:07?PM Jiangli Zhou wrote: > >>>>>>>>>>> > >>>>>>>>>>> Hi Magnus, > >>>>>>>>>>> > >>>>>>>>>>> Thanks for looking into this from the build perspective. > >>>>>>>>>>> > >>>>>>>>>>> On Wed, Feb 14, 2024 at 1:00?AM Magnus Ihse Bursie > >>>>>>>>>>> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>> First some background for build-dev: I have spent some time looking at > >>>>>>>>>>>> the build implications of the Hermetic Java effort, which is part of > >>>>>>>>>>>> Project Leyden. A high-level overview is available here: > >>>>>>>>>>>> https://cr.openjdk.org/~jiangli/hermetic_java.pdf and the current source > >>>>>>>>>>>> code is here: https://github.com/openjdk/leyden/tree/hermetic-java-runtime. > >>>>>>>>>>> > >>>>>>>>>>> Some additional hermetic Java related references that are also useful: > >>>>>>>>>>> > >>>>>>>>>>> - https://bugs.openjdk.org/browse/JDK-8303796 is an umbrella bug that > >>>>>>>>>>> links to the issues for resolving static linking issues so far > >>>>>>>>>>> - https://github.com/openjdk/jdk21/pull/26 is the enhancement for > >>>>>>>>>>> building the complete set of static libraries in JDK/VM, particularly > >>>>>>>>>>> including libjvm.a > >>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> Hermetic Java faces several challenges, but the part that is relevant > >>>>>>>>>>>> for the build system is the ability to create static libraries. We've > >>>>>>>>>>>> had this functionality (in three different ways...) for some time, but > >>>>>>>>>>>> it is rather badly implemented. > >>>>>>>>>>>> > >>>>>>>>>>>> As a result of my investigations, I have a bunch of questions. :-) I > >>>>>>>>>>>> have gotten some answers in private discussion, but for the sake of > >>>>>>>>>>>> transparency I will repeat them here, to foster an open dialogue. > >>>>>>>>>>>> > >>>>>>>>>>>> 1. Am I correct in understanding that the ultimate goal of this exercise > >>>>>>>>>>>> is to be able to have jmods which include static libraries (*.a) of the > >>>>>>>>>>>> native code which the module uses, and that the user can then run a > >>>>>>>>>>>> special jlink command to have this linked into a single executable > >>>>>>>>>>>> binary (which also bundles the *.class files and any additional > >>>>>>>>>>>> resources needed)? > >>>>>>>>>>>> > >>>>>>>>>>>> 2. If so, is the idea to create special kinds of static jmods, like > >>>>>>>>>>>> java.base-static.jmod, that contains *.a files instead of lib*.so files? > >>>>>>>>>>>> Or is the idea that the normal jmod should contain both? > >>>>>>>>>>>> > >>>>>>>>>>>> 3. Linking .o and .a files into an executable is a formidable task. Is > >>>>>>>>>>>> the intention to have jlink call a system-provided ld, or to bundle ld > >>>>>>>>>>>> with jlink, or to reimplement this functionality in Java? > >>>>>>>>>>> > >>>>>>>>>>> I have a similar view as Alan responded in your other email thread. > >>>>>>>>>>> Things are still in the early stage for the general solution. > >>>>>>>>>>> > >>>>>>>>>>> In the https://github.com/openjdk/leyden/tree/hermetic-java-runtime > >>>>>>>>>>> branch, when configuring JDK with --with-static-java=yes, the JDK > >>>>>>>>>>> binary contains the following extra artifacts: > >>>>>>>>>>> > >>>>>>>>>>> - static-libs/*.a: The complete set of JDK/VM static libraries > >>>>>>>>>>> - jdk/bin/javastatic: A demo Java launcher fully statically linked > >>>>>>>>>>> with the selected JDK .a libraries (e.g. it currently statically link > >>>>>>>>>>> with the headless) and libjvm.a. It's the standard Java launcher > >>>>>>>>>>> without additional work for hermetic Java. > >>>>>>>>>>> > >>>>>>>>>>> In our prototype for hermetic Java, we build the hermetic executable > >>>>>>>>>>> image (a single image) from the following input (see description on > >>>>>>>>>>> singlejar packaging tool in > >>>>>>>>>>> https://cr.openjdk.org/~jiangli/hermetic_java.pdf): > >>>>>>>>>>> > >>>>>>>>>>> - A customized launcher (with additional work for hermetic) executable > >>>>>>>>>>> fully statically linked with JDK/VM static libraries (.a files), > >>>>>>>>>>> application natives and dependencies (e.g. in .a static libraries) > >>>>>>>>>>> - JDK lib/modules, JDK resource files > >>>>>>>>>>> - Application classes and resource files > >>>>>>>>>>> > >>>>>>>>>>> Including a JDK library .a into the corresponding .jmod would require > >>>>>>>>>>> extracting the .a for linking with the executable. In some systems > >>>>>>>>>>> that may cause memory overhead due to the extracted copy of the .a > >>>>>>>>>>> files. I think we should consider the memory overhead issue. > >>>>>>>>>>> > >>>>>>>>>>> One possibility (as Alan described in his response) is for jlink to > >>>>>>>>>>> invoke the ld on the build system. jlink could pass the needed JDK > >>>>>>>>>>> static libraries and libjvm.a (provided as part of the JDK binary) to > >>>>>>>>>>> ld based on the modules required for the application. > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> I gave a bit more thoughts on this one. For jlink to trigger ld, it > >>>>>>>>>> would need to know the complete linker options and inputs. Those > >>>>>>>>>> include options and inputs related to the application part as well. In > >>>>>>>>>> some usages, it might be easier to handle native linking separately > >>>>>>>>>> and pass the linker output, the executable to jlink directly. Maybe we > >>>>>>>>>> could consider supporting different modes for various usages > >>>>>>>>>> requirements, from static libraries and native linking point of view: > >>>>>>>>>> > >>>>>>>>>> Mode #1 > >>>>>>>>>> Support .jmod packaged natives static libraries, for both JDK/VM .a > >>>>>>>>>> and application natives and dependencies. If the inputs to jlink > >>>>>>>>>> include .jmods, jlink can extract the .a libraries and pass the > >>>>>>>>>> information to ld to link the executable. > >>>>>>>>>> > >>>>>>>>>> Mode #2 > >>>>>>>>>> Support separate .a as jlink input. Jlink could pass the path > >>>>>>>>>> information to the .a libraries and other linker options to ld to > >>>>>>>>>> create the executable. > >>>>>>>>>> > >>>>>>>>>> For both mode #1 and #2, jlink would then use the linker output > >>>>>>>>>> executable to create the final hermetic image. > >>>>>>>>>> > >>>>>>>>>> Mode #3 > >>>>>>>>>> Support a fully linked executable as a jlink input. When a linked > >>>>>>>>>> executable is given to jlink, it can process it directly with other > >>>>>>>>>> JDK data/files to create the final image, without native linking step. > >>>>>>>>>> > >>>>>>>>>> Any other thoughts and considerations? > >>>>>>>>>> > >>>>>>>>>> Best, > >>>>>>>>>> Jiangli > >>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> 4. Is the intention is to allow users to create their own jmods with > >>>>>>>>>>>> static libraries, and have these linked in as well? This seems to be the > >>>>>>>>>>>> case. > >>>>>>>>>>> > >>>>>>>>>>> An alternative with less memory overhead could be using application > >>>>>>>>>>> modular JAR and separate .a as the input for jlink. > >>>>>>>>>>> > >>>>>>>>>>>> If that is so, then there will always be the risk for name > >>>>>>>>>>>> collisions, and we can only minimize the risk by making sure any global > >>>>>>>>>>>> names are as unique as possible. > >>>>>>>>>>> > >>>>>>>>>>> Part of the current effort includes resolving the discovered symbol > >>>>>>>>>>> collision issues with static linking. Will respond to your other email > >>>>>>>>>>> on the symbol issue separately later. > >>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> 5. The original implementation of static builds in the JDK, created for > >>>>>>>>>>>> the Mobile project, used a configure flag, --enable-static-builds, to > >>>>>>>>>>>> change the entire behavior of the build system to only produce *.a files > >>>>>>>>>>>> instead of lib*.so. In contrast, the current system is using a special > >>>>>>>>>>>> target instead. > >>>>>>>>>>> > >>>>>>>>>>> I think we would need both configure flag and special target for the > >>>>>>>>>>> static builds. > >>>>>>>>>>> > >>>>>>>>>>>> In my eyes, this is a much worse solution. Apart from > >>>>>>>>>>>> the conceptual principle (if the build should generate static or dynamic > >>>>>>>>>>>> libraries is definitely a property of what a "configuration" means), > >>>>>>>>>>>> this makes it much harder to implement efficiently, since we cannot make > >>>>>>>>>>>> changes in NativeCompilation.gmk, where they are needed. > >>>>>>>>>>> > >>>>>>>>>>> For the potential objcopy work to resolve symbol issues, we can add > >>>>>>>>>>> that conditionally in NativeCompilation.gmk if STATIC_LIBS is true. We > >>>>>>>>>>> have an internal prototype (not included in > >>>>>>>>>>> https://github.com/openjdk/leyden/tree/hermetic-java-runtime yet) done > >>>>>>>>>>> by one of colleagues for localizing symbols in libfreetype using > >>>>>>>>>>> objcopy. > >>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> That was not as much a question as a statement. ? But here is the > >>>>>>>>>>>> question: Do you think it would be reasonable to restore the old > >>>>>>>>>>>> behavior but with the new methods, so that we don't use special targets, > >>>>>>>>>>>> but instead tells configure to generate static libraries? I'm thinking > >>>>>>>>>>>> we should have a flag like "--with-library-type=" that can have values > >>>>>>>>>>>> "dynamic" (which is default), "static" or "both". > >>>>>>>>>>> > >>>>>>>>>>> If we want to also build a fully statically linked launcher, maybe > >>>>>>>>>>> --with-static-java? Being able to configure either dynamic, static or > >>>>>>>>>>> both as you suggested also seems to be a good idea. > >>>>>>>>>>> > >>>>>>>>>>>> I am not sure if "both" are needed, but if we want to bundle both lib*.so and *.a files > >>>>>>>>>>>> into a single jmod file (see question 2 above), then it definitely is. > >>>>>>>>>>>> In general, the cost of producing two kinds of libraries are quite > >>>>>>>>>>>> small, compared to the cost of compiling the source code to object files. > >>>>>>>>>>> > >>>>>>>>>>> Completely agree. It would be good to avoid recompiling the .o file > >>>>>>>>>>> for static and dynamic builds. As proposed in > >>>>>>>>>>> https://bugs.openjdk.org/browse/JDK-8303796: > >>>>>>>>>>> > >>>>>>>>>>> It's beneficial to be able to build both .so and .a from the same set > >>>>>>>>>>> of .o files. That would involve some changes to handle the dynamic JDK > >>>>>>>>>>> and static JDK difference at runtime, instead of relying on the > >>>>>>>>>>> STATIC_BUILD macro. > >>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> Finally, I have looked at how to manipulate symbol visibility. There > >>>>>>>>>>>> seems many ways forward, so I feel confident that we can find a good > >>>>>>>>>>>> solution. > >>>>>>>>>>>> > >>>>>>>>>>>> One way forward is to use objcopy to manipulate symbol status > >>>>>>>>>>>> (global/local). There is an option --localize-symbol in objcopy, that > >>>>>>>>>>>> has been available in objcopy since at least 2.15, which was released > >>>>>>>>>>>> 2004, so it should be safe to use. But ideally we should avoid using > >>>>>>>>>>>> objcopy and do this as part of the linking process. This should be > >>>>>>>>>>>> possible to do, given that we make changes in NativeCompilation.gmk -- > >>>>>>>>>>>> see question 5 above. > >>>>>>>>>>>> > >>>>>>>>>>>> As a fallback, it is also possible to rename symbols, either piecewise > >>>>>>>>>>>> or wholesale, using objcopy. There are many ways to do this, using > >>>>>>>>>>>> --prefix-symbols, --redefine-sym or --redefine-syms (note the -s, this > >>>>>>>>>>>> takes a file with a list of symbols). Thus we can always introduce a > >>>>>>>>>>>> "post factum namespace" by renaming symbols. > >>>>>>>>>>> > >>>>>>>>>>> Renaming or redefining the symbol at build time could cause confusions > >>>>>>>>>>> with debugging. That's a concern raised in > >>>>>>>>>>> https://github.com/openjdk/jdk/pull/17456 discussions. > >>>>>>>>>>> > >>>>>>>>>>> Additionally, redefining symbols using tools like objcopy may not > >>>>>>>>>>> handle member names referenced in string literals. For example, in > >>>>>>>>>>> https://github.com/openjdk/jdk/pull/17456 additional changes are > >>>>>>>>>>> needed in assembling and SA to reflect the symbol change. > >>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> So in the end, I think it will be fully possible to produce .a files > >>>>>>>>>>>> that only has global symbols for the functions that are part of the API > >>>>>>>>>>>> exposed by that library, and have all other symbols local, and make this > >>>>>>>>>>>> is in a way that is consistent with the rest of the build system. > >>>>>>>>>>>> > >>>>>>>>>>>> Finally, a note on Hotspot. Due to debugging reasons, we export > >>>>>>>>>>>> basically all symbols in hotspot as global. This is not reasonable to do > >>>>>>>>>>>> for a static build. The effect of not exporting those symbols will be > >>>>>>>>>>>> that SA will not function to 100%. On the other hand, I have no idea if > >>>>>>>>>>>> SA works at all with a static build. Have you tested this? Is this part > >>>>>>>>>>>> of the plan to support, or will it be officially dropped for Hermetic Java? > >>>>>>>>>>> > >>>>>>>>>>> We have done some testing with jtreg SA related tests for the fully > >>>>>>>>>>> statically linked `javastatic`. > >>>>>>>>>>> > >>>>>>>>>>> If we use objcopy to localize symbols in hotspot, it's not yet clear > >>>>>>>>>>> what's the impact on SA. We could do some tests. The other question > >>>>>>>>>>> that I raised is the supported gcc versions (for partial linking) > >>>>>>>>>>> related to the solution. > >>>>>>>>>>> > >>>>>>>>>>> Best, > >>>>>>>>>>> Jiangli > >>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> /Magnus > >>>>>>>>>>>> > >>>>>> > >>>> > >> > From kvn at openjdk.org Mon Jun 2 23:54:14 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Mon, 2 Jun 2025 23:54:14 GMT Subject: RFR: Fix recent merge errors [v2] In-Reply-To: References: Message-ID: <5-j4wDhlYH3CFrpr9ekAv4icDNouWHDvyMb92HJ4_Tw=.eab05923-55ee-4001-a9a8-30d414d82e95@github.com> On Mon, 2 Jun 2025 21:20:23 GMT, Aleksey Shipilev wrote: >> I skipped through current premain-vs-mainline webrev, and noticed a few merge errors. >> >> `metaspaceShared.cpp` hunks are obvious duplications. I removed the lines that are actually different from mainline. >> >> ~`compilationPolicy.hpp` hunk is a leftover from AOT Profiling. I remember pointing this out to @veresov during mainline review, and we went into mainline without that extra `notify_all`. We should ditch it in premain too.~ Actually, I see test timeouts when that `notify_all` is removed. Filed [JDK-8358343](https://bugs.openjdk.org/browse/JDK-8358343) to figure it out. Yanked the hunk from this PR. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Put notify_all back Good. ------------- Marked as reviewed by kvn (Committer). PR Review: https://git.openjdk.org/leyden/pull/72#pullrequestreview-2890216157 From david.holmes at oracle.com Tue Jun 3 01:22:26 2025 From: david.holmes at oracle.com (David Holmes) Date: Tue, 3 Jun 2025 11:22:26 +1000 Subject: Questions about the Hermetic Java project In-Reply-To: References: <6a9afe3f-e232-4636-8a2e-6112a6e68cce@oracle.com> <30fbc8de-74f9-483e-a1f4-7ab2f1f26fbd@oracle.com> <105e5e22-cc87-48a0-978c-f2e472277843@oracle.com> <8d5075b2-fcbf-4be2-8510-9619b33aee87@oracle.com> <472b8b8a-53ce-4e43-ab20-8b3b7f71fd9d@oracle.com> Message-ID: <3f0bdc84-4fde-4e1a-a89d-fa9c66a51aae@oracle.com> On 3/06/2025 9:29 am, Jiangli Zhou wrote: > On Sun, Jun 1, 2025 at 7:55?PM David Holmes wrote: >> >> On 31/05/2025 7:20 am, Jiangli Zhou wrote: >>> On Thu, May 29, 2025 at 11:54?PM David Holmes wrote: >>>> >>>> On 30/05/2025 9:26 am, Jiangli Zhou wrote: >>>>> >>>>> I just thought of one more thing related to the discussion now. Any >>>>> concern if the implementation does not ignore JNI_OnLoad_L and etc if >>>>> they are defined application's dynamically linked native libraries? Or >>>>> that's unspecified behavior and it's up to the implement to decide? >>>> >>>> For Internal libraries or external? For external you have to follow the >>>> spec - if both methods exist you only want to execute one of them. >>> >>> It's for the external (non-JDK) library that I'm a bit more cautious. >>> >>> In the existing code in JDK mainline, >>> https://github.com/openjdk/jdk/blob/3cc630985d47be6ba4cf991698e999f17dbde203/src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java#L117, >>> loadLibrary() first tries to find the built-in library using >>> JNI_OnLoad_L symbol (L is the library name). When dlsym is called to >>> find the symbol from the main process, any of the already loaded >>> shared libraries are also searched, as described by the dlsym man page >>> (included related part below). >>> >>> https://man7.org/linux/man-pages/man3/dlsym.3.html: >>> RTLD_DEFAULT >>> Find the first occurrence of the desired symbol using the >>> default shared object search order. The search will >>> include global symbols in the executable and its >>> dependencies, as well as symbols in shared objects that >>> were dynamically loaded with the RTLD_GLOBAL flag. >>> >>> I think it would be rare, it is possible to construct such case: >>> >>> There are user JNI libraries A and B, with B is built as a dependency >>> of A. A defines JNI_OnLoad_A and JNI_OnLoad. B defines JNI_OnLoad_B >>> and JNI_OnLoad. When A is being loaded using loadLibrary(), >>> loadLibrary() tries first to lookup JNI_OnLoad_A, which is not found. >>> A is then loaded dynamically, which causes B being loaded implicitly >>> as a dependency of A. Later when loadLibrary() is called for B, >>> JNI_OnLoad_B would be found and then called. This is an existing >>> behavior. I think it's an unspecified behavior and we don't need to >>> add any additional checks to prevent JNI_OnLoad_B from being called. >> >> That sounds like a significant design flaw to me. You can't specify that >> JNI_OnLoad_L will only be called if L is statically linked, if the >> existence of JNI_OnLoad_L is used to infer that L is statically linked! >> I would expect libraries to have both versions of the OnLoad functions >> to allow for them being statically or dynamically linked - which the >> spec allows for by saying the alternate variant is ignored. But then the >> JDK will execute the wrong method if it finds JNI_OnLoad_L in a >> dynamically linked library. > > JNI_OnLoad_L is used to determine if a requested JNI native library is > a built-in (statically linked) library. Thus, it can avoid the > operation of explicit loading for the shared library, e.g. with dlopen > on Linux. JNI_OnLoad_L is expected to provide the same implementation > as JNI_OnLoad besides being used as an identifier of a built-in > library, IIUC. > > In the scenario that I described in the previous message, when a JNI > shared library is already implicitly loaded as a dependency of another > native library, dlopen for explicitly loading the shared library is > not necessary. From the implementation point of view, the code seems > to have been doing the right thing since JDK 8. I did some search and > found https://stackoverflow.com/questions/32302262/does-dlopen-re-load-already-loaded-dependencies-if-so-what-are-the-implication, > which point out to the following in POSIX spec (latest > https://pubs.opengroup.org/onlinepubs/9799919799/): > > "Only a single copy of an executable object file shall be brought into > the address space, even if dlopen() is invoked multiple times in > reference to the executable object file, and even if different > pathnames are used to reference the executable object file." > > Then avoiding calling dlopen for the already loaded native library > doesn't cause any undesired side effects. > > Perhaps we can update the JNI spec to include the "already loaded" JNI > native libraries case, in addition to the built-in native libraries, > regarding JNI_OnLoad_L. Also clarify the "these functions will be > ignored" part in JNI spec for the dynamically linked libraries. > > "If dynamically linked library defines JNI_OnLoad_L and/or > JNI_OnUnload_L functions, these functions will be ignored." > > Thoughts? The problem is, as I see it, that the spec assumes that if it finds the JNI_OnLoad_L symbol then L must be a statically linked library. But that ignores the case you highlight where L was implicitly dynamically loaded as a dependency on another library. Hence the existence test for the symbol is not sufficient to determine if L was statically linked. If JNI_OnLoad_L and JNI_OnLoad were guaranteed to always do exactly the same thing it would not make any practical difference, but surely that is not always the case? I can certainly postulate the existence of a library that only needs the "on load" hook for the statically linked case, in which case invoking it when actually dynamically linked would be incorrect and potentially harmful. It seems we lack a way to know if a given library is truly statically linked, or to be advised when a library is implicitly loaded as a dependency. I am no expert on linking but I've been unable to locate any information on programmatically determining these conditions. If there is no real solution then documenting the problem may be all we can do. David ----- > Thanks! > Jiangli From shade at openjdk.org Tue Jun 3 07:02:16 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 3 Jun 2025 07:02:16 GMT Subject: git: openjdk/leyden: premain: Fix recent merge errors Message-ID: <75fb4326-e7f8-4a77-af2e-b9a0f6889881@openjdk.org> Changeset: dd845008 Branch: premain Author: Aleksey Shipilev Date: 2025-06-03 07:00:44 +0000 URL: https://git.openjdk.org/leyden/commit/dd845008ac031c070cd2b282572eeeac4ef978f1 Fix recent merge errors Reviewed-by: iveresov, kvn ! src/hotspot/share/cds/metaspaceShared.cpp From shade at openjdk.org Tue Jun 3 07:03:19 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 3 Jun 2025 07:03:19 GMT Subject: Integrated: Fix recent merge errors In-Reply-To: References: Message-ID: On Mon, 2 Jun 2025 20:12:18 GMT, Aleksey Shipilev wrote: > I skipped through current premain-vs-mainline webrev, and noticed a few merge errors. > > `metaspaceShared.cpp` hunks are obvious duplications. I removed the lines that are actually different from mainline. > > ~`compilationPolicy.hpp` hunk is a leftover from AOT Profiling. I remember pointing this out to @veresov during mainline review, and we went into mainline without that extra `notify_all`. We should ditch it in premain too.~ Actually, I see test timeouts when that `notify_all` is removed. Filed [JDK-8358343](https://bugs.openjdk.org/browse/JDK-8358343) to figure it out. Yanked the hunk from this PR. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` This pull request has now been integrated. Changeset: dd845008 Author: Aleksey Shipilev URL: https://git.openjdk.org/leyden/commit/dd845008ac031c070cd2b282572eeeac4ef978f1 Stats: 3 lines in 1 file changed: 0 ins; 3 del; 0 mod Fix recent merge errors Reviewed-by: iveresov, kvn ------------- PR: https://git.openjdk.org/leyden/pull/72 From shade at openjdk.org Tue Jun 3 07:03:19 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 3 Jun 2025 07:03:19 GMT Subject: RFR: Fix recent merge errors [v2] In-Reply-To: References: Message-ID: On Mon, 2 Jun 2025 21:20:23 GMT, Aleksey Shipilev wrote: >> I skipped through current premain-vs-mainline webrev, and noticed a few merge errors. >> >> `metaspaceShared.cpp` hunks are obvious duplications. I removed the lines that are actually different from mainline. >> >> ~`compilationPolicy.hpp` hunk is a leftover from AOT Profiling. I remember pointing this out to @veresov during mainline review, and we went into mainline without that extra `notify_all`. We should ditch it in premain too.~ Actually, I see test timeouts when that `notify_all` is removed. Filed [JDK-8358343](https://bugs.openjdk.org/browse/JDK-8358343) to figure it out. Yanked the hunk from this PR. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Put notify_all back Thanks! ------------- PR Comment: https://git.openjdk.org/leyden/pull/72#issuecomment-2933784463 From shade at openjdk.org Tue Jun 3 08:36:53 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 3 Jun 2025 08:36:53 GMT Subject: RFR: 8358344: [leyden] Enable UseSecondarySupersTable support Message-ID: `UseSecondarySupersTable` was disabled during the merge last month. It is time to enable it back. We need to record the table and slowpaths for `id_for_address` to work. `SECONDARY_SUPERS_TABLE_SIZE` is realistically at most `64` (matches machine bitness), so I added `+70` to all relevant sizing constants. Additional testing: - [x] Linux x86_64 server fastdebug, `runtime/cds` works (used to fail with just `UseSecondarySupersTable = false` removed) ------------- Commit messages: - Fix Changes: https://git.openjdk.org/leyden/pull/73/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=73&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8358344 Stats: 8 lines in 2 files changed: 5 ins; 1 del; 2 mod Patch: https://git.openjdk.org/leyden/pull/73.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/73/head:pull/73 PR: https://git.openjdk.org/leyden/pull/73 From asmehra at openjdk.org Tue Jun 3 14:10:22 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Tue, 3 Jun 2025 14:10:22 GMT Subject: RFR: 8358344: [leyden] Enable UseSecondarySupersTable support In-Reply-To: References: Message-ID: On Tue, 3 Jun 2025 08:31:32 GMT, Aleksey Shipilev wrote: > `UseSecondarySupersTable` was disabled during the merge last month. It is time to enable it back. We need to record the table and slowpaths for `id_for_address` to work. `SECONDARY_SUPERS_TABLE_SIZE` is realistically at most `64` (matches machine bitness), so I added `+70` to all relevant sizing constants. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` works (used to fail with just `UseSecondarySupersTable = false` removed) lgtm ------------- Marked as reviewed by asmehra (Committer). PR Review: https://git.openjdk.org/leyden/pull/73#pullrequestreview-2892569933 From kvn at openjdk.org Tue Jun 3 17:07:14 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Tue, 3 Jun 2025 17:07:14 GMT Subject: RFR: 8358344: [leyden] Enable UseSecondarySupersTable support In-Reply-To: References: Message-ID: On Tue, 3 Jun 2025 08:31:32 GMT, Aleksey Shipilev wrote: > `UseSecondarySupersTable` was disabled during the merge last month. It is time to enable it back. We need to record the table and slowpaths for `id_for_address` to work. `SECONDARY_SUPERS_TABLE_SIZE` is realistically at most `64` (matches machine bitness), so I added `+70` to all relevant sizing constants. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` works (used to fail with just `UseSecondarySupersTable = false` removed) Looks good. Let me test it. ------------- PR Review: https://git.openjdk.org/leyden/pull/73#pullrequestreview-2893378314 From shade at openjdk.org Tue Jun 3 18:14:52 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 3 Jun 2025 18:14:52 GMT Subject: RFR: 8358343: [leyden] Drop notify_all in CompilationPolicyUtils::Queue::pop Message-ID: Found this when reading premain-vs-mainline webrev. Mainline does not have `notify_all` in this method: https://github.com/openjdk/jdk/blob/c382da579884c28f2765b2c6ba68c0ad4fdcb2ce/src/hotspot/share/compiler/compilationPolicy.hpp#L85-L92 But if you remove `notify_all()` in `premain`, then tests start to deadlock, see bug for a sample. The culprit is `CompilationPolicy::flush_replay_training_at_init`, which is only present in premain. I fixed it by using timed waits, which obviates the need for extra notifications. We only enter this method with `-XX:+AOTVerifyTrainingData`, so we don't care much about its performance. This is IMO better than doing a questionable `notify_all` followed by `wait` in load-bearing code. Additional testing: - [x] Linux x86_64 server fastdebug, `runtime/cds` (5x, no timeouts yet; still running more iterations) ------------- Commit messages: - Fix Changes: https://git.openjdk.org/leyden/pull/74/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=74&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8358343 Stats: 5 lines in 2 files changed: 3 ins; 1 del; 1 mod Patch: https://git.openjdk.org/leyden/pull/74.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/74/head:pull/74 PR: https://git.openjdk.org/leyden/pull/74 From jianglizhou at google.com Tue Jun 3 19:00:26 2025 From: jianglizhou at google.com (Jiangli Zhou) Date: Tue, 3 Jun 2025 12:00:26 -0700 Subject: Questions about the Hermetic Java project In-Reply-To: <3f0bdc84-4fde-4e1a-a89d-fa9c66a51aae@oracle.com> References: <6a9afe3f-e232-4636-8a2e-6112a6e68cce@oracle.com> <30fbc8de-74f9-483e-a1f4-7ab2f1f26fbd@oracle.com> <105e5e22-cc87-48a0-978c-f2e472277843@oracle.com> <8d5075b2-fcbf-4be2-8510-9619b33aee87@oracle.com> <472b8b8a-53ce-4e43-ab20-8b3b7f71fd9d@oracle.com> <3f0bdc84-4fde-4e1a-a89d-fa9c66a51aae@oracle.com> Message-ID: On Mon, Jun 2, 2025 at 6:22?PM David Holmes wrote: > > On 3/06/2025 9:29 am, Jiangli Zhou wrote: > > On Sun, Jun 1, 2025 at 7:55?PM David Holmes wrote: > >> > >> On 31/05/2025 7:20 am, Jiangli Zhou wrote: > >>> On Thu, May 29, 2025 at 11:54?PM David Holmes wrote: > >>>> > >>>> On 30/05/2025 9:26 am, Jiangli Zhou wrote: > >>>>> > >>>>> I just thought of one more thing related to the discussion now. Any > >>>>> concern if the implementation does not ignore JNI_OnLoad_L and etc if > >>>>> they are defined application's dynamically linked native libraries? Or > >>>>> that's unspecified behavior and it's up to the implement to decide? > >>>> > >>>> For Internal libraries or external? For external you have to follow the > >>>> spec - if both methods exist you only want to execute one of them. > >>> > >>> It's for the external (non-JDK) library that I'm a bit more cautious. > >>> > >>> In the existing code in JDK mainline, > >>> https://github.com/openjdk/jdk/blob/3cc630985d47be6ba4cf991698e999f17dbde203/src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java#L117, > >>> loadLibrary() first tries to find the built-in library using > >>> JNI_OnLoad_L symbol (L is the library name). When dlsym is called to > >>> find the symbol from the main process, any of the already loaded > >>> shared libraries are also searched, as described by the dlsym man page > >>> (included related part below). > >>> > >>> https://man7.org/linux/man-pages/man3/dlsym.3.html: > >>> RTLD_DEFAULT > >>> Find the first occurrence of the desired symbol using the > >>> default shared object search order. The search will > >>> include global symbols in the executable and its > >>> dependencies, as well as symbols in shared objects that > >>> were dynamically loaded with the RTLD_GLOBAL flag. > >>> > >>> I think it would be rare, it is possible to construct such case: > >>> > >>> There are user JNI libraries A and B, with B is built as a dependency > >>> of A. A defines JNI_OnLoad_A and JNI_OnLoad. B defines JNI_OnLoad_B > >>> and JNI_OnLoad. When A is being loaded using loadLibrary(), > >>> loadLibrary() tries first to lookup JNI_OnLoad_A, which is not found. > >>> A is then loaded dynamically, which causes B being loaded implicitly > >>> as a dependency of A. Later when loadLibrary() is called for B, > >>> JNI_OnLoad_B would be found and then called. This is an existing > >>> behavior. I think it's an unspecified behavior and we don't need to > >>> add any additional checks to prevent JNI_OnLoad_B from being called. > >> > >> That sounds like a significant design flaw to me. You can't specify that > >> JNI_OnLoad_L will only be called if L is statically linked, if the > >> existence of JNI_OnLoad_L is used to infer that L is statically linked! > >> I would expect libraries to have both versions of the OnLoad functions > >> to allow for them being statically or dynamically linked - which the > >> spec allows for by saying the alternate variant is ignored. But then the > >> JDK will execute the wrong method if it finds JNI_OnLoad_L in a > >> dynamically linked library. > > > > JNI_OnLoad_L is used to determine if a requested JNI native library is > > a built-in (statically linked) library. Thus, it can avoid the > > operation of explicit loading for the shared library, e.g. with dlopen > > on Linux. JNI_OnLoad_L is expected to provide the same implementation > > as JNI_OnLoad besides being used as an identifier of a built-in > > library, IIUC. > > > > In the scenario that I described in the previous message, when a JNI > > shared library is already implicitly loaded as a dependency of another > > native library, dlopen for explicitly loading the shared library is > > not necessary. From the implementation point of view, the code seems > > to have been doing the right thing since JDK 8. I did some search and > > found https://stackoverflow.com/questions/32302262/does-dlopen-re-load-already-loaded-dependencies-if-so-what-are-the-implication, > > which point out to the following in POSIX spec (latest > > https://pubs.opengroup.org/onlinepubs/9799919799/): > > > > "Only a single copy of an executable object file shall be brought into > > the address space, even if dlopen() is invoked multiple times in > > reference to the executable object file, and even if different > > pathnames are used to reference the executable object file." > > > > Then avoiding calling dlopen for the already loaded native library > > doesn't cause any undesired side effects. > > > > Perhaps we can update the JNI spec to include the "already loaded" JNI > > native libraries case, in addition to the built-in native libraries, > > regarding JNI_OnLoad_L. Also clarify the "these functions will be > > ignored" part in JNI spec for the dynamically linked libraries. > > > > "If dynamically linked library defines JNI_OnLoad_L and/or > > JNI_OnUnload_L functions, these functions will be ignored." > > > > Thoughts? > > The problem is, as I see it, that the spec assumes that if it finds the > JNI_OnLoad_L symbol then L must be a statically linked library. But that > ignores the case you highlight where L was implicitly dynamically loaded > as a dependency on another library. Hence the existence test for the > symbol is not sufficient to determine if L was statically linked. Right. > > If JNI_OnLoad_L and JNI_OnLoad were guaranteed to always do exactly the > same thing it would not make any practical difference, but surely that > is not always the case? I can certainly postulate the existence of a > library that only needs the "on load" hook for the statically linked > case, in which case invoking it when actually dynamically linked would > be incorrect and potentially harmful. Hmmm, I haven't thought of such a case. David, could you please give a concrete example for the case? > > It seems we lack a way to know if a given library is truly statically > linked, or to be advised when a library is implicitly loaded as a > dependency. I am no expert on linking but I've been unable to locate any > information on programmatically determining these conditions. I haven't found anything either. > > If there is no real solution then documenting the problem may be all we > can do. That sounds reasonable to me. I mentioned the new mailing list discussions to Ron, Alan and Magnus today during the hermetic Java meeting. They may have follow up thoughts. Thanks! Jiangli > > David > ----- > > > Thanks! > > Jiangli From kvn at openjdk.org Tue Jun 3 19:31:32 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Tue, 3 Jun 2025 19:31:32 GMT Subject: RFR: 8358344: [leyden] Enable UseSecondarySupersTable support In-Reply-To: References: Message-ID: On Tue, 3 Jun 2025 08:31:32 GMT, Aleksey Shipilev wrote: > `UseSecondarySupersTable` was disabled during the merge last month. It is time to enable it back. We need to record the table and slowpaths for `id_for_address` to work. `SECONDARY_SUPERS_TABLE_SIZE` is realistically at most `64` (matches machine bitness), so I added `+70` to all relevant sizing constants. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` works (used to fail with just `UseSecondarySupersTable = false` removed) My testing passed. ------------- Marked as reviewed by kvn (Committer). PR Review: https://git.openjdk.org/leyden/pull/73#pullrequestreview-2893823432 From shade at openjdk.org Tue Jun 3 19:59:47 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 3 Jun 2025 19:59:47 GMT Subject: git: openjdk/leyden: premain: 8358344: [leyden] Enable UseSecondarySupersTable support Message-ID: <784fe44f-00fd-48d1-aa21-94816fb15698@openjdk.org> Changeset: 1c750fab Branch: premain Author: Aleksey Shipilev Date: 2025-06-03 19:58:41 +0000 URL: https://git.openjdk.org/leyden/commit/1c750fabd45807f648891711576f4bc15185087b 8358344: [leyden] Enable UseSecondarySupersTable support Reviewed-by: asmehra, kvn ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/runtime/arguments.cpp From shade at openjdk.org Tue Jun 3 20:00:44 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 3 Jun 2025 20:00:44 GMT Subject: RFR: 8358343: [leyden] Drop notify_all in CompilationPolicyUtils::Queue::pop In-Reply-To: References: Message-ID: On Tue, 3 Jun 2025 17:59:51 GMT, Aleksey Shipilev wrote: > Found this when reading premain-vs-mainline webrev. Mainline does not have `notify_all` in this method: > https://github.com/openjdk/jdk/blob/c382da579884c28f2765b2c6ba68c0ad4fdcb2ce/src/hotspot/share/compiler/compilationPolicy.hpp#L85-L92 > > But if you remove `notify_all()` in `premain`, then tests start to deadlock, see bug for a sample. The culprit is `CompilationPolicy::flush_replay_training_at_init`, which is only present in premain. I fixed it by using timed waits, which obviates the need for extra notifications. We only enter this method with `-XX:+AOTVerifyTrainingData`, so we don't care much about its performance. This is IMO better than doing a questionable `notify_all` followed by `wait` in load-bearing code. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` (5x, no timeouts yet; still running more iterations) @veresov @iwanowww ^ ------------- PR Comment: https://git.openjdk.org/leyden/pull/74#issuecomment-2936964207 From shade at openjdk.org Tue Jun 3 20:02:08 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 3 Jun 2025 20:02:08 GMT Subject: Integrated: 8358344: [leyden] Enable UseSecondarySupersTable support In-Reply-To: References: Message-ID: On Tue, 3 Jun 2025 08:31:32 GMT, Aleksey Shipilev wrote: > `UseSecondarySupersTable` was disabled during the merge last month. It is time to enable it back. We need to record the table and slowpaths for `id_for_address` to work. `SECONDARY_SUPERS_TABLE_SIZE` is realistically at most `64` (matches machine bitness), so I added `+70` to all relevant sizing constants. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` works (used to fail with just `UseSecondarySupersTable = false` removed) This pull request has now been integrated. Changeset: 1c750fab Author: Aleksey Shipilev URL: https://git.openjdk.org/leyden/commit/1c750fabd45807f648891711576f4bc15185087b Stats: 8 lines in 2 files changed: 5 ins; 1 del; 2 mod 8358344: [leyden] Enable UseSecondarySupersTable support Reviewed-by: asmehra, kvn ------------- PR: https://git.openjdk.org/leyden/pull/73 From shade at openjdk.org Tue Jun 3 20:02:08 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 3 Jun 2025 20:02:08 GMT Subject: RFR: 8358344: [leyden] Enable UseSecondarySupersTable support In-Reply-To: References: Message-ID: On Tue, 3 Jun 2025 08:31:32 GMT, Aleksey Shipilev wrote: > `UseSecondarySupersTable` was disabled during the merge last month. It is time to enable it back. We need to record the table and slowpaths for `id_for_address` to work. `SECONDARY_SUPERS_TABLE_SIZE` is realistically at most `64` (matches machine bitness), so I added `+70` to all relevant sizing constants. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` works (used to fail with just `UseSecondarySupersTable = false` removed) Cool, here goes. ------------- PR Comment: https://git.openjdk.org/leyden/pull/73#issuecomment-2936963476 From kvn at openjdk.org Wed Jun 4 00:13:39 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Wed, 4 Jun 2025 00:13:39 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 2 Jun 2025 14:51:47 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Remove CodeBuffer::clear_strings() as the relevant destructors clear the > strings > > Signed-off-by: Ashutosh Mehra Before I start testing and approve it I think we should wait your fix JDK-8358330 integration (my testing is still running) and then merge from mainline to premain. src/hotspot/share/code/aotCodeCache.hpp line 107: > 105: > 106: uint _blob_offset; // Start of archived blob in the cache > 107: uint _code_offset; // Start of code for an entry of type "Stub" Why you need 2 different fields for offset? ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2937805951 PR Review Comment: https://git.openjdk.org/leyden/pull/71#discussion_r2125152991 From david.holmes at oracle.com Wed Jun 4 04:31:20 2025 From: david.holmes at oracle.com (David Holmes) Date: Wed, 4 Jun 2025 14:31:20 +1000 Subject: Questions about the Hermetic Java project In-Reply-To: References: <6a9afe3f-e232-4636-8a2e-6112a6e68cce@oracle.com> <30fbc8de-74f9-483e-a1f4-7ab2f1f26fbd@oracle.com> <105e5e22-cc87-48a0-978c-f2e472277843@oracle.com> <8d5075b2-fcbf-4be2-8510-9619b33aee87@oracle.com> <472b8b8a-53ce-4e43-ab20-8b3b7f71fd9d@oracle.com> <3f0bdc84-4fde-4e1a-a89d-fa9c66a51aae@oracle.com> Message-ID: <00171a77-af77-4129-b8f3-a168be44c188@oracle.com> On 4/06/2025 5:00 am, Jiangli Zhou wrote: > On Mon, Jun 2, 2025 at 6:22?PM David Holmes wrote: >> >> On 3/06/2025 9:29 am, Jiangli Zhou wrote: >>> On Sun, Jun 1, 2025 at 7:55?PM David Holmes wrote: >>>> >>>> On 31/05/2025 7:20 am, Jiangli Zhou wrote: >>>>> On Thu, May 29, 2025 at 11:54?PM David Holmes wrote: >>>>>> >>>>>> On 30/05/2025 9:26 am, Jiangli Zhou wrote: >>>>>>> >>>>>>> I just thought of one more thing related to the discussion now. Any >>>>>>> concern if the implementation does not ignore JNI_OnLoad_L and etc if >>>>>>> they are defined application's dynamically linked native libraries? Or >>>>>>> that's unspecified behavior and it's up to the implement to decide? >>>>>> >>>>>> For Internal libraries or external? For external you have to follow the >>>>>> spec - if both methods exist you only want to execute one of them. >>>>> >>>>> It's for the external (non-JDK) library that I'm a bit more cautious. >>>>> >>>>> In the existing code in JDK mainline, >>>>> https://github.com/openjdk/jdk/blob/3cc630985d47be6ba4cf991698e999f17dbde203/src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java#L117, >>>>> loadLibrary() first tries to find the built-in library using >>>>> JNI_OnLoad_L symbol (L is the library name). When dlsym is called to >>>>> find the symbol from the main process, any of the already loaded >>>>> shared libraries are also searched, as described by the dlsym man page >>>>> (included related part below). >>>>> >>>>> https://man7.org/linux/man-pages/man3/dlsym.3.html: >>>>> RTLD_DEFAULT >>>>> Find the first occurrence of the desired symbol using the >>>>> default shared object search order. The search will >>>>> include global symbols in the executable and its >>>>> dependencies, as well as symbols in shared objects that >>>>> were dynamically loaded with the RTLD_GLOBAL flag. >>>>> >>>>> I think it would be rare, it is possible to construct such case: >>>>> >>>>> There are user JNI libraries A and B, with B is built as a dependency >>>>> of A. A defines JNI_OnLoad_A and JNI_OnLoad. B defines JNI_OnLoad_B >>>>> and JNI_OnLoad. When A is being loaded using loadLibrary(), >>>>> loadLibrary() tries first to lookup JNI_OnLoad_A, which is not found. >>>>> A is then loaded dynamically, which causes B being loaded implicitly >>>>> as a dependency of A. Later when loadLibrary() is called for B, >>>>> JNI_OnLoad_B would be found and then called. This is an existing >>>>> behavior. I think it's an unspecified behavior and we don't need to >>>>> add any additional checks to prevent JNI_OnLoad_B from being called. >>>> >>>> That sounds like a significant design flaw to me. You can't specify that >>>> JNI_OnLoad_L will only be called if L is statically linked, if the >>>> existence of JNI_OnLoad_L is used to infer that L is statically linked! >>>> I would expect libraries to have both versions of the OnLoad functions >>>> to allow for them being statically or dynamically linked - which the >>>> spec allows for by saying the alternate variant is ignored. But then the >>>> JDK will execute the wrong method if it finds JNI_OnLoad_L in a >>>> dynamically linked library. >>> >>> JNI_OnLoad_L is used to determine if a requested JNI native library is >>> a built-in (statically linked) library. Thus, it can avoid the >>> operation of explicit loading for the shared library, e.g. with dlopen >>> on Linux. JNI_OnLoad_L is expected to provide the same implementation >>> as JNI_OnLoad besides being used as an identifier of a built-in >>> library, IIUC. >>> >>> In the scenario that I described in the previous message, when a JNI >>> shared library is already implicitly loaded as a dependency of another >>> native library, dlopen for explicitly loading the shared library is >>> not necessary. From the implementation point of view, the code seems >>> to have been doing the right thing since JDK 8. I did some search and >>> found https://stackoverflow.com/questions/32302262/does-dlopen-re-load-already-loaded-dependencies-if-so-what-are-the-implication, >>> which point out to the following in POSIX spec (latest >>> https://pubs.opengroup.org/onlinepubs/9799919799/): >>> >>> "Only a single copy of an executable object file shall be brought into >>> the address space, even if dlopen() is invoked multiple times in >>> reference to the executable object file, and even if different >>> pathnames are used to reference the executable object file." >>> >>> Then avoiding calling dlopen for the already loaded native library >>> doesn't cause any undesired side effects. >>> >>> Perhaps we can update the JNI spec to include the "already loaded" JNI >>> native libraries case, in addition to the built-in native libraries, >>> regarding JNI_OnLoad_L. Also clarify the "these functions will be >>> ignored" part in JNI spec for the dynamically linked libraries. >>> >>> "If dynamically linked library defines JNI_OnLoad_L and/or >>> JNI_OnUnload_L functions, these functions will be ignored." >>> >>> Thoughts? >> >> The problem is, as I see it, that the spec assumes that if it finds the >> JNI_OnLoad_L symbol then L must be a statically linked library. But that >> ignores the case you highlight where L was implicitly dynamically loaded >> as a dependency on another library. Hence the existence test for the >> symbol is not sufficient to determine if L was statically linked. > > Right. > >> >> If JNI_OnLoad_L and JNI_OnLoad were guaranteed to always do exactly the >> same thing it would not make any practical difference, but surely that >> is not always the case? I can certainly postulate the existence of a >> library that only needs the "on load" hook for the statically linked >> case, in which case invoking it when actually dynamically linked would >> be incorrect and potentially harmful. > > Hmmm, I haven't thought of such a case. David, could you please give a > concrete example for the case? I don't have a concrete example, that's why I just said I could "postulate the existence" of such a case. :) >> >> It seems we lack a way to know if a given library is truly statically >> linked, or to be advised when a library is implicitly loaded as a >> dependency. I am no expert on linking but I've been unable to locate any >> information on programmatically determining these conditions. > > I haven't found anything either. > >> >> If there is no real solution then documenting the problem may be all we >> can do. > > That sounds reasonable to me. > > I mentioned the new mailing list discussions to Ron, Alan and Magnus > today during the hermetic Java meeting. They may have follow up > thoughts. Okay. David ----- > Thanks! > Jiangli > >> >> David >> ----- >> >>> Thanks! >>> Jiangli From jianglizhou at google.com Wed Jun 4 15:33:43 2025 From: jianglizhou at google.com (Jiangli Zhou) Date: Wed, 4 Jun 2025 08:33:43 -0700 Subject: Questions about the Hermetic Java project In-Reply-To: <00171a77-af77-4129-b8f3-a168be44c188@oracle.com> References: <6a9afe3f-e232-4636-8a2e-6112a6e68cce@oracle.com> <30fbc8de-74f9-483e-a1f4-7ab2f1f26fbd@oracle.com> <105e5e22-cc87-48a0-978c-f2e472277843@oracle.com> <8d5075b2-fcbf-4be2-8510-9619b33aee87@oracle.com> <472b8b8a-53ce-4e43-ab20-8b3b7f71fd9d@oracle.com> <3f0bdc84-4fde-4e1a-a89d-fa9c66a51aae@oracle.com> <00171a77-af77-4129-b8f3-a168be44c188@oracle.com> Message-ID: Ok, still thanks for the thoughts, David. To summarize, here is what we can do for the current step: - Allow JNI_OnLoad_L and etc for JDK internal native libraries with the dynamic linking case. - JNI spec already allows JNI_OnLoad_L and etc for dynamically linked native libraries. No spec change is required to the above. - JNI_OnLoad_L and etc should not be called for dynamically linked native libraries when the library is loaded due to loadLibrary() by default. If a dynamic library is already loaded as a dependency of other native libraries, when loadLibrary() is called for the library, JNI_OnLoad_L can be called. That is an existing behavior since JDK 8. Need to document (in spec or release notes?). Best, Jiangli On Tue, Jun 3, 2025 at 9:31?PM David Holmes wrote: > > On 4/06/2025 5:00 am, Jiangli Zhou wrote: > > On Mon, Jun 2, 2025 at 6:22?PM David Holmes wrote: > >> > >> On 3/06/2025 9:29 am, Jiangli Zhou wrote: > >>> On Sun, Jun 1, 2025 at 7:55?PM David Holmes wrote: > >>>> > >>>> On 31/05/2025 7:20 am, Jiangli Zhou wrote: > >>>>> On Thu, May 29, 2025 at 11:54?PM David Holmes wrote: > >>>>>> > >>>>>> On 30/05/2025 9:26 am, Jiangli Zhou wrote: > >>>>>>> > >>>>>>> I just thought of one more thing related to the discussion now. Any > >>>>>>> concern if the implementation does not ignore JNI_OnLoad_L and etc if > >>>>>>> they are defined application's dynamically linked native libraries? Or > >>>>>>> that's unspecified behavior and it's up to the implement to decide? > >>>>>> > >>>>>> For Internal libraries or external? For external you have to follow the > >>>>>> spec - if both methods exist you only want to execute one of them. > >>>>> > >>>>> It's for the external (non-JDK) library that I'm a bit more cautious. > >>>>> > >>>>> In the existing code in JDK mainline, > >>>>> https://github.com/openjdk/jdk/blob/3cc630985d47be6ba4cf991698e999f17dbde203/src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java#L117, > >>>>> loadLibrary() first tries to find the built-in library using > >>>>> JNI_OnLoad_L symbol (L is the library name). When dlsym is called to > >>>>> find the symbol from the main process, any of the already loaded > >>>>> shared libraries are also searched, as described by the dlsym man page > >>>>> (included related part below). > >>>>> > >>>>> https://man7.org/linux/man-pages/man3/dlsym.3.html: > >>>>> RTLD_DEFAULT > >>>>> Find the first occurrence of the desired symbol using the > >>>>> default shared object search order. The search will > >>>>> include global symbols in the executable and its > >>>>> dependencies, as well as symbols in shared objects that > >>>>> were dynamically loaded with the RTLD_GLOBAL flag. > >>>>> > >>>>> I think it would be rare, it is possible to construct such case: > >>>>> > >>>>> There are user JNI libraries A and B, with B is built as a dependency > >>>>> of A. A defines JNI_OnLoad_A and JNI_OnLoad. B defines JNI_OnLoad_B > >>>>> and JNI_OnLoad. When A is being loaded using loadLibrary(), > >>>>> loadLibrary() tries first to lookup JNI_OnLoad_A, which is not found. > >>>>> A is then loaded dynamically, which causes B being loaded implicitly > >>>>> as a dependency of A. Later when loadLibrary() is called for B, > >>>>> JNI_OnLoad_B would be found and then called. This is an existing > >>>>> behavior. I think it's an unspecified behavior and we don't need to > >>>>> add any additional checks to prevent JNI_OnLoad_B from being called. > >>>> > >>>> That sounds like a significant design flaw to me. You can't specify that > >>>> JNI_OnLoad_L will only be called if L is statically linked, if the > >>>> existence of JNI_OnLoad_L is used to infer that L is statically linked! > >>>> I would expect libraries to have both versions of the OnLoad functions > >>>> to allow for them being statically or dynamically linked - which the > >>>> spec allows for by saying the alternate variant is ignored. But then the > >>>> JDK will execute the wrong method if it finds JNI_OnLoad_L in a > >>>> dynamically linked library. > >>> > >>> JNI_OnLoad_L is used to determine if a requested JNI native library is > >>> a built-in (statically linked) library. Thus, it can avoid the > >>> operation of explicit loading for the shared library, e.g. with dlopen > >>> on Linux. JNI_OnLoad_L is expected to provide the same implementation > >>> as JNI_OnLoad besides being used as an identifier of a built-in > >>> library, IIUC. > >>> > >>> In the scenario that I described in the previous message, when a JNI > >>> shared library is already implicitly loaded as a dependency of another > >>> native library, dlopen for explicitly loading the shared library is > >>> not necessary. From the implementation point of view, the code seems > >>> to have been doing the right thing since JDK 8. I did some search and > >>> found https://stackoverflow.com/questions/32302262/does-dlopen-re-load-already-loaded-dependencies-if-so-what-are-the-implication, > >>> which point out to the following in POSIX spec (latest > >>> https://pubs.opengroup.org/onlinepubs/9799919799/): > >>> > >>> "Only a single copy of an executable object file shall be brought into > >>> the address space, even if dlopen() is invoked multiple times in > >>> reference to the executable object file, and even if different > >>> pathnames are used to reference the executable object file." > >>> > >>> Then avoiding calling dlopen for the already loaded native library > >>> doesn't cause any undesired side effects. > >>> > >>> Perhaps we can update the JNI spec to include the "already loaded" JNI > >>> native libraries case, in addition to the built-in native libraries, > >>> regarding JNI_OnLoad_L. Also clarify the "these functions will be > >>> ignored" part in JNI spec for the dynamically linked libraries. > >>> > >>> "If dynamically linked library defines JNI_OnLoad_L and/or > >>> JNI_OnUnload_L functions, these functions will be ignored." > >>> > >>> Thoughts? > >> > >> The problem is, as I see it, that the spec assumes that if it finds the > >> JNI_OnLoad_L symbol then L must be a statically linked library. But that > >> ignores the case you highlight where L was implicitly dynamically loaded > >> as a dependency on another library. Hence the existence test for the > >> symbol is not sufficient to determine if L was statically linked. > > > > Right. > > > >> > >> If JNI_OnLoad_L and JNI_OnLoad were guaranteed to always do exactly the > >> same thing it would not make any practical difference, but surely that > >> is not always the case? I can certainly postulate the existence of a > >> library that only needs the "on load" hook for the statically linked > >> case, in which case invoking it when actually dynamically linked would > >> be incorrect and potentially harmful. > > > > Hmmm, I haven't thought of such a case. David, could you please give a > > concrete example for the case? > > I don't have a concrete example, that's why I just said I could > "postulate the existence" of such a case. :) > > >> > >> It seems we lack a way to know if a given library is truly statically > >> linked, or to be advised when a library is implicitly loaded as a > >> dependency. I am no expert on linking but I've been unable to locate any > >> information on programmatically determining these conditions. > > > > I haven't found anything either. > > > >> > >> If there is no real solution then documenting the problem may be all we > >> can do. > > > > That sounds reasonable to me. > > > > I mentioned the new mailing list discussions to Ron, Alan and Magnus > > today during the hermetic Java meeting. They may have follow up > > thoughts. > > Okay. > > David > ----- > > > > Thanks! > > Jiangli > > > >> > >> David > >> ----- > >> > >>> Thanks! > >>> Jiangli > From asmehra at openjdk.org Wed Jun 4 17:14:21 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Wed, 4 Jun 2025 17:14:21 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Wed, 4 Jun 2025 00:08:42 GMT, Vladimir Kozlov wrote: >> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: >> >> Remove CodeBuffer::clear_strings() as the relevant destructors clear the >> strings >> >> Signed-off-by: Ashutosh Mehra > > src/hotspot/share/code/aotCodeCache.hpp line 107: > >> 105: >> 106: uint _blob_offset; // Start of archived blob in the cache >> 107: uint _code_offset; // Start of code for an entry of type "Stub" > > Why you need 2 different fields for offset? I did this only for the clarity - using `_blob_offset` is for storing Stubs doesn't sound correct, so I added `_code_offset` for the Stubs. If it is confusing, I can keep `_blob_offset` and remove the `_code_offset` field. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/71#discussion_r2127073051 From kvn at openjdk.org Wed Jun 4 23:20:17 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Wed, 4 Jun 2025 23:20:17 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: <3RHzwI7atEFZZw-uEVDlWmaGtmzZJ_SYwGiMplfOM9Y=.5ca0ee7c-7dbe-461f-ba1f-2218c63ce9f7@github.com> On Wed, 4 Jun 2025 17:11:05 GMT, Ashutosh Mehra wrote: >> src/hotspot/share/code/aotCodeCache.hpp line 107: >> >>> 105: >>> 106: uint _blob_offset; // Start of archived blob in the cache >>> 107: uint _code_offset; // Start of code for an entry of type "Stub" >> >> Why you need 2 different fields for offset? > > I did this only for the clarity - using `_blob_offset` is for storing Stubs doesn't sound correct, so I added `_code_offset` for the Stubs. If it is confusing, I can keep `_blob_offset` and remove the `_code_offset` field. I would suggest to use old `_code_ofset` for now. As we discussed on meeting we will need separate _metadata_offset to move all data describing code so we can map whole section of codes directly into CodeCache. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/71#discussion_r2127582863 From kvn at openjdk.org Thu Jun 5 00:34:14 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Thu, 5 Jun 2025 00:34:14 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: <3RHzwI7atEFZZw-uEVDlWmaGtmzZJ_SYwGiMplfOM9Y=.5ca0ee7c-7dbe-461f-ba1f-2218c63ce9f7@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> <3RHzwI7atEFZZw-uEVDlWmaGtmzZJ_SYwGiMplfOM9Y=.5ca0ee7c-7dbe-461f-ba1f-2218c63ce9f7@github.com> Message-ID: On Wed, 4 Jun 2025 23:17:51 GMT, Vladimir Kozlov wrote: >> I did this only for the clarity - using `_blob_offset` is for storing Stubs doesn't sound correct, so I added `_code_offset` for the Stubs. If it is confusing, I can keep `_blob_offset` and remove the `_code_offset` field. > > I would suggest to use old `_code_ofset` for now. As we discussed on meeting we will need separate _metadata_offset to move all data describing code so we can map whole section of codes directly into CodeCache. Or we can compromise: `_codeblob_offset, _codeblob_size` Stubs are also using CodeBlob. I don't get why you treat stubs differently. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/71#discussion_r2127729156 From asmehra at openjdk.org Thu Jun 5 02:11:15 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Thu, 5 Jun 2025 02:11:15 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> <3RHzwI7atEFZZw-uEVDlWmaGtmzZJ_SYwGiMplfOM9Y=.5ca0ee7c-7dbe-461f-ba1f-2218c63ce9f7@github.com> Message-ID: On Thu, 5 Jun 2025 00:31:41 GMT, Vladimir Kozlov wrote: >> I would suggest to use old `_code_ofset` for now. As we discussed on meeting we will need separate _metadata_offset to move all data describing code so we can map whole section of codes directly into CodeCache. > > Or we can compromise: `_codeblob_offset, _codeblob_size` > Stubs are also using CodeBlob. I don't get why you treat stubs differently. StubGenerator Stubs used CodeBlob, but in AOT CodeCache we don't store their CodeBlobs as we do for adapters/runtime blobs. We instead only copy the assembly code for each stub. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/71#discussion_r2127804951 From david.holmes at oracle.com Thu Jun 5 08:33:08 2025 From: david.holmes at oracle.com (David Holmes) Date: Thu, 5 Jun 2025 18:33:08 +1000 Subject: Questions about the Hermetic Java project In-Reply-To: References: <6a9afe3f-e232-4636-8a2e-6112a6e68cce@oracle.com> <30fbc8de-74f9-483e-a1f4-7ab2f1f26fbd@oracle.com> <105e5e22-cc87-48a0-978c-f2e472277843@oracle.com> <8d5075b2-fcbf-4be2-8510-9619b33aee87@oracle.com> <472b8b8a-53ce-4e43-ab20-8b3b7f71fd9d@oracle.com> <3f0bdc84-4fde-4e1a-a89d-fa9c66a51aae@oracle.com> <00171a77-af77-4129-b8f3-a168be44c188@oracle.com> Message-ID: <3157708d-6f50-4edc-8479-68c1e974a156@oracle.com> On 5/06/2025 1:33 am, Jiangli Zhou wrote: > Ok, still thanks for the thoughts, David. > > To summarize, here is what we can do for the current step: > > - Allow JNI_OnLoad_L and etc for JDK internal native libraries with > the dynamic linking case. > - JNI spec already allows JNI_OnLoad_L and etc for dynamically linked > native libraries. No spec change is required to the above. Sorry but where does the spec allow this? I thought we had agreed that this was a limitation of the implementation in regard to detecting whether a library is loaded dynamically or statically, and that we needed to document this case in the spec. ?? David ----- > - JNI_OnLoad_L and etc should not be called for dynamically linked > native libraries when the library is loaded due to loadLibrary() by > default. If a dynamic library is already loaded as a dependency of > other native libraries, when loadLibrary() is called for the library, > JNI_OnLoad_L can be called. That is an existing behavior since JDK 8. > Need to document (in spec or release notes?). > > Best, > Jiangli > > On Tue, Jun 3, 2025 at 9:31?PM David Holmes wrote: >> >> On 4/06/2025 5:00 am, Jiangli Zhou wrote: >>> On Mon, Jun 2, 2025 at 6:22?PM David Holmes wrote: >>>> >>>> On 3/06/2025 9:29 am, Jiangli Zhou wrote: >>>>> On Sun, Jun 1, 2025 at 7:55?PM David Holmes wrote: >>>>>> >>>>>> On 31/05/2025 7:20 am, Jiangli Zhou wrote: >>>>>>> On Thu, May 29, 2025 at 11:54?PM David Holmes wrote: >>>>>>>> >>>>>>>> On 30/05/2025 9:26 am, Jiangli Zhou wrote: >>>>>>>>> >>>>>>>>> I just thought of one more thing related to the discussion now. Any >>>>>>>>> concern if the implementation does not ignore JNI_OnLoad_L and etc if >>>>>>>>> they are defined application's dynamically linked native libraries? Or >>>>>>>>> that's unspecified behavior and it's up to the implement to decide? >>>>>>>> >>>>>>>> For Internal libraries or external? For external you have to follow the >>>>>>>> spec - if both methods exist you only want to execute one of them. >>>>>>> >>>>>>> It's for the external (non-JDK) library that I'm a bit more cautious. >>>>>>> >>>>>>> In the existing code in JDK mainline, >>>>>>> https://github.com/openjdk/jdk/blob/3cc630985d47be6ba4cf991698e999f17dbde203/src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java#L117, >>>>>>> loadLibrary() first tries to find the built-in library using >>>>>>> JNI_OnLoad_L symbol (L is the library name). When dlsym is called to >>>>>>> find the symbol from the main process, any of the already loaded >>>>>>> shared libraries are also searched, as described by the dlsym man page >>>>>>> (included related part below). >>>>>>> >>>>>>> https://man7.org/linux/man-pages/man3/dlsym.3.html: >>>>>>> RTLD_DEFAULT >>>>>>> Find the first occurrence of the desired symbol using the >>>>>>> default shared object search order. The search will >>>>>>> include global symbols in the executable and its >>>>>>> dependencies, as well as symbols in shared objects that >>>>>>> were dynamically loaded with the RTLD_GLOBAL flag. >>>>>>> >>>>>>> I think it would be rare, it is possible to construct such case: >>>>>>> >>>>>>> There are user JNI libraries A and B, with B is built as a dependency >>>>>>> of A. A defines JNI_OnLoad_A and JNI_OnLoad. B defines JNI_OnLoad_B >>>>>>> and JNI_OnLoad. When A is being loaded using loadLibrary(), >>>>>>> loadLibrary() tries first to lookup JNI_OnLoad_A, which is not found. >>>>>>> A is then loaded dynamically, which causes B being loaded implicitly >>>>>>> as a dependency of A. Later when loadLibrary() is called for B, >>>>>>> JNI_OnLoad_B would be found and then called. This is an existing >>>>>>> behavior. I think it's an unspecified behavior and we don't need to >>>>>>> add any additional checks to prevent JNI_OnLoad_B from being called. >>>>>> >>>>>> That sounds like a significant design flaw to me. You can't specify that >>>>>> JNI_OnLoad_L will only be called if L is statically linked, if the >>>>>> existence of JNI_OnLoad_L is used to infer that L is statically linked! >>>>>> I would expect libraries to have both versions of the OnLoad functions >>>>>> to allow for them being statically or dynamically linked - which the >>>>>> spec allows for by saying the alternate variant is ignored. But then the >>>>>> JDK will execute the wrong method if it finds JNI_OnLoad_L in a >>>>>> dynamically linked library. >>>>> >>>>> JNI_OnLoad_L is used to determine if a requested JNI native library is >>>>> a built-in (statically linked) library. Thus, it can avoid the >>>>> operation of explicit loading for the shared library, e.g. with dlopen >>>>> on Linux. JNI_OnLoad_L is expected to provide the same implementation >>>>> as JNI_OnLoad besides being used as an identifier of a built-in >>>>> library, IIUC. >>>>> >>>>> In the scenario that I described in the previous message, when a JNI >>>>> shared library is already implicitly loaded as a dependency of another >>>>> native library, dlopen for explicitly loading the shared library is >>>>> not necessary. From the implementation point of view, the code seems >>>>> to have been doing the right thing since JDK 8. I did some search and >>>>> found https://stackoverflow.com/questions/32302262/does-dlopen-re-load-already-loaded-dependencies-if-so-what-are-the-implication, >>>>> which point out to the following in POSIX spec (latest >>>>> https://pubs.opengroup.org/onlinepubs/9799919799/): >>>>> >>>>> "Only a single copy of an executable object file shall be brought into >>>>> the address space, even if dlopen() is invoked multiple times in >>>>> reference to the executable object file, and even if different >>>>> pathnames are used to reference the executable object file." >>>>> >>>>> Then avoiding calling dlopen for the already loaded native library >>>>> doesn't cause any undesired side effects. >>>>> >>>>> Perhaps we can update the JNI spec to include the "already loaded" JNI >>>>> native libraries case, in addition to the built-in native libraries, >>>>> regarding JNI_OnLoad_L. Also clarify the "these functions will be >>>>> ignored" part in JNI spec for the dynamically linked libraries. >>>>> >>>>> "If dynamically linked library defines JNI_OnLoad_L and/or >>>>> JNI_OnUnload_L functions, these functions will be ignored." >>>>> >>>>> Thoughts? >>>> >>>> The problem is, as I see it, that the spec assumes that if it finds the >>>> JNI_OnLoad_L symbol then L must be a statically linked library. But that >>>> ignores the case you highlight where L was implicitly dynamically loaded >>>> as a dependency on another library. Hence the existence test for the >>>> symbol is not sufficient to determine if L was statically linked. >>> >>> Right. >>> >>>> >>>> If JNI_OnLoad_L and JNI_OnLoad were guaranteed to always do exactly the >>>> same thing it would not make any practical difference, but surely that >>>> is not always the case? I can certainly postulate the existence of a >>>> library that only needs the "on load" hook for the statically linked >>>> case, in which case invoking it when actually dynamically linked would >>>> be incorrect and potentially harmful. >>> >>> Hmmm, I haven't thought of such a case. David, could you please give a >>> concrete example for the case? >> >> I don't have a concrete example, that's why I just said I could >> "postulate the existence" of such a case. :) >> >>>> >>>> It seems we lack a way to know if a given library is truly statically >>>> linked, or to be advised when a library is implicitly loaded as a >>>> dependency. I am no expert on linking but I've been unable to locate any >>>> information on programmatically determining these conditions. >>> >>> I haven't found anything either. >>> >>>> >>>> If there is no real solution then documenting the problem may be all we >>>> can do. >>> >>> That sounds reasonable to me. >>> >>> I mentioned the new mailing list discussions to Ron, Alan and Magnus >>> today during the hermetic Java meeting. They may have follow up >>> thoughts. >> >> Okay. >> >> David >> ----- >> >> >>> Thanks! >>> Jiangli >>> >>>> >>>> David >>>> ----- >>>> >>>>> Thanks! >>>>> Jiangli >> From shade at openjdk.org Thu Jun 5 12:39:00 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 12:39:00 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads Message-ID: This relates to [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690), but we want to make sure Leyden preload runs until we have a fuller fix. Additional testing: - [x] Ad-hoc perf tests - [ ] Linux x86_64 server fastdebug, `runtime/cds` ------------- Commit messages: - Fix Changes: https://git.openjdk.org/leyden/pull/75/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=75&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8358693 Stats: 7 lines in 1 file changed: 6 ins; 0 del; 1 mod Patch: https://git.openjdk.org/leyden/pull/75.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/75/head:pull/75 PR: https://git.openjdk.org/leyden/pull/75 From shade at openjdk.org Thu Jun 5 13:02:18 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 13:02:18 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 12:33:00 GMT, Aleksey Shipilev wrote: > This relates to [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690), but we want to make sure Leyden preload runs until we have a fuller fix. > > Additional testing: > - [x] Ad-hoc perf tests > - [ ] Linux x86_64 server fastdebug, `runtime/cds` You can clearly see it in `-Xlog:jit+thread=debug`: # Before [0.016s][debug][jit,thread] Added initial compiler thread C2 CompilerThread0 [0.016s][debug][jit,thread] Added initial compiler thread C1 CompilerThread0 [0.026s][debug][jit,thread] Added compiler thread C2 CompilerThread1 (free memory: 62377MB, available non-profiled code cache: 115MB) [0.026s][debug][jit,thread] Added compiler thread C2 CompilerThread2 (free memory: 62377MB, available non-profiled code cache: 115MB) [0.026s][debug][jit,thread] Added compiler thread C2 CompilerThread3 (free memory: 62377MB, available non-profiled code cache: 115MB) [0.026s][debug][jit,thread] Added compiler thread C2 CompilerThread4 (free memory: 62377MB, available non-profiled code cache: 115MB) [0.026s][debug][jit,thread] Added compiler thread C2 CompilerThread5 (free memory: 62377MB, available non-profiled code cache: 115MB) [0.026s][debug][jit,thread] Added compiler thread C2 CompilerThread6 (free memory: 62377MB, available non-profiled code cache: 115MB) [0.026s][debug][jit,thread] Added compiler thread C2 CompilerThread7 (free memory: 62377MB, available non-profiled code cache: 115MB) [0.026s][debug][jit,thread] Added compiler thread C2 CompilerThread8 (free memory: 62377MB, available non-profiled code cache: 115MB) [0.027s][debug][jit,thread] Added compiler thread C2 CompilerThread9 (free memory: 62377MB, available non-profiled code cache: 115MB) [0.027s][debug][jit,thread] Added compiler thread C1 CompilerThread1 (free memory: 62377MB, available profiled code cache: 116MB) [0.027s][debug][jit,thread] Added compiler thread C1 CompilerThread2 (free memory: 62377MB, available profiled code cache: 116MB) [0.027s][debug][jit,thread] Added compiler thread C1 CompilerThread3 (free memory: 62377MB, available profiled code cache: 116MB) [0.027s][debug][jit,thread] Added compiler thread C1 CompilerThread4 (free memory: 62377MB, available profiled code cache: 116MB) # After [0.015s][debug][jit,thread] Added initial compiler thread C2 CompilerThread0 [0.015s][debug][jit,thread] Added initial compiler thread C1 CompilerThread0 [0.016s][debug][jit,thread] Added initial compiler thread C1 AOT code caching CompilerThread [0.016s][debug][jit,thread] Added initial compiler thread C2 AOT code caching CompilerThread [0.026s][debug][jit,thread] Added compiler thread C1 CompilerThread1 (free memory: 62495MB, available profiled code cache: 116MB) [0.027s][debug][jit,thread] Added compiler thread C1 CompilerThread2 (free memory: 62495MB, available profiled code cache: 116MB) [0.027s][debug][jit,thread] Added compiler thread C1 CompilerThread3 (free memory: 62495MB, available profiled code cache: 116MB) [0.027s][debug][jit,thread] Added compiler thread C1 CompilerThread4 (free memory: 62495MB, available profiled code cache: 116MB) The bug regressed premain as we ported up JDK-8354887 from mainline. * | commit be24c2646c8c9e6009f52b891cf058d915f22072 <------ SLOW | | Author: Vladimir Kozlov | | Date: Wed May 28 16:43:31 2025 -0700 | | | | Port JDK-8354887 from mainline | | * | commit 31bf3be94f26f983ade75369d4c257b06dbb2010 <------ FAST || Merge: ab4d18e2d15 2595fcc7cc4 | | Author: Vladimir Kozlov | | Date: Wed May 28 08:12:57 2025 -0700 | | | | Merge 8356192 See: Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC -cp JavacBenchApp.jar -XX:AOTCache=app.aot JavacBenchApp 50 # at be24c2646c8c9e6009f52b891cf058d915f22072 + this fix Time (mean ? ?): 316.2 ms ? 2.1 ms [User: 655.8 ms, System: 105.6 ms] Range (min ? max): 312.3 ms ? 320.8 ms 30 runs # at be24c2646c8c9e6009f52b891cf058d915f22072 Time (mean ? ?): 365.4 ms ? 5.0 ms [User: 894.8 ms, System: 131.4 ms] Range (min ? max): 355.9 ms ? 374.4 ms 30 runs # at 31bf3be94f26f983ade75369d4c257b06dbb2010 Time (mean ? ?): 321.8 ms ? 4.8 ms [User: 657.1 ms, System: 101.6 ms] Range (min ? max): 316.0 ms ? 335.2 ms 30 runs The effect on current premain is less pronounced, because I think there are more regressions. I am chasing those down as well. ------------- PR Comment: https://git.openjdk.org/leyden/pull/75#issuecomment-2944196111 From adinn at openjdk.org Thu Jun 5 13:26:17 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Thu, 5 Jun 2025 13:26:17 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> <3RHzwI7atEFZZw-uEVDlWmaGtmzZJ_SYwGiMplfOM9Y=.5ca0ee7c-7dbe-461f-ba1f-2218c63ce9f7@github.com> Message-ID: <3nfs17NGXY5Ydg_-apbt10WH7WqrEY-n1oazu-92_OI=.7d00f7bd-28eb-4626-b540-95a2c187e0f6@github.com> On Thu, 5 Jun 2025 02:08:50 GMT, Ashutosh Mehra wrote: >> Or we can compromise: `_codeblob_offset, _codeblob_size` >> Stubs are also using CodeBlob. I don't get why you treat stubs differently. > > StubGenerator Stubs used CodeBlob, but in AOT CodeCache we don't store their CodeBlobs as we do for adapters/runtime blobs. We instead only copy the assembly code for each stub. We don't yet store a blob because we are just archiving a couple of special case stubs. But when we rework multi-stub save and restore for each of the stubgen stub groups (initial, cont, etc) then we should probably store/retrieve the code for all stubs in a group as a complete blob. n.b. I say probably because we have to think about the case where we have errors loading code for a given stubgen blob or where the stubs we need at runtime include code that was not embedded in the saved blob at assembly time (i.e. because of changes on the command line). In the former case we would have to invalidate the loaded blob and recreate a new blob. In the latter we would have to generate missing code into a code buffer and create a secondary blob after we finish loading+generating. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/71#discussion_r2128811050 From adinn at openjdk.org Thu Jun 5 13:26:17 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Thu, 5 Jun 2025 13:26:17 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: <3nfs17NGXY5Ydg_-apbt10WH7WqrEY-n1oazu-92_OI=.7d00f7bd-28eb-4626-b540-95a2c187e0f6@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> <3RHzwI7atEFZZw-uEVDlWmaGtmzZJ_SYwGiMplfOM9Y=.5ca0ee7c-7dbe-461f-ba1f-2218c63ce9f7@github.com> <3nfs17NGXY5Ydg_-apbt10WH7WqrEY-n1oazu-92_OI=.7d00f7bd-28eb-4626-b540-95a2c187e0f6@github.com> Message-ID: <2Xk_6JvH_TTikOxXSIGOzKbdOjOxJdZ6qlORtHC2B6o=.47ea3566-8d6e-4d7d-ba2e-f97d32676ff4@github.com> On Thu, 5 Jun 2025 13:05:28 GMT, Andrew Dinn wrote: >> StubGenerator Stubs used CodeBlob, but in AOT CodeCache we don't store their CodeBlobs as we do for adapters/runtime blobs. We instead only copy the assembly code for each stub. > > We don't yet store a blob because we are just archiving a couple of special case stubs. But when we rework multi-stub save and restore for each of the stubgen stub groups (initial, cont, etc) then we should probably store/retrieve the code for all stubs in a group as a complete blob. > > n.b. I say probably because we have to think about the case where we have errors loading code for a given stubgen blob or where the stubs we need at runtime include code that was not embedded in the saved blob at assembly time (i.e. because of changes on the command line). In the former case we would have to invalidate the loaded blob and recreate a new blob. In the latter we would have to generate missing code into a code buffer and create a secondary blob after we finish loading+generating. For now I agree with Vladimir - just use code_offset and code_size. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/71#discussion_r2128812023 From adinn at openjdk.org Thu Jun 5 13:26:17 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Thu, 5 Jun 2025 13:26:17 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 2 Jun 2025 14:51:47 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Remove CodeBuffer::clear_strings() as the relevant destructors clear the > strings > > Signed-off-by: Ashutosh Mehra src/hotspot/share/code/aotCodeCache.hpp line 193: > 191: _not_entrant = false; > 192: _load_fail = false; > 193: _ignore_decompile = true; This leaves field `_ignore_decompile` uninitialized. Should you be setting it to `false` here? ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/71#discussion_r2128422781 From shade at openjdk.org Thu Jun 5 15:22:09 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 15:22:09 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 2 Jun 2025 14:51:47 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Remove CodeBuffer::clear_strings() as the relevant destructors clear the > strings > > Signed-off-by: Ashutosh Mehra I wonder if both https://github.com/openjdk/leyden/pull/75 and https://github.com/openjdk/leyden/pull/76 preclude properly testing this PR. Let's integrate those first too. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2944962760 From shade at openjdk.org Thu Jun 5 15:22:49 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 15:22:49 GMT Subject: RFR: 8358707: [leyden] Flip AOTCompileEagerly back on Message-ID: When upstreaming [JDK-8355003](https://bugs.openjdk.org/browse/JDK-8355003), we introduced `AOTCompileEagerly` flag and defaulted it to disabled, to gate the training data replay. Without AOT code, this causes extra compilations, this is why it is false by default in mainline. But for Leyden, it should remain enabled, since this is the path that loads AOT compiled C2 code. We got this flag as `false` during the mainline->Leyden merge/ports. Additional testing: - [x] Ad-hoc benchmarks - [x] Linux x86_64 server fastdebug, `runtime/cds` ------------- Commit messages: - Also move the declaration to match mainline - Fix Changes: https://git.openjdk.org/leyden/pull/76/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=76&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8358707 Stats: 6 lines in 1 file changed: 3 ins; 3 del; 0 mod Patch: https://git.openjdk.org/leyden/pull/76.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/76/head:pull/76 PR: https://git.openjdk.org/leyden/pull/76 From jianglizhou at google.com Thu Jun 5 15:23:47 2025 From: jianglizhou at google.com (Jiangli Zhou) Date: Thu, 5 Jun 2025 08:23:47 -0700 Subject: Questions about the Hermetic Java project In-Reply-To: <3157708d-6f50-4edc-8479-68c1e974a156@oracle.com> References: <6a9afe3f-e232-4636-8a2e-6112a6e68cce@oracle.com> <30fbc8de-74f9-483e-a1f4-7ab2f1f26fbd@oracle.com> <105e5e22-cc87-48a0-978c-f2e472277843@oracle.com> <8d5075b2-fcbf-4be2-8510-9619b33aee87@oracle.com> <472b8b8a-53ce-4e43-ab20-8b3b7f71fd9d@oracle.com> <3f0bdc84-4fde-4e1a-a89d-fa9c66a51aae@oracle.com> <00171a77-af77-4129-b8f3-a168be44c188@oracle.com> <3157708d-6f50-4edc-8479-68c1e974a156@oracle.com> Message-ID: On Thu, Jun 5, 2025 at 1:33?AM David Holmes wrote: > > On 5/06/2025 1:33 am, Jiangli Zhou wrote: > > Ok, still thanks for the thoughts, David. > > > > To summarize, here is what we can do for the current step: > > > > - Allow JNI_OnLoad_L and etc for JDK internal native libraries with > > the dynamic linking case. > > - JNI spec already allows JNI_OnLoad_L and etc for dynamically linked > > native libraries. No spec change is required to the above. > > Sorry but where does the spec allow this? I thought we had agreed that > this was a limitation of the implementation in regard to detecting > whether a library is loaded dynamically or statically, and that we > needed to document this case in the spec. ?? It's based on the following (referenced in https://mail.openjdk.org/pipermail/leyden-dev/2025-May/002144.html message) specified in https://docs.oracle.com/en/java/javase/21/docs/specs/jni/invocation.html#support-for-statically-linked-libraries : Support for Statically Linked Libraries "If dynamically linked library defines JNI_OnLoad_L and/or JNI_OnUnload_L functions, these functions will be ignored." There are two parts to the above. The first part indicates that the spec allows JNI_OnLoad_L and/or JNI_OnUnload_L being defined in a dynamically linked library. The second part stating "these functions will be ignored" however does not reflect the limitation of the implementation when handling implicitly loaded native libraries. That part needs to be documented. Please let me know if that's more clear. Best, Jiangli > > David > ----- > > > - JNI_OnLoad_L and etc should not be called for dynamically linked > > native libraries when the library is loaded due to loadLibrary() by > > default. If a dynamic library is already loaded as a dependency of > > other native libraries, when loadLibrary() is called for the library, > > JNI_OnLoad_L can be called. That is an existing behavior since JDK 8. > > Need to document (in spec or release notes?). > > > > Best, > > Jiangli > > > > On Tue, Jun 3, 2025 at 9:31?PM David Holmes wrote: > >> > >> On 4/06/2025 5:00 am, Jiangli Zhou wrote: > >>> On Mon, Jun 2, 2025 at 6:22?PM David Holmes wrote: > >>>> > >>>> On 3/06/2025 9:29 am, Jiangli Zhou wrote: > >>>>> On Sun, Jun 1, 2025 at 7:55?PM David Holmes wrote: > >>>>>> > >>>>>> On 31/05/2025 7:20 am, Jiangli Zhou wrote: > >>>>>>> On Thu, May 29, 2025 at 11:54?PM David Holmes < david.holmes at oracle.com> wrote: > >>>>>>>> > >>>>>>>> On 30/05/2025 9:26 am, Jiangli Zhou wrote: > >>>>>>>>> > >>>>>>>>> I just thought of one more thing related to the discussion now. Any > >>>>>>>>> concern if the implementation does not ignore JNI_OnLoad_L and etc if > >>>>>>>>> they are defined application's dynamically linked native libraries? Or > >>>>>>>>> that's unspecified behavior and it's up to the implement to decide? > >>>>>>>> > >>>>>>>> For Internal libraries or external? For external you have to follow the > >>>>>>>> spec - if both methods exist you only want to execute one of them. > >>>>>>> > >>>>>>> It's for the external (non-JDK) library that I'm a bit more cautious. > >>>>>>> > >>>>>>> In the existing code in JDK mainline, > >>>>>>> https://github.com/openjdk/jdk/blob/3cc630985d47be6ba4cf991698e999f17dbde203/src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java#L117 , > >>>>>>> loadLibrary() first tries to find the built-in library using > >>>>>>> JNI_OnLoad_L symbol (L is the library name). When dlsym is called to > >>>>>>> find the symbol from the main process, any of the already loaded > >>>>>>> shared libraries are also searched, as described by the dlsym man page > >>>>>>> (included related part below). > >>>>>>> > >>>>>>> https://man7.org/linux/man-pages/man3/dlsym.3.html: > >>>>>>> RTLD_DEFAULT > >>>>>>> Find the first occurrence of the desired symbol using the > >>>>>>> default shared object search order. The search will > >>>>>>> include global symbols in the executable and its > >>>>>>> dependencies, as well as symbols in shared objects that > >>>>>>> were dynamically loaded with the RTLD_GLOBAL flag. > >>>>>>> > >>>>>>> I think it would be rare, it is possible to construct such case: > >>>>>>> > >>>>>>> There are user JNI libraries A and B, with B is built as a dependency > >>>>>>> of A. A defines JNI_OnLoad_A and JNI_OnLoad. B defines JNI_OnLoad_B > >>>>>>> and JNI_OnLoad. When A is being loaded using loadLibrary(), > >>>>>>> loadLibrary() tries first to lookup JNI_OnLoad_A, which is not found. > >>>>>>> A is then loaded dynamically, which causes B being loaded implicitly > >>>>>>> as a dependency of A. Later when loadLibrary() is called for B, > >>>>>>> JNI_OnLoad_B would be found and then called. This is an existing > >>>>>>> behavior. I think it's an unspecified behavior and we don't need to > >>>>>>> add any additional checks to prevent JNI_OnLoad_B from being called. > >>>>>> > >>>>>> That sounds like a significant design flaw to me. You can't specify that > >>>>>> JNI_OnLoad_L will only be called if L is statically linked, if the > >>>>>> existence of JNI_OnLoad_L is used to infer that L is statically linked! > >>>>>> I would expect libraries to have both versions of the OnLoad functions > >>>>>> to allow for them being statically or dynamically linked - which the > >>>>>> spec allows for by saying the alternate variant is ignored. But then the > >>>>>> JDK will execute the wrong method if it finds JNI_OnLoad_L in a > >>>>>> dynamically linked library. > >>>>> > >>>>> JNI_OnLoad_L is used to determine if a requested JNI native library is > >>>>> a built-in (statically linked) library. Thus, it can avoid the > >>>>> operation of explicit loading for the shared library, e.g. with dlopen > >>>>> on Linux. JNI_OnLoad_L is expected to provide the same implementation > >>>>> as JNI_OnLoad besides being used as an identifier of a built-in > >>>>> library, IIUC. > >>>>> > >>>>> In the scenario that I described in the previous message, when a JNI > >>>>> shared library is already implicitly loaded as a dependency of another > >>>>> native library, dlopen for explicitly loading the shared library is > >>>>> not necessary. From the implementation point of view, the code seems > >>>>> to have been doing the right thing since JDK 8. I did some search and > >>>>> found https://stackoverflow.com/questions/32302262/does-dlopen-re-load-already-loaded-dependencies-if-so-what-are-the-implication , > >>>>> which point out to the following in POSIX spec (latest > >>>>> https://pubs.opengroup.org/onlinepubs/9799919799/): > >>>>> > >>>>> "Only a single copy of an executable object file shall be brought into > >>>>> the address space, even if dlopen() is invoked multiple times in > >>>>> reference to the executable object file, and even if different > >>>>> pathnames are used to reference the executable object file." > >>>>> > >>>>> Then avoiding calling dlopen for the already loaded native library > >>>>> doesn't cause any undesired side effects. > >>>>> > >>>>> Perhaps we can update the JNI spec to include the "already loaded" JNI > >>>>> native libraries case, in addition to the built-in native libraries, > >>>>> regarding JNI_OnLoad_L. Also clarify the "these functions will be > >>>>> ignored" part in JNI spec for the dynamically linked libraries. > >>>>> > >>>>> "If dynamically linked library defines JNI_OnLoad_L and/or > >>>>> JNI_OnUnload_L functions, these functions will be ignored." > >>>>> > >>>>> Thoughts? > >>>> > >>>> The problem is, as I see it, that the spec assumes that if it finds the > >>>> JNI_OnLoad_L symbol then L must be a statically linked library. But that > >>>> ignores the case you highlight where L was implicitly dynamically loaded > >>>> as a dependency on another library. Hence the existence test for the > >>>> symbol is not sufficient to determine if L was statically linked. > >>> > >>> Right. > >>> > >>>> > >>>> If JNI_OnLoad_L and JNI_OnLoad were guaranteed to always do exactly the > >>>> same thing it would not make any practical difference, but surely that > >>>> is not always the case? I can certainly postulate the existence of a > >>>> library that only needs the "on load" hook for the statically linked > >>>> case, in which case invoking it when actually dynamically linked would > >>>> be incorrect and potentially harmful. > >>> > >>> Hmmm, I haven't thought of such a case. David, could you please give a > >>> concrete example for the case? > >> > >> I don't have a concrete example, that's why I just said I could > >> "postulate the existence" of such a case. :) > >> > >>>> > >>>> It seems we lack a way to know if a given library is truly statically > >>>> linked, or to be advised when a library is implicitly loaded as a > >>>> dependency. I am no expert on linking but I've been unable to locate any > >>>> information on programmatically determining these conditions. > >>> > >>> I haven't found anything either. > >>> > >>>> > >>>> If there is no real solution then documenting the problem may be all we > >>>> can do. > >>> > >>> That sounds reasonable to me. > >>> > >>> I mentioned the new mailing list discussions to Ron, Alan and Magnus > >>> today during the hermetic Java meeting. They may have follow up > >>> thoughts. > >> > >> Okay. > >> > >> David > >> ----- > >> > >> > >>> Thanks! > >>> Jiangli > >>> > >>>> > >>>> David > >>>> ----- > >>>> > >>>>> Thanks! > >>>>> Jiangli > >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kvn at openjdk.org Thu Jun 5 15:42:07 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Thu, 5 Jun 2025 15:42:07 GMT Subject: RFR: 8358707: [leyden] Flip AOTCompileEagerly back on In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 15:17:12 GMT, Aleksey Shipilev wrote: > When upstreaming [JDK-8355003](https://bugs.openjdk.org/browse/JDK-8355003), we introduced `AOTCompileEagerly` flag and defaulted it to disabled, to gate the training data replay. Without AOT code, this causes extra compilations, this is why it is false by default in mainline. But for Leyden, it should remain enabled, since this is the path that loads AOT compiled C2 code. We got this flag as `false` during the mainline->Leyden merge/ports. > > Additional testing: > - [x] Ad-hoc benchmarks > - [x] Linux x86_64 server fastdebug, `runtime/cds` Yes. Igor pointed it me after I did merge but I had been busy. Trivial. ------------- Marked as reviewed by kvn (Committer). PR Review: https://git.openjdk.org/leyden/pull/76#pullrequestreview-2900842571 PR Comment: https://git.openjdk.org/leyden/pull/76#issuecomment-2945025270 From shade at openjdk.org Thu Jun 5 15:46:34 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 15:46:34 GMT Subject: git: openjdk/leyden: premain: 8358707: [leyden] Flip AOTCompileEagerly back on Message-ID: <3986a7b3-fc35-407b-a756-e91d6e9b4d8e@openjdk.org> Changeset: c1885aad Branch: premain Author: Aleksey Shipilev Date: 2025-06-05 15:45:58 +0000 URL: https://git.openjdk.org/leyden/commit/c1885aadd1d3c4d4c44da84a1a1663674b748fe3 8358707: [leyden] Flip AOTCompileEagerly back on Reviewed-by: kvn ! src/hotspot/share/cds/cds_globals.hpp From shade at openjdk.org Thu Jun 5 15:49:09 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 15:49:09 GMT Subject: RFR: 8358707: [leyden] Flip AOTCompileEagerly back on In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 15:17:12 GMT, Aleksey Shipilev wrote: > When upstreaming [JDK-8355003](https://bugs.openjdk.org/browse/JDK-8355003), we introduced `AOTCompileEagerly` flag and defaulted it to disabled, to gate the training data replay. Without AOT code, this causes extra compilations, this is why it is false by default in mainline. But for Leyden, it should remain enabled, since this is the path that loads AOT compiled C2 code. We got this flag as `false` during the mainline->Leyden merge/ports. > > Additional testing: > - [x] Ad-hoc benchmarks > - [x] Linux x86_64 server fastdebug, `runtime/cds` Thanks! Here goes. ------------- PR Comment: https://git.openjdk.org/leyden/pull/76#issuecomment-2945039468 From shade at openjdk.org Thu Jun 5 15:49:09 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 15:49:09 GMT Subject: Integrated: 8358707: [leyden] Flip AOTCompileEagerly back on In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 15:17:12 GMT, Aleksey Shipilev wrote: > When upstreaming [JDK-8355003](https://bugs.openjdk.org/browse/JDK-8355003), we introduced `AOTCompileEagerly` flag and defaulted it to disabled, to gate the training data replay. Without AOT code, this causes extra compilations, this is why it is false by default in mainline. But for Leyden, it should remain enabled, since this is the path that loads AOT compiled C2 code. We got this flag as `false` during the mainline->Leyden merge/ports. > > Additional testing: > - [x] Ad-hoc benchmarks > - [x] Linux x86_64 server fastdebug, `runtime/cds` This pull request has now been integrated. Changeset: c1885aad Author: Aleksey Shipilev URL: https://git.openjdk.org/leyden/commit/c1885aadd1d3c4d4c44da84a1a1663674b748fe3 Stats: 6 lines in 1 file changed: 3 ins; 3 del; 0 mod 8358707: [leyden] Flip AOTCompileEagerly back on Reviewed-by: kvn ------------- PR: https://git.openjdk.org/leyden/pull/76 From shade at openjdk.org Thu Jun 5 15:50:01 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 15:50:01 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 12:59:36 GMT, Aleksey Shipilev wrote: > The effect on current premain is less pronounced, because I think there are more regressions. I am chasing those down as well. Now that https://github.com/openjdk/leyden/pull/76 has integrated, we have the performance improvements from this PR on current premain too. See: # Current premain Time (mean ? ?): 370.1 ms ? 5.9 ms [User: 909.2 ms, System: 137.2 ms] Range (min ? max): 363.8 ms ? 389.9 ms 30 runs # This PR Time (mean ? ?): 329.1 ms ? 5.0 ms [User: 667.7 ms, System: 104.6 ms] Range (min ? max): 320.9 ms ? 349.9 ms 30 runs ------------- PR Comment: https://git.openjdk.org/leyden/pull/75#issuecomment-2945055572 From kvn at openjdk.org Thu Jun 5 15:55:02 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Thu, 5 Jun 2025 15:55:02 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 2 Jun 2025 14:51:47 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Remove CodeBuffer::clear_strings() as the relevant destructors clear the > strings > > Signed-off-by: Ashutosh Mehra > I wonder if both #75 and #76 preclude properly testing this PR. Let's integrate those first too. Yes, and merge from mainline with all AOT bugs fixes there. I will wait JDK 25 fork before merge. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2945074937 From kvn at openjdk.org Thu Jun 5 16:15:21 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Thu, 5 Jun 2025 16:15:21 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 12:33:00 GMT, Aleksey Shipilev wrote: > This relates to [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690), but we want to make sure Leyden preload runs until we have a fuller fix. > > Additional testing: > - [x] Ad-hoc perf tests > - [x] Linux x86_64 server fastdebug, `runtime/cds` Please update `AOTCodeCache::is_code_load_thread_on()` instead. ------------- PR Review: https://git.openjdk.org/leyden/pull/75#pullrequestreview-2900942432 From kvn at openjdk.org Thu Jun 5 16:25:06 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Thu, 5 Jun 2025 16:25:06 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 2 Jun 2025 14:51:47 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Remove CodeBuffer::clear_strings() as the relevant destructors clear the > strings > > Signed-off-by: Ashutosh Mehra And we need to fix bootstrap sequence: [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690) and https://github.com/openjdk/leyden/pull/75 ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2945156433 From shade at openjdk.org Thu Jun 5 16:50:59 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 16:50:59 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads [v2] In-Reply-To: References: Message-ID: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> > This relates to [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690), but we want to make sure Leyden preload runs until we have a fuller fix. > > Additional testing: > - [x] Ad-hoc perf tests > - [x] Linux x86_64 server fastdebug, `runtime/cds` 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 three additional commits since the last revision: - Move - Merge branch 'premain' into JDK-8358693-regression-no-preload - Fix ------------- Changes: - all: https://git.openjdk.org/leyden/pull/75/files - new: https://git.openjdk.org/leyden/pull/75/files/d0c8c5c4..baa13edd Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=75&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=75&range=00-01 Stats: 19 lines in 3 files changed: 8 ins; 9 del; 2 mod Patch: https://git.openjdk.org/leyden/pull/75.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/75/head:pull/75 PR: https://git.openjdk.org/leyden/pull/75 From shade at openjdk.org Thu Jun 5 16:51:00 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 16:51:00 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads [v2] In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 16:12:13 GMT, Vladimir Kozlov wrote: > Please update `AOTCodeCache::is_code_load_thread_on()` instead. That also works, updated there. ------------- PR Comment: https://git.openjdk.org/leyden/pull/75#issuecomment-2945225091 From shade at openjdk.org Thu Jun 5 16:54:04 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 16:54:04 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads [v2] In-Reply-To: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> References: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> Message-ID: On Thu, 5 Jun 2025 16:50:59 GMT, Aleksey Shipilev wrote: >> This relates to [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690), but we want to make sure Leyden preload runs until we have a fuller fix. >> >> Additional testing: >> - [x] Ad-hoc perf tests >> - [x] Linux x86_64 server fastdebug, `runtime/cds` > > 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 three additional commits since the last revision: > > - Move > - Merge branch 'premain' into JDK-8358693-regression-no-preload > - Fix I'll step out for a while, this PR would auto-integrate once review is done. Please put one in if you are happy with current version. ------------- PR Comment: https://git.openjdk.org/leyden/pull/75#issuecomment-2945242329 From kvn at openjdk.org Thu Jun 5 17:19:09 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Thu, 5 Jun 2025 17:19:09 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads [v2] In-Reply-To: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> References: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> Message-ID: On Thu, 5 Jun 2025 16:50:59 GMT, Aleksey Shipilev wrote: >> This relates to [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690), but we want to make sure Leyden preload runs until we have a fuller fix. >> >> Additional testing: >> - [x] Ad-hoc perf tests >> - [x] Linux x86_64 server fastdebug, `runtime/cds` > > 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 three additional commits since the last revision: > > - Move > - Merge branch 'premain' into JDK-8358693-regression-no-preload > - Fix Good. ------------- Marked as reviewed by kvn (Committer). PR Review: https://git.openjdk.org/leyden/pull/75#pullrequestreview-2901240811 From shade at openjdk.org Thu Jun 5 17:39:12 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 17:39:12 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads [v2] In-Reply-To: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> References: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> Message-ID: On Thu, 5 Jun 2025 16:50:59 GMT, Aleksey Shipilev wrote: >> This relates to [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690), but we want to make sure Leyden preload runs until we have a fuller fix. >> >> Additional testing: >> - [x] Ad-hoc perf tests >> - [x] Linux x86_64 server fastdebug, `runtime/cds` > > 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 three additional commits since the last revision: > > - Move > - Merge branch 'premain' into JDK-8358693-regression-no-preload > - Fix No? Auto-integrate does not work here? Pity. Thanks! ------------- PR Comment: https://git.openjdk.org/leyden/pull/75#issuecomment-2945417079 From shade at openjdk.org Thu Jun 5 18:17:51 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 18:17:51 GMT Subject: RFR: 8358722: [leyden] Revert whitespace/comment diffs against mainline Message-ID: Not having extra whitespace/comments hunks against mainline makes merges simpler. These are the extra hunks I notices when looking through Leyden-vs-mainline webrev. Additional testing: - [x] Linux x86_64 server fastdebug, `runtime/cds` ------------- Commit messages: - Fix - Fix Changes: https://git.openjdk.org/leyden/pull/77/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=77&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8358722 Stats: 88 lines in 39 files changed: 28 ins; 39 del; 21 mod Patch: https://git.openjdk.org/leyden/pull/77.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/77/head:pull/77 PR: https://git.openjdk.org/leyden/pull/77 From kvn at openjdk.org Thu Jun 5 18:24:06 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Thu, 5 Jun 2025 18:24:06 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads [v2] In-Reply-To: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> References: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> Message-ID: On Thu, 5 Jun 2025 16:50:59 GMT, Aleksey Shipilev wrote: >> This relates to [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690), but we want to make sure Leyden preload runs until we have a fuller fix. >> >> Additional testing: >> - [x] Ad-hoc perf tests >> - [x] Linux x86_64 server fastdebug, `runtime/cds` > > 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 three additional commits since the last revision: > > - Move > - Merge branch 'premain' into JDK-8358693-regression-no-preload > - Fix What is going on ??? ------------- PR Comment: https://git.openjdk.org/leyden/pull/75#issuecomment-2945590383 From shade at openjdk.org Thu Jun 5 18:38:07 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 18:38:07 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads [v2] In-Reply-To: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> References: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> Message-ID: On Thu, 5 Jun 2025 16:50:59 GMT, Aleksey Shipilev wrote: >> This relates to [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690), but we want to make sure Leyden preload runs until we have a fuller fix. >> >> Additional testing: >> - [x] Ad-hoc perf tests >> - [x] Linux x86_64 server fastdebug, `runtime/cds` > > 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 three additional commits since the last revision: > > - Move > - Merge branch 'premain' into JDK-8358693-regression-no-preload > - Fix I would expect bots are choked up with all this JDK 25 fun? :) ------------- PR Comment: https://git.openjdk.org/leyden/pull/75#issuecomment-2945630130 From kvn at openjdk.org Thu Jun 5 18:45:08 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Thu, 5 Jun 2025 18:45:08 GMT Subject: RFR: 8358722: [leyden] Revert whitespace/comment diffs against mainline In-Reply-To: References: Message-ID: <6T1scppmt6AWBtIUBb5j0T7psYpPykF-PFUVFXKzz-g=.9aebce96-714a-4aed-a0a6-631182192e67@github.com> On Thu, 5 Jun 2025 17:53:24 GMT, Aleksey Shipilev wrote: > Not having extra whitespace/comments hunks against mainline makes merges simpler. These are the extra hunks I notices when looking through Leyden-vs-mainline webrev. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` I marked places with `No` which I think we should not fix in `premain`. Copyright years should stay since we modified some files which we did not push into mainline yet. (Except AOTCodeCache.* files which should be fixed in mainline to include original year) Some code alignments are wrong in mainline and should be fixed there instead. src/hotspot/share/cds/dynamicArchive.cpp line 36: > 34: #include "cds/dynamicArchive.hpp" > 35: #include "cds/lambdaProxyClassDictionary.hpp" > 36: #include "cds/lambdaFormInvokers.hpp" No src/hotspot/share/cds/filemap.cpp line 930: > 928: region_name(region), region, size, p2i(requested_base), _file_offset, crc); > 929: } else { > 930: aot_log_info(aot)("Shared file region (%s) %d: %8zu" No src/hotspot/share/ci/ciEnv.hpp line 2: > 1: /* > 2: * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. No src/hotspot/share/code/aotCodeCache.hpp line 2: > 1: /* > 2: * Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved. No src/hotspot/share/compiler/compiler_globals.hpp line 2: > 1: /* > 2: * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. No src/hotspot/share/oops/compressedKlass.hpp line 217: > 215: // Can only be used after initialization > 216: static address base() { check_init(_base); return _base; } > 217: static address base_addr() { return (address)&_base; } No src/hotspot/share/oops/trainingData.cpp line 226: > 224: } else { > 225: last_ctd = ctd; > 226: mtd->notice_toplevel_compilation(level); No src/hotspot/share/opto/compile.cpp line 4569: > 4567: void Compile::log_late_inline(CallGenerator* cg) { > 4568: if (log() != nullptr) { > 4569: log()->head("late_inline method='%d' inline_id='" JLONG_FORMAT "'", log()->identify(cg->method()), No src/hotspot/share/runtime/perfData.inline.hpp line 2: > 1: /* > 2: * Copyright (c) 2002, 2023, Oracle and/or its affiliates. All rights reserved. No. src/java.base/share/classes/java/lang/ClassLoader.java line 2: > 1: /* > 2: * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. No src/java.base/share/classes/jdk/internal/loader/BootLoader.java line 2: > 1: /* > 2: * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. No src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java line 2: > 1: /* > 2: * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. No src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotVMConfigAccess.java line 2: > 1: /* > 2: * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. No ------------- PR Review: https://git.openjdk.org/leyden/pull/77#pullrequestreview-2901611950 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129751101 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129751804 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129742641 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129747354 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129757460 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129763894 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129765359 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129766249 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129772284 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129778060 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129778568 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129779326 PR Review Comment: https://git.openjdk.org/leyden/pull/77#discussion_r2129786855 From shade at openjdk.org Thu Jun 5 18:45:31 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 18:45:31 GMT Subject: git: openjdk/leyden: premain: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads Message-ID: Changeset: 506af854 Branch: premain Author: Aleksey Shipilev Date: 2025-06-05 18:44:38 +0000 URL: https://git.openjdk.org/leyden/commit/506af854234ed9eeec5543e60f2a0d41b73bc93d 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads Reviewed-by: kvn ! src/hotspot/share/code/aotCodeCache.cpp From shade at openjdk.org Thu Jun 5 18:47:03 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 18:47:03 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads [v2] In-Reply-To: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> References: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> Message-ID: On Thu, 5 Jun 2025 16:50:59 GMT, Aleksey Shipilev wrote: >> This relates to [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690), but we want to make sure Leyden preload runs until we have a fuller fix. >> >> Additional testing: >> - [x] Ad-hoc perf tests >> - [x] Linux x86_64 server fastdebug, `runtime/cds` > > 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 three additional commits since the last revision: > > - Move > - Merge branch 'premain' into JDK-8358693-regression-no-preload > - Fix Let's see if deleting the comments and reissuing the request helps. ------------- PR Comment: https://git.openjdk.org/leyden/pull/75#issuecomment-2945661757 From zsong at openjdk.org Thu Jun 5 18:47:03 2025 From: zsong at openjdk.org (Zhao Song) Date: Thu, 5 Jun 2025 18:47:03 GMT Subject: RFR: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads [v2] In-Reply-To: References: <_cqAXw0mWv49A3UEte5jAeNdLCrpKjBTc0UXFgsQMhU=.b4fd7457-289b-4598-b188-37dd2bf9b4b1@github.com> Message-ID: On Thu, 5 Jun 2025 18:35:23 GMT, Aleksey Shipilev wrote: > I would expect bots are choked up with all this JDK 25 fun? :) The bot is having trouble creating "auto" label for this PR. Not sure if it's a permission issue or something else, and GitHub is experiencing some issues now. https://www.githubstatus.com/ ------------- PR Comment: https://git.openjdk.org/leyden/pull/75#issuecomment-2945663962 From shade at openjdk.org Thu Jun 5 18:47:04 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 18:47:04 GMT Subject: Integrated: 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 12:33:00 GMT, Aleksey Shipilev wrote: > This relates to [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690), but we want to make sure Leyden preload runs until we have a fuller fix. > > Additional testing: > - [x] Ad-hoc perf tests > - [x] Linux x86_64 server fastdebug, `runtime/cds` This pull request has now been integrated. Changeset: 506af854 Author: Aleksey Shipilev URL: https://git.openjdk.org/leyden/commit/506af854234ed9eeec5543e60f2a0d41b73bc93d Stats: 6 lines in 1 file changed: 5 ins; 0 del; 1 mod 8358693: [leyden] Bootstrapping circularity leads to never starting preload threads Reviewed-by: kvn ------------- PR: https://git.openjdk.org/leyden/pull/75 From shade at openjdk.org Thu Jun 5 18:52:45 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 18:52:45 GMT Subject: RFR: 8358722: [leyden] Revert whitespace/comment diffs against mainline [v2] In-Reply-To: References: Message-ID: > Not having extra whitespace/comments hunks against mainline makes merges simpler. These are the extra hunks I notices when looking through Leyden-vs-mainline webrev. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Vladimir's revert ------------- Changes: - all: https://git.openjdk.org/leyden/pull/77/files - new: https://git.openjdk.org/leyden/pull/77/files/a78470c2..d0776576 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=77&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=77&range=00-01 Stats: 15 lines in 13 files changed: 2 ins; 1 del; 12 mod Patch: https://git.openjdk.org/leyden/pull/77.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/77/head:pull/77 PR: https://git.openjdk.org/leyden/pull/77 From shade at openjdk.org Thu Jun 5 18:52:46 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 18:52:46 GMT Subject: RFR: 8358722: [leyden] Revert whitespace/comment diffs against mainline [v2] In-Reply-To: <6T1scppmt6AWBtIUBb5j0T7psYpPykF-PFUVFXKzz-g=.9aebce96-714a-4aed-a0a6-631182192e67@github.com> References: <6T1scppmt6AWBtIUBb5j0T7psYpPykF-PFUVFXKzz-g=.9aebce96-714a-4aed-a0a6-631182192e67@github.com> Message-ID: On Thu, 5 Jun 2025 18:42:04 GMT, Vladimir Kozlov wrote: > I marked places with `No` which I think we should not fix in `premain`. Sure, reverted. Take a look again. ------------- PR Comment: https://git.openjdk.org/leyden/pull/77#issuecomment-2945683161 From shade at openjdk.org Thu Jun 5 19:03:35 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 19:03:35 GMT Subject: RFR: 8358722: [leyden] Revert whitespace/comment diffs against mainline [v3] In-Reply-To: References: Message-ID: > Not having extra whitespace/comments hunks against mainline makes merges simpler. These are the extra hunks I notices when looking through Leyden-vs-mainline webrev. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Missed the spot ------------- Changes: - all: https://git.openjdk.org/leyden/pull/77/files - new: https://git.openjdk.org/leyden/pull/77/files/d0776576..d971117e Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=77&range=02 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=77&range=01-02 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/leyden/pull/77.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/77/head:pull/77 PR: https://git.openjdk.org/leyden/pull/77 From kvn at openjdk.org Thu Jun 5 19:35:02 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Thu, 5 Jun 2025 19:35:02 GMT Subject: RFR: 8358722: [leyden] Revert whitespace/comment diffs against mainline [v3] In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 19:03:35 GMT, Aleksey Shipilev wrote: >> Not having extra whitespace/comments hunks against mainline makes merges simpler. These are the extra hunks I notices when looking through Leyden-vs-mainline webrev. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Missed the spot Good. ------------- Marked as reviewed by kvn (Committer). PR Review: https://git.openjdk.org/leyden/pull/77#pullrequestreview-2901922728 From shade at openjdk.org Thu Jun 5 19:35:03 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 19:35:03 GMT Subject: RFR: 8358722: [leyden] Revert whitespace/comment diffs against mainline [v3] In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 19:03:35 GMT, Aleksey Shipilev wrote: >> Not having extra whitespace/comments hunks against mainline makes merges simpler. These are the extra hunks I notices when looking through Leyden-vs-mainline webrev. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Missed the spot My local testing was clean, and I think this is pretty innocuous change. So I'll integrate the moment GHA clears. This would hopefully help a bit with future merge with JDK 25. ------------- PR Comment: https://git.openjdk.org/leyden/pull/77#issuecomment-2945855269 From shade at openjdk.org Thu Jun 5 20:30:26 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 20:30:26 GMT Subject: git: openjdk/leyden: premain: 8358722: [leyden] Revert whitespace/comment diffs against mainline Message-ID: <8d2af27e-a5fd-494e-a807-d5a36daecf90@openjdk.org> Changeset: 1ad69f5f Branch: premain Author: Aleksey Shipilev Date: 2025-06-05 20:28:14 +0000 URL: https://git.openjdk.org/leyden/commit/1ad69f5f9b433a839604e8c0a75ff3f9653cb15e 8358722: [leyden] Revert whitespace/comment diffs against mainline Reviewed-by: kvn ! make/InitSupport.gmk ! make/hotspot/lib/JvmFeatures.gmk ! src/hotspot/cpu/s390/stubGenerator_s390.cpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveBuilder.hpp ! src/hotspot/share/cds/archiveUtils.hpp ! src/hotspot/share/cds/cds_globals.hpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/cds/metaspaceShared.hpp ! src/hotspot/share/ci/ciInstanceKlass.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/relocInfo.cpp ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/memory/metadataFactory.hpp ! src/hotspot/share/memory/metaspace.cpp ! src/hotspot/share/memory/universe.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/opto/runtime.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/utilities/constantTag.cpp ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/ExcludedClasses.java From shade at openjdk.org Thu Jun 5 20:31:19 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 20:31:19 GMT Subject: RFR: 8358722: [leyden] Revert whitespace/comment diffs against mainline [v3] In-Reply-To: References: Message-ID: On Thu, 5 Jun 2025 19:03:35 GMT, Aleksey Shipilev wrote: >> Not having extra whitespace/comments hunks against mainline makes merges simpler. These are the extra hunks I notices when looking through Leyden-vs-mainline webrev. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Missed the spot Seems fine. I would not wait for Windows to finish tests. ------------- PR Comment: https://git.openjdk.org/leyden/pull/77#issuecomment-2946091895 From shade at openjdk.org Thu Jun 5 20:31:19 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 5 Jun 2025 20:31:19 GMT Subject: Integrated: 8358722: [leyden] Revert whitespace/comment diffs against mainline In-Reply-To: References: Message-ID: <_PDZS3WygicWJRSgclXX9Qxj3pQ-IMkxhPRZSs2D_10=.e5efead5-a82d-4ced-aa48-319355ed0e1d@github.com> On Thu, 5 Jun 2025 17:53:24 GMT, Aleksey Shipilev wrote: > Not having extra whitespace/comments hunks against mainline makes merges simpler. These are the extra hunks I notices when looking through Leyden-vs-mainline webrev. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` This pull request has now been integrated. Changeset: 1ad69f5f Author: Aleksey Shipilev URL: https://git.openjdk.org/leyden/commit/1ad69f5f9b433a839604e8c0a75ff3f9653cb15e Stats: 72 lines in 25 files changed: 27 ins; 37 del; 8 mod 8358722: [leyden] Revert whitespace/comment diffs against mainline Reviewed-by: kvn ------------- PR: https://git.openjdk.org/leyden/pull/77 From iveresov at openjdk.org Fri Jun 6 03:25:09 2025 From: iveresov at openjdk.org (Igor Veresov) Date: Fri, 6 Jun 2025 03:25:09 GMT Subject: RFR: 8358343: [leyden] Drop notify_all in CompilationPolicyUtils::Queue::pop In-Reply-To: References: Message-ID: <_9u5Q_gmWZiifSfsqnytlAj_-pYtdQD6cSO-6d5IAXU=.61e3e31b-be90-4fc0-8486-93aa8467f762@github.com> On Tue, 3 Jun 2025 17:59:51 GMT, Aleksey Shipilev wrote: > Found this when reading premain-vs-mainline webrev. Mainline does not have `notify_all` in this method: > https://github.com/openjdk/jdk/blob/c382da579884c28f2765b2c6ba68c0ad4fdcb2ce/src/hotspot/share/compiler/compilationPolicy.hpp#L85-L92 > > But if you remove `notify_all()` in `premain`, then tests start to deadlock, see bug for a sample. The culprit is `CompilationPolicy::flush_replay_training_at_init`, which is only present in premain. I fixed it by using timed waits, which obviates the need for extra notifications. We only enter this method with `-XX:+AOTVerifyTrainingData`, so we don't care much about its performance. This is IMO better than doing a questionable `notify_all` followed by `wait` in load-bearing code. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` (5x, no timeouts yet; still running more iterations) Is there a reason why can't we just do the processing work in the thread calling the flush instead of waiting for the replay thread? That is, why not make it be like this: void CompilationPolicy::flush_replay_training_at_init(TRAPS) { InstaceKlass* ik; do { ik = _training_replay_queue.try_pop(TrainingReplayQueue_lock, THREAD); if (ik != nullptr) { replay_training_at_init_impl(ik, THREAD); } } while (ik != nullptr); } ------------- PR Comment: https://git.openjdk.org/leyden/pull/74#issuecomment-2947960746 From kvn at openjdk.org Fri Jun 6 05:04:59 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 6 Jun 2025 05:04:59 GMT Subject: RFR: 8358546: [premain] AOT code generation should support UseCompactObjectHeaders Message-ID: COH testing was added to tier3 which we use in premain branch testing. And we noticed that `runtime/cds/appcds/aotCode/` tests crashes during "production" run when UseCompactObjectHeaders is on. There were five issues when AOT code is generated with COH: - missing CompressedKlassPointers::base() relocation on x86 in `MacroAssembler::decode_and_move_klass_not_null()` - missing CKP:base() relocation on aarch64 in `MacroAssembler::cmp_klass()` because `decode_klass_not_null_for_aot()` was not called - On aarch64 full AOT encoding/decoding code for compressed klass pointers was generated even when base is NULL. Do special AOT code only when base is not NULL, similar to code on x64. - Record CKP::basse in AOT code cache configuration and check it on load similar to what we do for compressed oops base. - Prototype header value for new allocated object is embedded into C2 generated code as constant. But with COH the prototype also contains encoded class. This class encoding (and prototype header) could be change when CDS store this information in archive. We need to load it in code. Tested tier1-3 ------------- Commit messages: - 8358546: [premain] AOT code generation should support UseCompactObjectHeaders Changes: https://git.openjdk.org/leyden/pull/78/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=78&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8358546 Stats: 26 lines in 5 files changed: 18 ins; 0 del; 8 mod Patch: https://git.openjdk.org/leyden/pull/78.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/78/head:pull/78 PR: https://git.openjdk.org/leyden/pull/78 From shade at openjdk.org Fri Jun 6 06:57:09 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 6 Jun 2025 06:57:09 GMT Subject: RFR: 8358343: [leyden] Drop notify_all in CompilationPolicyUtils::Queue::pop In-Reply-To: <_9u5Q_gmWZiifSfsqnytlAj_-pYtdQD6cSO-6d5IAXU=.61e3e31b-be90-4fc0-8486-93aa8467f762@github.com> References: <_9u5Q_gmWZiifSfsqnytlAj_-pYtdQD6cSO-6d5IAXU=.61e3e31b-be90-4fc0-8486-93aa8467f762@github.com> Message-ID: On Fri, 6 Jun 2025 03:22:05 GMT, Igor Veresov wrote: > Is there a reason why can't we just do the processing work in the thread calling the flush instead of waiting for the replay thread? That is, why not make it be like this: You tell me :) I guess one upside of current code is to leave draining/processing in one place/thread, and thus never run into false positives/negatives due to diagnostic code (this hunk, gated by `-XX:+AOTVerifyTrainingData`) doing something that production code does not. So I mildly prefer it in current form. I can change it, if you want. ------------- PR Comment: https://git.openjdk.org/leyden/pull/74#issuecomment-2948283345 From shade at openjdk.org Fri Jun 6 07:34:46 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 6 Jun 2025 07:34:46 GMT Subject: RFR: 8358343: [leyden] Drop notify_all in CompilationPolicyUtils::Queue::pop [v2] In-Reply-To: References: Message-ID: > Found this when reading premain-vs-mainline webrev. Mainline does not have `notify_all` in this method: > https://github.com/openjdk/jdk/blob/c382da579884c28f2765b2c6ba68c0ad4fdcb2ce/src/hotspot/share/compiler/compilationPolicy.hpp#L85-L92 > > But if you remove `notify_all()` in `premain`, then tests start to deadlock, see bug for a sample. The culprit is `CompilationPolicy::flush_replay_training_at_init`, which is only present in premain. I fixed it by using timed waits, which obviates the need for extra notifications. We only enter this method with `-XX:+AOTVerifyTrainingData`, so we don't care much about its performance. This is IMO better than doing a questionable `notify_all` followed by `wait` in load-bearing code. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` (5x, no timeouts yet; still running more iterations) 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 two additional commits since the last revision: - Merge branch 'premain' into JDK-8358343-leyden-training-notify-all - Fix ------------- Changes: - all: https://git.openjdk.org/leyden/pull/74/files - new: https://git.openjdk.org/leyden/pull/74/files/1f98bbe5..8af7ae69 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=74&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=74&range=00-01 Stats: 95 lines in 26 files changed: 40 ins; 44 del; 11 mod Patch: https://git.openjdk.org/leyden/pull/74.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/74/head:pull/74 PR: https://git.openjdk.org/leyden/pull/74 From iveresov at openjdk.org Fri Jun 6 07:34:46 2025 From: iveresov at openjdk.org (Igor Veresov) Date: Fri, 6 Jun 2025 07:34:46 GMT Subject: RFR: 8358343: [leyden] Drop notify_all in CompilationPolicyUtils::Queue::pop In-Reply-To: References: Message-ID: On Tue, 3 Jun 2025 17:59:51 GMT, Aleksey Shipilev wrote: > Found this when reading premain-vs-mainline webrev. Mainline does not have `notify_all` in this method: > https://github.com/openjdk/jdk/blob/c382da579884c28f2765b2c6ba68c0ad4fdcb2ce/src/hotspot/share/compiler/compilationPolicy.hpp#L85-L92 > > But if you remove `notify_all()` in `premain`, then tests start to deadlock, see bug for a sample. The culprit is `CompilationPolicy::flush_replay_training_at_init`, which is only present in premain. I fixed it by using timed waits, which obviates the need for extra notifications. We only enter this method with `-XX:+AOTVerifyTrainingData`, so we don't care much about its performance. This is IMO better than doing a questionable `notify_all` followed by `wait` in load-bearing code. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` (5x, no timeouts yet; still running more iterations) I don't remember. :) I'm just not a big fan of spin-waits even with sleeps inside... ------------- PR Comment: https://git.openjdk.org/leyden/pull/74#issuecomment-2948362494 From iveresov at openjdk.org Fri Jun 6 07:37:05 2025 From: iveresov at openjdk.org (Igor Veresov) Date: Fri, 6 Jun 2025 07:37:05 GMT Subject: RFR: 8358343: [leyden] Drop notify_all in CompilationPolicyUtils::Queue::pop In-Reply-To: References: Message-ID: <8Kkn3HAuM_xlZkrYfs94bDGdhYnlFOyMHAKyPoe5Bbo=.e1ce665c-8da2-4227-8352-bd003352ab91@github.com> On Tue, 3 Jun 2025 17:59:51 GMT, Aleksey Shipilev wrote: > Found this when reading premain-vs-mainline webrev. Mainline does not have `notify_all` in this method: > https://github.com/openjdk/jdk/blob/c382da579884c28f2765b2c6ba68c0ad4fdcb2ce/src/hotspot/share/compiler/compilationPolicy.hpp#L85-L92 > > But if you remove `notify_all()` in `premain`, then tests start to deadlock, see bug for a sample. The culprit is `CompilationPolicy::flush_replay_training_at_init`, which is only present in premain. I fixed it by using timed waits, which obviates the need for extra notifications. We only enter this method with `-XX:+AOTVerifyTrainingData`, so we don't care much about its performance. This is IMO better than doing a questionable `notify_all` followed by `wait` in load-bearing code. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` (5x, no timeouts yet; still running more iterations) It'd be also a potentially nicely reusable method. Provided that it works of course... ------------- PR Comment: https://git.openjdk.org/leyden/pull/74#issuecomment-2948368134 From iveresov at openjdk.org Fri Jun 6 08:37:04 2025 From: iveresov at openjdk.org (Igor Veresov) Date: Fri, 6 Jun 2025 08:37:04 GMT Subject: RFR: 8358343: [leyden] Drop notify_all in CompilationPolicyUtils::Queue::pop [v2] In-Reply-To: References: Message-ID: On Fri, 6 Jun 2025 07:34:46 GMT, Aleksey Shipilev wrote: >> Found this when reading premain-vs-mainline webrev. Mainline does not have `notify_all` in this method: >> https://github.com/openjdk/jdk/blob/c382da579884c28f2765b2c6ba68c0ad4fdcb2ce/src/hotspot/share/compiler/compilationPolicy.hpp#L85-L92 >> >> But if you remove `notify_all()` in `premain`, then tests start to deadlock, see bug for a sample. The culprit is `CompilationPolicy::flush_replay_training_at_init`, which is only present in premain. I fixed it by using timed waits, which obviates the need for extra notifications. We only enter this method with `-XX:+AOTVerifyTrainingData`, so we don't care much about its performance. This is IMO better than doing a questionable `notify_all` followed by `wait` in load-bearing code. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` (5x, no timeouts yet; still running more iterations) > > 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 two additional commits since the last revision: > > - Merge branch 'premain' into JDK-8358343-leyden-training-notify-all > - Fix Actually the current approach (even with the spin-wait) and my solution too are not really correct. The fact that the queue is empty doesn't mean that every last item has been processed. The last item may have been popped, but still is being worked on. So however you look at it we should set up some kind of a handshake to make sure the replay thread is done processing, not just done popping. ------------- PR Comment: https://git.openjdk.org/leyden/pull/74#issuecomment-2948506858 From shade at openjdk.org Fri Jun 6 09:25:06 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 6 Jun 2025 09:25:06 GMT Subject: RFR: 8358546: [premain] AOT code generation should support UseCompactObjectHeaders In-Reply-To: References: Message-ID: <8I6c2PmAggmoLKi6fQtv8XWA9xVTjeOfazawlEWbR-I=.217e1362-ae6e-4657-96c2-6644511f1c48@github.com> On Fri, 6 Jun 2025 04:59:40 GMT, Vladimir Kozlov wrote: > COH testing was added to tier3 which we use in premain branch testing. And we noticed that `runtime/cds/appcds/aotCode/` tests crashes during "production" run when UseCompactObjectHeaders is on. > > There were five issues when AOT code is generated with COH: > - missing CompressedKlassPointers::base() relocation on x86 in `MacroAssembler::decode_and_move_klass_not_null()` > - missing CKP:base() relocation on aarch64 in `MacroAssembler::cmp_klass()` because `decode_klass_not_null_for_aot()` was not called > - On aarch64 full AOT encoding/decoding code for compressed klass pointers was generated even when base is NULL. Do special AOT code only when base is not NULL, similar to code on x64. > - Record CKP::basse in AOT code cache configuration and check it on load similar to what we do for compressed oops base. > - Prototype header value for new allocated object is embedded into C2 generated code as constant. But with COH the prototype also contains encoded class. This class encoding (and prototype header) could be change when CDS store this information in archive. We need to load it in code. > > Tested tier1-3 Looks reasonable. src/hotspot/share/code/aotCodeCache.cpp line 771: > 769: } > 770: > 771: if ((_compressedKlassBase == nullptr || CompressedKlassPointers::base() == nullptr) && (_compressedKlassBase != CompressedKlassPointers::base())) { I am guessing we only disable `AOTStubCaching`, and not `AOTCodeCaching` wholesale, because the normal code deals with this properly. Correct? ------------- Marked as reviewed by shade (Committer). PR Review: https://git.openjdk.org/leyden/pull/78#pullrequestreview-2904276876 PR Review Comment: https://git.openjdk.org/leyden/pull/78#discussion_r2131805445 From kvn at openjdk.org Fri Jun 6 14:14:08 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 6 Jun 2025 14:14:08 GMT Subject: RFR: 8358546: [premain] AOT code generation should support UseCompactObjectHeaders In-Reply-To: References: Message-ID: On Fri, 6 Jun 2025 04:59:40 GMT, Vladimir Kozlov wrote: > COH testing was added to tier3 which we use in premain branch testing. And we noticed that `runtime/cds/appcds/aotCode/` tests crashes during "production" run when UseCompactObjectHeaders is on. > > There were five issues when AOT code is generated with COH: > - missing CompressedKlassPointers::base() relocation on x86 in `MacroAssembler::decode_and_move_klass_not_null()` > - missing CKP:base() relocation on aarch64 in `MacroAssembler::cmp_klass()` because `decode_klass_not_null_for_aot()` was not called > - On aarch64 full AOT encoding/decoding code for compressed klass pointers was generated even when base is NULL. Do special AOT code only when base is not NULL, similar to code on x64. > - Record CKP::basse in AOT code cache configuration and check it on load similar to what we do for compressed oops base. > - Prototype header value for new allocated object is embedded into C2 generated code as constant. But with COH the prototype also contains encoded class. This class encoding (and prototype header) could be change when CDS store this information in archive. We need to load it in code. > > Tested tier1-3 Thank you for review Aleksey ------------- PR Comment: https://git.openjdk.org/leyden/pull/78#issuecomment-2949391637 From kvn at openjdk.org Fri Jun 6 14:14:09 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 6 Jun 2025 14:14:09 GMT Subject: RFR: 8358546: [premain] AOT code generation should support UseCompactObjectHeaders In-Reply-To: <8I6c2PmAggmoLKi6fQtv8XWA9xVTjeOfazawlEWbR-I=.217e1362-ae6e-4657-96c2-6644511f1c48@github.com> References: <8I6c2PmAggmoLKi6fQtv8XWA9xVTjeOfazawlEWbR-I=.217e1362-ae6e-4657-96c2-6644511f1c48@github.com> Message-ID: On Fri, 6 Jun 2025 08:56:28 GMT, Aleksey Shipilev wrote: >> COH testing was added to tier3 which we use in premain branch testing. And we noticed that `runtime/cds/appcds/aotCode/` tests crashes during "production" run when UseCompactObjectHeaders is on. >> >> There were five issues when AOT code is generated with COH: >> - missing CompressedKlassPointers::base() relocation on x86 in `MacroAssembler::decode_and_move_klass_not_null()` >> - missing CKP:base() relocation on aarch64 in `MacroAssembler::cmp_klass()` because `decode_klass_not_null_for_aot()` was not called >> - On aarch64 full AOT encoding/decoding code for compressed klass pointers was generated even when base is NULL. Do special AOT code only when base is not NULL, similar to code on x64. >> - Record CKP::basse in AOT code cache configuration and check it on load similar to what we do for compressed oops base. >> - Prototype header value for new allocated object is embedded into C2 generated code as constant. But with COH the prototype also contains encoded class. This class encoding (and prototype header) could be change when CDS store this information in archive. We need to load it in code. >> >> Tested tier1-3 > > src/hotspot/share/code/aotCodeCache.cpp line 771: > >> 769: } >> 770: >> 771: if ((_compressedKlassBase == nullptr || CompressedKlassPointers::base() == nullptr) && (_compressedKlassBase != CompressedKlassPointers::base())) { > > I am guessing we only disable `AOTStubCaching`, and not `AOTCodeCaching` wholesale, because the normal code deals with this properly. Correct? yes I still did not figure out what is wrong with stubs. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/78#discussion_r2132275798 From kvn at openjdk.org Fri Jun 6 14:20:14 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 6 Jun 2025 14:20:14 GMT Subject: RFR: 8358546: [premain] AOT code generation should support UseCompactObjectHeaders In-Reply-To: References: <8I6c2PmAggmoLKi6fQtv8XWA9xVTjeOfazawlEWbR-I=.217e1362-ae6e-4657-96c2-6644511f1c48@github.com> Message-ID: On Fri, 6 Jun 2025 14:11:00 GMT, Vladimir Kozlov wrote: >> src/hotspot/share/code/aotCodeCache.cpp line 771: >> >>> 769: } >>> 770: >>> 771: if ((_compressedKlassBase == nullptr || CompressedKlassPointers::base() == nullptr) && (_compressedKlassBase != CompressedKlassPointers::base())) { >> >> I am guessing we only disable `AOTStubCaching`, and not `AOTCodeCaching` wholesale, because the normal code deals with this properly. Correct? > > yes > I still did not figure out what is wrong with stubs. Hmm, actually no. Normal JIT code will be also affected except adapters I think. This code from mainline and have to be adjusted for premain. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/78#discussion_r2132287456 From kvn at openjdk.org Fri Jun 6 14:26:07 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 6 Jun 2025 14:26:07 GMT Subject: RFR: 8358546: [premain] AOT code generation should support UseCompactObjectHeaders In-Reply-To: References: <8I6c2PmAggmoLKi6fQtv8XWA9xVTjeOfazawlEWbR-I=.217e1362-ae6e-4657-96c2-6644511f1c48@github.com> Message-ID: On Fri, 6 Jun 2025 14:17:44 GMT, Vladimir Kozlov wrote: >> yes >> I still did not figure out what is wrong with stubs. > > Hmm, actually no. Normal JIT code will be also affected except adapters I think. This code from mainline and have to be adjusted for premain. I decide just `return false` for all cases here. I will adjust it in other changes. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/78#discussion_r2132297741 From kvn at openjdk.org Fri Jun 6 14:42:47 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 6 Jun 2025 14:42:47 GMT Subject: RFR: 8358546: [premain] AOT code generation should support UseCompactObjectHeaders [v2] In-Reply-To: References: Message-ID: > COH testing was added to tier3 which we use in premain branch testing. And we noticed that `runtime/cds/appcds/aotCode/` tests crashes during "production" run when UseCompactObjectHeaders is on. > > There were five issues when AOT code is generated with COH: > - missing CompressedKlassPointers::base() relocation on x86 in `MacroAssembler::decode_and_move_klass_not_null()` > - missing CKP:base() relocation on aarch64 in `MacroAssembler::cmp_klass()` because `decode_klass_not_null_for_aot()` was not called > - On aarch64 full AOT encoding/decoding code for compressed klass pointers was generated even when base is NULL. Do special AOT code only when base is not NULL, similar to code on x64. > - Record CKP::basse in AOT code cache configuration and check it on load similar to what we do for compressed oops base. > - Prototype header value for new allocated object is embedded into C2 generated code as constant. But with COH the prototype also contains encoded class. This class encoding (and prototype header) could be change when CDS store this information in archive. We need to load it in code. > > Tested tier1-3 Vladimir Kozlov has updated the pull request incrementally with one additional commit since the last revision: Ignore AOT code cache when compressed oop or klass bases are different ------------- Changes: - all: https://git.openjdk.org/leyden/pull/78/files - new: https://git.openjdk.org/leyden/pull/78/files/797baefb..30f9934f Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=78&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=78&range=00-01 Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.org/leyden/pull/78.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/78/head:pull/78 PR: https://git.openjdk.org/leyden/pull/78 From shade at openjdk.org Fri Jun 6 14:47:08 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 6 Jun 2025 14:47:08 GMT Subject: RFR: 8358546: [premain] AOT code generation should support UseCompactObjectHeaders [v2] In-Reply-To: References: Message-ID: On Fri, 6 Jun 2025 14:42:47 GMT, Vladimir Kozlov wrote: >> COH testing was added to tier3 which we use in premain branch testing. And we noticed that `runtime/cds/appcds/aotCode/` tests crashes during "production" run when UseCompactObjectHeaders is on. >> >> There were five issues when AOT code is generated with COH: >> - missing CompressedKlassPointers::base() relocation on x86 in `MacroAssembler::decode_and_move_klass_not_null()` >> - missing CKP:base() relocation on aarch64 in `MacroAssembler::cmp_klass()` because `decode_klass_not_null_for_aot()` was not called >> - On aarch64 full AOT encoding/decoding code for compressed klass pointers was generated even when base is NULL. Do special AOT code only when base is not NULL, similar to code on x64. >> - Record CKP::basse in AOT code cache configuration and check it on load similar to what we do for compressed oops base. >> - Prototype header value for new allocated object is embedded into C2 generated code as constant. But with COH the prototype also contains encoded class. This class encoding (and prototype header) could be change when CDS store this information in archive. We need to load it in code. >> >> Tested tier1-3 > > Vladimir Kozlov has updated the pull request incrementally with one additional commit since the last revision: > > Ignore AOT code cache when compressed oop or klass bases are different Yeah, that's what I thought :) ------------- Marked as reviewed by shade (Committer). PR Review: https://git.openjdk.org/leyden/pull/78#pullrequestreview-2905154711 From asmehra at openjdk.org Fri Jun 6 16:53:22 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 6 Jun 2025 16:53:22 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v4] In-Reply-To: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: > This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. Ashutosh Mehra has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 10 commits: - Merge 8358330: AsmRemarks and DbgStrings clear() method may not get called before their destructor Signed-off-by: Ashutosh Mehra - Fix undefs Signed-off-by: Ashutosh Mehra - Merge branch 'premain' into update-nmethod-caching - Remove AOTCodeEntry::_blob_offset Signed-off-by: Ashutosh Mehra - Remove CodeBuffer::clear_strings() as the relevant destructors clear the strings Signed-off-by: Ashutosh Mehra - Remove redundant call to clear() Signed-off-by: Ashutosh Mehra - More cleanup Signed-off-by: Ashutosh Mehra - Fix compile failures Signed-off-by: Ashutosh Mehra - Refactor nmethod caching Signed-off-by: Ashutosh Mehra - Replace apply_relocations with fix_relocations Signed-off-by: Ashutosh Mehra ------------- Changes: https://git.openjdk.org/leyden/pull/71/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=03 Stats: 889 lines in 11 files changed: 179 ins; 584 del; 126 mod Patch: https://git.openjdk.org/leyden/pull/71.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/71/head:pull/71 PR: https://git.openjdk.org/leyden/pull/71 From asmehra at openjdk.org Fri Jun 6 19:45:41 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 6 Jun 2025 19:45:41 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v5] In-Reply-To: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: > This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: Fix bug in accessing nmethod from Method Signed-off-by: Ashutosh Mehra ------------- Changes: - all: https://git.openjdk.org/leyden/pull/71/files - new: https://git.openjdk.org/leyden/pull/71/files/288c4403..e9cafdee Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=04 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=03-04 Stats: 4 lines in 2 files changed: 3 ins; 0 del; 1 mod Patch: https://git.openjdk.org/leyden/pull/71.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/71/head:pull/71 PR: https://git.openjdk.org/leyden/pull/71 From kvn at openjdk.org Fri Jun 6 20:32:47 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 6 Jun 2025 20:32:47 GMT Subject: git: openjdk/leyden: premain: 8358546: [premain] AOT code generation should support UseCompactObjectHeaders Message-ID: <82ac68a4-5e93-4c9b-a3e1-a856511ff9a3@openjdk.org> Changeset: 017603cf Branch: premain Author: Vladimir Kozlov Date: 2025-06-06 20:31:25 +0000 URL: https://git.openjdk.org/leyden/commit/017603cf5fe6bc84073540c46920e0bb744f5df8 8358546: [premain] AOT code generation should support UseCompactObjectHeaders Reviewed-by: shade ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/aotCodeCache.hpp ! src/hotspot/share/opto/memnode.cpp From kvn at openjdk.org Fri Jun 6 20:34:00 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 6 Jun 2025 20:34:00 GMT Subject: Integrated: 8358546: [premain] AOT code generation should support UseCompactObjectHeaders In-Reply-To: References: Message-ID: On Fri, 6 Jun 2025 04:59:40 GMT, Vladimir Kozlov wrote: > COH testing was added to tier3 which we use in premain branch testing. And we noticed that `runtime/cds/appcds/aotCode/` tests crashes during "production" run when UseCompactObjectHeaders is on. > > There were five issues when AOT code is generated with COH: > - missing CompressedKlassPointers::base() relocation on x86 in `MacroAssembler::decode_and_move_klass_not_null()` > - missing CKP:base() relocation on aarch64 in `MacroAssembler::cmp_klass()` because `decode_klass_not_null_for_aot()` was not called > - On aarch64 full AOT encoding/decoding code for compressed klass pointers was generated even when base is NULL. Do special AOT code only when base is not NULL, similar to code on x64. > - Record CKP::basse in AOT code cache configuration and check it on load similar to what we do for compressed oops base. > - Prototype header value for new allocated object is embedded into C2 generated code as constant. But with COH the prototype also contains encoded class. This class encoding (and prototype header) could be change when CDS store this information in archive. We need to load it in code. > > Tested tier1-3 This pull request has now been integrated. Changeset: 017603cf Author: Vladimir Kozlov URL: https://git.openjdk.org/leyden/commit/017603cf5fe6bc84073540c46920e0bb744f5df8 Stats: 27 lines in 5 files changed: 18 ins; 0 del; 9 mod 8358546: [premain] AOT code generation should support UseCompactObjectHeaders Reviewed-by: shade ------------- PR: https://git.openjdk.org/leyden/pull/78 From asmehra at openjdk.org Sat Jun 7 03:55:20 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Sat, 7 Jun 2025 03:55:20 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v6] In-Reply-To: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: <1j7PrenF4OJpGqmwWCIHBaJ6kLA-WxnL6WrrtLUyE1k=.24dc4665-94bf-4ea9-b79f-138e04c39beb@github.com> > This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: Consolidate handling of asm remarks and dbg strings Signed-off-by: Ashutosh Mehra ------------- Changes: - all: https://git.openjdk.org/leyden/pull/71/files - new: https://git.openjdk.org/leyden/pull/71/files/e9cafdee..f57cb1d8 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=05 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=04-05 Stats: 160 lines in 5 files changed: 34 ins; 66 del; 60 mod Patch: https://git.openjdk.org/leyden/pull/71.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/71/head:pull/71 PR: https://git.openjdk.org/leyden/pull/71 From asmehra at openjdk.org Sun Jun 8 02:24:02 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Sun, 8 Jun 2025 02:24:02 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v7] In-Reply-To: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: > This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: Fix minimal compile failure Signed-off-by: Ashutosh Mehra ------------- Changes: - all: https://git.openjdk.org/leyden/pull/71/files - new: https://git.openjdk.org/leyden/pull/71/files/f57cb1d8..446ac35f Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=06 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=05-06 Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.org/leyden/pull/71.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/71/head:pull/71 PR: https://git.openjdk.org/leyden/pull/71 From asmehra at openjdk.org Mon Jun 9 03:06:07 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 9 Jun 2025 03:06:07 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: <-Lazs_tW6Hrg6J_GpIRpnpzB-AJFOLn7N8n2QYdm7sM=.4b115f69-8e8d-4b28-99a7-753fda5fed99@github.com> On Thu, 5 Jun 2025 16:22:08 GMT, Vladimir Kozlov wrote: >> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: >> >> Remove CodeBuffer::clear_strings() as the relevant destructors clear the >> strings >> >> Signed-off-by: Ashutosh Mehra > > And we need to fix bootstrap sequence: [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690) and https://github.com/openjdk/leyden/pull/75 @vnkozlov @adinn I have merged premain and the fix for JDK-8358330. Also addressed review comments to remove `AOTCodeEntry::_blob_offset`. GHA is passing now. So I guess its ready for another round of review. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2954509288 From david.holmes at oracle.com Mon Jun 9 03:18:56 2025 From: david.holmes at oracle.com (David Holmes) Date: Mon, 9 Jun 2025 13:18:56 +1000 Subject: Questions about the Hermetic Java project In-Reply-To: References: <6a9afe3f-e232-4636-8a2e-6112a6e68cce@oracle.com> <30fbc8de-74f9-483e-a1f4-7ab2f1f26fbd@oracle.com> <105e5e22-cc87-48a0-978c-f2e472277843@oracle.com> <8d5075b2-fcbf-4be2-8510-9619b33aee87@oracle.com> <472b8b8a-53ce-4e43-ab20-8b3b7f71fd9d@oracle.com> <3f0bdc84-4fde-4e1a-a89d-fa9c66a51aae@oracle.com> <00171a77-af77-4129-b8f3-a168be44c188@oracle.com> <3157708d-6f50-4edc-8479-68c1e974a156@oracle.com> Message-ID: <90713024-8fa6-43ab-bdd3-810b1fef5c2b@oracle.com> On 6/06/2025 1:23 am, Jiangli Zhou wrote: > On Thu, Jun 5, 2025 at 1:33?AM David Holmes > wrote: > > > > On 5/06/2025 1:33 am, Jiangli Zhou wrote: > > > Ok, still thanks for the thoughts, David. > > > > > > To summarize, here is what we can do for the current step: > > > > > > - Allow JNI_OnLoad_L and etc for JDK internal native libraries with > > > the dynamic linking case. > > > - JNI spec already allows JNI_OnLoad_L and etc for dynamically linked > > > native libraries. No spec change is required to the above. > > > > Sorry but where does the spec allow this? I thought we had agreed that > > this was a limitation of the implementation in regard to detecting > > whether a library is loaded dynamically or statically, and that we > > needed to document this case in the spec. ?? > > It's based on the following (referenced in https://mail.openjdk.org/ > pipermail/leyden-dev/2025-May/002144.html pipermail/leyden-dev/2025-May/002144.html> message) specified in > https://docs.oracle.com/en/java/javase/21/docs/specs/jni/ > invocation.html#support-for-statically-linked-libraries docs.oracle.com/en/java/javase/21/docs/specs/jni/ > invocation.html#support-for-statically-linked-libraries>: > > Support for Statically Linked Libraries > > > "If dynamically linked library defines JNI_OnLoad_L and/or > JNI_OnUnload_L functions, these functions will be ignored." > > There are two parts to the above. The first part indicates that the spec > allows JNI_OnLoad_L and/or JNI_OnUnload_L being defined in a dynamically > linked library. I don't agree that you can split that one sentence into two parts to allow the first section to be a justification of allowing JNI_OnLoad_L in a dynamically linked library. The intent of this part of to say these functions should not exist but if they do we will ignore them. We have a situation where the spec is clear in intent, but the implementation doesn't have enough information to accurately implement what the spec states. So the intent here is to document this gap between the spec and implementation by adding a note to the spec. David ----- > The second part stating "these functions will be ignored" however does > not reflect the limitation of the implementation when handling > implicitly loaded native libraries. That part needs to be documented. > > Please let me know if that's more clear. > > Best, > > Jiangli > > > > > David > > ----- > > > > > - JNI_OnLoad_L and etc should not be called for dynamically linked > > > native libraries when the library is loaded due to loadLibrary() by > > > default. If a dynamic library is already loaded as a dependency of > > > other native libraries, when loadLibrary() is called for the library, > > > JNI_OnLoad_L can be called. That is an existing behavior since JDK 8. > > > Need to document (in spec or release notes?). > > > > > > Best, > > > Jiangli > > > > > > On Tue, Jun 3, 2025 at 9:31?PM David Holmes > > wrote: > > >> > > >> On 4/06/2025 5:00 am, Jiangli Zhou wrote: > > >>> On Mon, Jun 2, 2025 at 6:22?PM David Holmes > > wrote: > > >>>> > > >>>> On 3/06/2025 9:29 am, Jiangli Zhou wrote: > > >>>>> On Sun, Jun 1, 2025 at 7:55?PM David Holmes > > wrote: > > >>>>>> > > >>>>>> On 31/05/2025 7:20 am, Jiangli Zhou wrote: > > >>>>>>> On Thu, May 29, 2025 at 11:54?PM David Holmes > > wrote: > > >>>>>>>> > > >>>>>>>> On 30/05/2025 9:26 am, Jiangli Zhou wrote: > > >>>>>>>>> > > >>>>>>>>> I just thought of one more thing related to the discussion > now. Any > > >>>>>>>>> concern if the implementation does not ignore JNI_OnLoad_L > and etc if > > >>>>>>>>> they are defined application's dynamically linked native > libraries? Or > > >>>>>>>>> that's unspecified behavior and it's up to the implement to > decide? > > >>>>>>>> > > >>>>>>>> For Internal libraries or external? For external you have to > follow the > > >>>>>>>> spec - if both methods exist you only want to execute one of > them. > > >>>>>>> > > >>>>>>> It's for the external (non-JDK) library that I'm a bit more > cautious. > > >>>>>>> > > >>>>>>> In the existing code in JDK mainline, > > >>>>>>> https://github.com/openjdk/jdk/ > blob/3cc630985d47be6ba4cf991698e999f17dbde203/src/java.base/share/ > classes/jdk/internal/loader/NativeLibraries.java#L117 github.com/openjdk/jdk/blob/3cc630985d47be6ba4cf991698e999f17dbde203/ > src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java#L117>, > > >>>>>>> loadLibrary() first tries to find the built-in library using > > >>>>>>> JNI_OnLoad_L symbol (L is the library name). When dlsym is > called to > > >>>>>>> find the symbol from the main process, any of the already loaded > > >>>>>>> shared libraries are also searched, as described by the dlsym > man page > > >>>>>>> (included related part below). > > >>>>>>> > > >>>>>>> https://man7.org/linux/man-pages/man3/dlsym.3.html man7.org/linux/man-pages/man3/dlsym.3.html>: > > >>>>>>> ? ? ? ? ? ?RTLD_DEFAULT > > >>>>>>> ? ? ? ? ? ? ? ? ? Find the first occurrence of the desired > symbol using the > > >>>>>>> ? ? ? ? ? ? ? ? ? default shared object search order.? The > search will > > >>>>>>> ? ? ? ? ? ? ? ? ? include global symbols in the executable > and its > > >>>>>>> ? ? ? ? ? ? ? ? ? dependencies, as well as symbols in shared > objects that > > >>>>>>> ? ? ? ? ? ? ? ? ? were dynamically loaded with the > RTLD_GLOBAL flag. > > >>>>>>> > > >>>>>>> I think it would be rare, it is possible to construct such case: > > >>>>>>> > > >>>>>>> There are user JNI libraries A and B, with B is built as a > dependency > > >>>>>>> of A. A defines JNI_OnLoad_A and JNI_OnLoad. B defines > JNI_OnLoad_B > > >>>>>>> and JNI_OnLoad. When A is being loaded using loadLibrary(), > > >>>>>>> loadLibrary() tries first to lookup JNI_OnLoad_A, which is > not found. > > >>>>>>> A is then loaded dynamically, which causes B being loaded > implicitly > > >>>>>>> as a dependency of A. Later when loadLibrary() is called for B, > > >>>>>>> JNI_OnLoad_B would be found and then called. This is an existing > > >>>>>>> behavior. I think it's an unspecified behavior and we don't > need to > > >>>>>>> add any additional checks to prevent JNI_OnLoad_B from being > called. > > >>>>>> > > >>>>>> That sounds like a significant design flaw to me. You can't > specify that > > >>>>>> JNI_OnLoad_L will only be called if L is statically linked, if the > > >>>>>> existence of JNI_OnLoad_L is used to infer that L is > statically linked! > > >>>>>> I would expect libraries to have both versions of the OnLoad > functions > > >>>>>> to allow for them being statically or dynamically linked - > which the > > >>>>>> spec allows for by saying the alternate variant is ignored. > But then the > > >>>>>> JDK will execute the wrong method if it finds JNI_OnLoad_L in a > > >>>>>> dynamically linked library. > > >>>>> > > >>>>> JNI_OnLoad_L is used to determine if a requested JNI native > library is > > >>>>> a built-in (statically linked) library. Thus, it can avoid the > > >>>>> operation of explicit loading for the shared library, e.g. with > dlopen > > >>>>> on Linux. JNI_OnLoad_L is expected to provide the same > implementation > > >>>>> as JNI_OnLoad besides being used as an identifier of a built-in > > >>>>> library, IIUC. > > >>>>> > > >>>>> In the scenario that I described in the previous message, when > a JNI > > >>>>> shared library is already implicitly loaded as a dependency of > another > > >>>>> native library, dlopen for explicitly loading the shared library is > > >>>>> not necessary. From the implementation point of view, the code > seems > > >>>>> to have been doing the right thing since JDK 8. I did some > search and > > >>>>> found https://stackoverflow.com/questions/32302262/does-dlopen- > re-load-already-loaded-dependencies-if-so-what-are-the-implication > already-loaded-dependencies-if-so-what-are-the-implication>, > > >>>>> which point out to the following in POSIX spec (latest > > >>>>> https://pubs.opengroup.org/onlinepubs/9799919799/ pubs.opengroup.org/onlinepubs/9799919799/>): > > >>>>> > > >>>>> "Only a single copy of an executable object file shall be > brought into > > >>>>> the address space, even if dlopen() is invoked multiple times in > > >>>>> reference to the executable object file, and even if different > > >>>>> pathnames are used to reference the executable object file." > > >>>>> > > >>>>> Then avoiding calling dlopen for the already loaded native library > > >>>>> doesn't cause any undesired side effects. > > >>>>> > > >>>>> Perhaps we can update the JNI spec to include the "already > loaded" JNI > > >>>>> native libraries case, in addition to the built-in native > libraries, > > >>>>> regarding JNI_OnLoad_L. Also clarify the "these functions will be > > >>>>> ignored" part in JNI spec for the dynamically linked libraries. > > >>>>> > > >>>>> "If dynamically linked library defines JNI_OnLoad_L and/or > > >>>>> JNI_OnUnload_L functions, these functions will be ignored." > > >>>>> > > >>>>> Thoughts? > > >>>> > > >>>> The problem is, as I see it, that the spec assumes that if it > finds the > > >>>> JNI_OnLoad_L symbol then L must be a statically linked library. > But that > > >>>> ignores the case you highlight where L was implicitly > dynamically loaded > > >>>> as a dependency on another library. Hence the existence test for the > > >>>> symbol is not sufficient to determine if L was statically linked. > > >>> > > >>> Right. > > >>> > > >>>> > > >>>> If JNI_OnLoad_L and JNI_OnLoad were guaranteed to always do > exactly the > > >>>> same thing it would not make any practical difference, but > surely that > > >>>> is not always the case? I can certainly postulate the existence of a > > >>>> library that only needs the "on load" hook for the statically linked > > >>>> case, in which case invoking it when actually dynamically linked > would > > >>>> be incorrect and potentially harmful. > > >>> > > >>> Hmmm, I haven't thought of such a case. David, could you please > give a > > >>> concrete example for the case? > > >> > > >> I don't have a concrete example, that's why I just said I could > > >> "postulate the existence" of such a case. :) > > >> > > >>>> > > >>>> It seems we lack a way to know if a given library is truly > statically > > >>>> linked, or to be advised when a library is implicitly loaded as a > > >>>> dependency. I am no expert on linking but I've been unable to > locate any > > >>>> information on programmatically determining these conditions. > > >>> > > >>> I haven't found anything either. > > >>> > > >>>> > > >>>> If there is no real solution then documenting the problem may be > all we > > >>>> can do. > > >>> > > >>> That sounds reasonable to me. > > >>> > > >>> I mentioned the new mailing list discussions to Ron, Alan and Magnus > > >>> today during the hermetic Java meeting. They may have follow up > > >>> thoughts. > > >> > > >> Okay. > > >> > > >> David > > >> ----- > > >> > > >> > > >>> Thanks! > > >>> Jiangli > > >>> > > >>>> > > >>>> David > > >>>> ----- > > >>>> > > >>>>> Thanks! > > >>>>> Jiangli > > >> > > From jianglizhou at google.com Mon Jun 9 18:17:37 2025 From: jianglizhou at google.com (Jiangli Zhou) Date: Mon, 9 Jun 2025 11:17:37 -0700 Subject: Questions about the Hermetic Java project In-Reply-To: <90713024-8fa6-43ab-bdd3-810b1fef5c2b@oracle.com> References: <6a9afe3f-e232-4636-8a2e-6112a6e68cce@oracle.com> <30fbc8de-74f9-483e-a1f4-7ab2f1f26fbd@oracle.com> <105e5e22-cc87-48a0-978c-f2e472277843@oracle.com> <8d5075b2-fcbf-4be2-8510-9619b33aee87@oracle.com> <472b8b8a-53ce-4e43-ab20-8b3b7f71fd9d@oracle.com> <3f0bdc84-4fde-4e1a-a89d-fa9c66a51aae@oracle.com> <00171a77-af77-4129-b8f3-a168be44c188@oracle.com> <3157708d-6f50-4edc-8479-68c1e974a156@oracle.com> <90713024-8fa6-43ab-bdd3-810b1fef5c2b@oracle.com> Message-ID: On Sun, Jun 8, 2025 at 8:19?PM David Holmes wrote: > On 6/06/2025 1:23 am, Jiangli Zhou wrote: > > On Thu, Jun 5, 2025 at 1:33?AM David Holmes > > wrote: > > > > > > On 5/06/2025 1:33 am, Jiangli Zhou wrote: > > > > Ok, still thanks for the thoughts, David. > > > > > > > > To summarize, here is what we can do for the current step: > > > > > > > > - Allow JNI_OnLoad_L and etc for JDK internal native libraries with > > > > the dynamic linking case. > > > > - JNI spec already allows JNI_OnLoad_L and etc for dynamically > linked > > > > native libraries. No spec change is required to the above. > > > > > > Sorry but where does the spec allow this? I thought we had agreed that > > > this was a limitation of the implementation in regard to detecting > > > whether a library is loaded dynamically or statically, and that we > > > needed to document this case in the spec. ?? > > > > It's based on the following (referenced in https://mail.openjdk.org/ > > pipermail/leyden-dev/2025-May/002144.html > pipermail/leyden-dev/2025-May/002144.html> message) specified in > > https://docs.oracle.com/en/java/javase/21/docs/specs/jni/ > > invocation.html#support-for-statically-linked-libraries > docs.oracle.com/en/java/javase/21/docs/specs/jni/ > > invocation.html#support-for-statically-linked-libraries>: > > > > Support for Statically Linked Libraries > > > > > > "If dynamically linked library defines JNI_OnLoad_L and/or > > JNI_OnUnload_L functions, these functions will be ignored." > > > > There are two parts to the above. The first part indicates that the spec > > allows JNI_OnLoad_L and/or JNI_OnUnload_L being defined in a dynamically > > linked library. > > I don't agree that you can split that one sentence into two parts to > allow the first section to be a justification of allowing JNI_OnLoad_L > in a dynamically linked library. The intent of this part of to say these > functions should not exist but if they do we will ignore them. > > We have a situation where the spec is clear in intent, but the > implementation doesn't have enough information to accurately implement > what the spec states. > > So the intent here is to document this gap between the spec and > implementation by adding a note to the spec. > Thanks, David. Your interpretation and reasoning sounds ok to me. More importantly, we have consensus on documenting the case with implicitly loaded dynamically linked native libraries. I'll file a bug. Best Jiangli > > David > ----- > > > The second part stating "these functions will be ignored" however does > > not reflect the limitation of the implementation when handling > > implicitly loaded native libraries. That part needs to be documented. > > > > Please let me know if that's more clear. > > > > Best, > > > > Jiangli > > > > > > > > David > > > ----- > > > > > > > - JNI_OnLoad_L and etc should not be called for dynamically linked > > > > native libraries when the library is loaded due to loadLibrary() by > > > > default. If a dynamic library is already loaded as a dependency of > > > > other native libraries, when loadLibrary() is called for the > library, > > > > JNI_OnLoad_L can be called. That is an existing behavior since JDK > 8. > > > > Need to document (in spec or release notes?). > > > > > > > > Best, > > > > Jiangli > > > > > > > > On Tue, Jun 3, 2025 at 9:31?PM David Holmes > > > wrote: > > > >> > > > >> On 4/06/2025 5:00 am, Jiangli Zhou wrote: > > > >>> On Mon, Jun 2, 2025 at 6:22?PM David Holmes > > > wrote: > > > >>>> > > > >>>> On 3/06/2025 9:29 am, Jiangli Zhou wrote: > > > >>>>> On Sun, Jun 1, 2025 at 7:55?PM David Holmes > > > wrote: > > > >>>>>> > > > >>>>>> On 31/05/2025 7:20 am, Jiangli Zhou wrote: > > > >>>>>>> On Thu, May 29, 2025 at 11:54?PM David Holmes > > > wrote: > > > >>>>>>>> > > > >>>>>>>> On 30/05/2025 9:26 am, Jiangli Zhou wrote: > > > >>>>>>>>> > > > >>>>>>>>> I just thought of one more thing related to the discussion > > now. Any > > > >>>>>>>>> concern if the implementation does not ignore JNI_OnLoad_L > > and etc if > > > >>>>>>>>> they are defined application's dynamically linked native > > libraries? Or > > > >>>>>>>>> that's unspecified behavior and it's up to the implement to > > decide? > > > >>>>>>>> > > > >>>>>>>> For Internal libraries or external? For external you have to > > follow the > > > >>>>>>>> spec - if both methods exist you only want to execute one of > > them. > > > >>>>>>> > > > >>>>>>> It's for the external (non-JDK) library that I'm a bit more > > cautious. > > > >>>>>>> > > > >>>>>>> In the existing code in JDK mainline, > > > >>>>>>> https://github.com/openjdk/jdk/ > > blob/3cc630985d47be6ba4cf991698e999f17dbde203/src/java.base/share/ > > classes/jdk/internal/loader/NativeLibraries.java#L117 > github.com/openjdk/jdk/blob/3cc630985d47be6ba4cf991698e999f17dbde203/ > > > src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java#L117>, > > > >>>>>>> loadLibrary() first tries to find the built-in library using > > > >>>>>>> JNI_OnLoad_L symbol (L is the library name). When dlsym is > > called to > > > >>>>>>> find the symbol from the main process, any of the already > loaded > > > >>>>>>> shared libraries are also searched, as described by the dlsym > > man page > > > >>>>>>> (included related part below). > > > >>>>>>> > > > >>>>>>> https://man7.org/linux/man-pages/man3/dlsym.3.html > man7.org/linux/man-pages/man3/dlsym.3.html>: > > > >>>>>>> RTLD_DEFAULT > > > >>>>>>> Find the first occurrence of the desired > > symbol using the > > > >>>>>>> default shared object search order. The > > search will > > > >>>>>>> include global symbols in the executable > > and its > > > >>>>>>> dependencies, as well as symbols in shared > > objects that > > > >>>>>>> were dynamically loaded with the > > RTLD_GLOBAL flag. > > > >>>>>>> > > > >>>>>>> I think it would be rare, it is possible to construct such > case: > > > >>>>>>> > > > >>>>>>> There are user JNI libraries A and B, with B is built as a > > dependency > > > >>>>>>> of A. A defines JNI_OnLoad_A and JNI_OnLoad. B defines > > JNI_OnLoad_B > > > >>>>>>> and JNI_OnLoad. When A is being loaded using loadLibrary(), > > > >>>>>>> loadLibrary() tries first to lookup JNI_OnLoad_A, which is > > not found. > > > >>>>>>> A is then loaded dynamically, which causes B being loaded > > implicitly > > > >>>>>>> as a dependency of A. Later when loadLibrary() is called for > B, > > > >>>>>>> JNI_OnLoad_B would be found and then called. This is an > existing > > > >>>>>>> behavior. I think it's an unspecified behavior and we don't > > need to > > > >>>>>>> add any additional checks to prevent JNI_OnLoad_B from being > > called. > > > >>>>>> > > > >>>>>> That sounds like a significant design flaw to me. You can't > > specify that > > > >>>>>> JNI_OnLoad_L will only be called if L is statically linked, if > the > > > >>>>>> existence of JNI_OnLoad_L is used to infer that L is > > statically linked! > > > >>>>>> I would expect libraries to have both versions of the OnLoad > > functions > > > >>>>>> to allow for them being statically or dynamically linked - > > which the > > > >>>>>> spec allows for by saying the alternate variant is ignored. > > But then the > > > >>>>>> JDK will execute the wrong method if it finds JNI_OnLoad_L in a > > > >>>>>> dynamically linked library. > > > >>>>> > > > >>>>> JNI_OnLoad_L is used to determine if a requested JNI native > > library is > > > >>>>> a built-in (statically linked) library. Thus, it can avoid the > > > >>>>> operation of explicit loading for the shared library, e.g. with > > dlopen > > > >>>>> on Linux. JNI_OnLoad_L is expected to provide the same > > implementation > > > >>>>> as JNI_OnLoad besides being used as an identifier of a built-in > > > >>>>> library, IIUC. > > > >>>>> > > > >>>>> In the scenario that I described in the previous message, when > > a JNI > > > >>>>> shared library is already implicitly loaded as a dependency of > > another > > > >>>>> native library, dlopen for explicitly loading the shared > library is > > > >>>>> not necessary. From the implementation point of view, the code > > seems > > > >>>>> to have been doing the right thing since JDK 8. I did some > > search and > > > >>>>> found https://stackoverflow.com/questions/32302262/does-dlopen- > > re-load-already-loaded-dependencies-if-so-what-are-the-implication > > > already-loaded-dependencies-if-so-what-are-the-implication>, > > > >>>>> which point out to the following in POSIX spec (latest > > > >>>>> https://pubs.opengroup.org/onlinepubs/9799919799/ > pubs.opengroup.org/onlinepubs/9799919799/>): > > > >>>>> > > > >>>>> "Only a single copy of an executable object file shall be > > brought into > > > >>>>> the address space, even if dlopen() is invoked multiple times in > > > >>>>> reference to the executable object file, and even if different > > > >>>>> pathnames are used to reference the executable object file." > > > >>>>> > > > >>>>> Then avoiding calling dlopen for the already loaded native > library > > > >>>>> doesn't cause any undesired side effects. > > > >>>>> > > > >>>>> Perhaps we can update the JNI spec to include the "already > > loaded" JNI > > > >>>>> native libraries case, in addition to the built-in native > > libraries, > > > >>>>> regarding JNI_OnLoad_L. Also clarify the "these functions will > be > > > >>>>> ignored" part in JNI spec for the dynamically linked libraries. > > > >>>>> > > > >>>>> "If dynamically linked library defines JNI_OnLoad_L and/or > > > >>>>> JNI_OnUnload_L functions, these functions will be ignored." > > > >>>>> > > > >>>>> Thoughts? > > > >>>> > > > >>>> The problem is, as I see it, that the spec assumes that if it > > finds the > > > >>>> JNI_OnLoad_L symbol then L must be a statically linked library. > > But that > > > >>>> ignores the case you highlight where L was implicitly > > dynamically loaded > > > >>>> as a dependency on another library. Hence the existence test for > the > > > >>>> symbol is not sufficient to determine if L was statically linked. > > > >>> > > > >>> Right. > > > >>> > > > >>>> > > > >>>> If JNI_OnLoad_L and JNI_OnLoad were guaranteed to always do > > exactly the > > > >>>> same thing it would not make any practical difference, but > > surely that > > > >>>> is not always the case? I can certainly postulate the existence > of a > > > >>>> library that only needs the "on load" hook for the statically > linked > > > >>>> case, in which case invoking it when actually dynamically linked > > would > > > >>>> be incorrect and potentially harmful. > > > >>> > > > >>> Hmmm, I haven't thought of such a case. David, could you please > > give a > > > >>> concrete example for the case? > > > >> > > > >> I don't have a concrete example, that's why I just said I could > > > >> "postulate the existence" of such a case. :) > > > >> > > > >>>> > > > >>>> It seems we lack a way to know if a given library is truly > > statically > > > >>>> linked, or to be advised when a library is implicitly loaded as a > > > >>>> dependency. I am no expert on linking but I've been unable to > > locate any > > > >>>> information on programmatically determining these conditions. > > > >>> > > > >>> I haven't found anything either. > > > >>> > > > >>>> > > > >>>> If there is no real solution then documenting the problem may be > > all we > > > >>>> can do. > > > >>> > > > >>> That sounds reasonable to me. > > > >>> > > > >>> I mentioned the new mailing list discussions to Ron, Alan and > Magnus > > > >>> today during the hermetic Java meeting. They may have follow up > > > >>> thoughts. > > > >> > > > >> Okay. > > > >> > > > >> David > > > >> ----- > > > >> > > > >> > > > >>> Thanks! > > > >>> Jiangli > > > >>> > > > >>>> > > > >>>> David > > > >>>> ----- > > > >>>> > > > >>>>> Thanks! > > > >>>>> Jiangli > > > >> > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From shade at openjdk.org Tue Jun 10 10:14:28 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 10 Jun 2025 10:14:28 GMT Subject: RFR: 8359107: [leyden] Pick up JDK-835748, JDK-8357473 and rework precompilation waits Message-ID: [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481) will come in from mainline and bring conflicting changes to CompileTask. Additionally, our precompilation ([JDK-8352042](https://bugs.openjdk.org/browse/JDK-8352042)) depends on the code that would go away with [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473). We should cherry-pick [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481), [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473) and rework parallel recompilation to use the newly created `CompileTaskWait_lock` for notifications. Additional testing: - [x] Ad-hoc performance tests - [x] Linux x86_64 server fastdebug, `runtime/cds` ------------- Commit messages: - Also cherry-pick JDK-8357473 - Fix Changes: https://git.openjdk.org/leyden/pull/79/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=79&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8359107 Stats: 157 lines in 7 files changed: 33 ins; 75 del; 49 mod Patch: https://git.openjdk.org/leyden/pull/79.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/79/head:pull/79 PR: https://git.openjdk.org/leyden/pull/79 From shade at openjdk.org Tue Jun 10 10:45:55 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 10 Jun 2025 10:45:55 GMT Subject: RFR: 8359107: [leyden] Pick up JDK-8357481, JDK-8357473 and rework precompilation waits In-Reply-To: References: Message-ID: <3MXgAjh_BkdZ-XZJACsIEhZv_AFXcl0VX0_vS0FqPCE=.d9abf304-4bda-4996-b7bf-a6f0428ae853@github.com> On Tue, 10 Jun 2025 10:09:25 GMT, Aleksey Shipilev wrote: > [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481) will come in from mainline and bring conflicting changes to CompileTask. Additionally, our precompilation ([JDK-8352042](https://bugs.openjdk.org/browse/JDK-8352042)) depends on the code that would go away with [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473). We should cherry-pick [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481), [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473) and rework parallel recompilation to use the newly created `CompileTaskWait_lock` for notifications. > > Additional testing: > - [x] Ad-hoc performance tests > - [x] Linux x86_64 server fastdebug, `runtime/cds` Some perf data shows this is mostly a wash, as expected. We optimize footprint with this change. Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC -cp JavacBenchApp.jar -XX:AOTCache=app.aot JavacBenchApp 50 # Current premain Time (mean ? ?): 328.0 ms ? 2.5 ms [User: 666.9 ms, System: 104.9 ms] Range (min ? max): 324.2 ms ? 334.1 ms 30 runs # This PR Time (mean ? ?): 326.9 ms ? 2.5 ms [User: 655.2 ms, System: 101.2 ms] Range (min ? max): 322.6 ms ? 331.5 ms 30 runs ------------- PR Comment: https://git.openjdk.org/leyden/pull/79#issuecomment-2958620083 From kvn at openjdk.org Tue Jun 10 17:37:56 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Tue, 10 Jun 2025 17:37:56 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v3] In-Reply-To: <-Lazs_tW6Hrg6J_GpIRpnpzB-AJFOLn7N8n2QYdm7sM=.4b115f69-8e8d-4b28-99a7-753fda5fed99@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> <-Lazs_tW6Hrg6J_GpIRpnpzB-AJFOLn7N8n2QYdm7sM=.4b115f69-8e8d-4b28-99a7-753fda5fed99@github.com> Message-ID: On Mon, 9 Jun 2025 03:03:09 GMT, Ashutosh Mehra wrote: >> And we need to fix bootstrap sequence: [JDK-8358690](https://bugs.openjdk.org/browse/JDK-8358690) and https://github.com/openjdk/leyden/pull/75 > > @vnkozlov @adinn I have merged premain and the fix for JDK-8358330. Also addressed review comments to remove `AOTCodeEntry::_blob_offset`. GHA is passing now. So I guess its ready for another round of review. @ashu-mehra unfortunately I don't have time to look on this in details now. Will look on it later. On first glance it is fine. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2960094944 From duke at openjdk.org Wed Jun 11 19:01:36 2025 From: duke at openjdk.org (duke) Date: Wed, 11 Jun 2025 19:01:36 GMT Subject: git: openjdk/leyden: hermetic-java-runtime: 151 new changesets Message-ID: <7912e1b9-d2e0-4c6a-955d-ba27244dbea7@openjdk.org> Changeset: 0418b329 Branch: hermetic-java-runtime Author: Sergey Bylokhov Date: 2025-06-02 20:23:14 +0000 URL: https://git.openjdk.org/leyden/commit/0418b3295a199af66700521f571c9b2c1051cac6 8357696: Enhance code consistency: java.desktop/unix Reviewed-by: prr ! src/java.desktop/unix/classes/sun/font/DelegateStrike.java ! src/java.desktop/unix/classes/sun/font/DoubleByteEncoder.java ! src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java ! src/java.desktop/unix/classes/sun/font/FontConfigManager.java ! src/java.desktop/unix/classes/sun/font/MFontConfiguration.java ! src/java.desktop/unix/classes/sun/font/NativeFont.java ! src/java.desktop/unix/classes/sun/font/NativeGlyphMapper.java ! src/java.desktop/unix/classes/sun/font/NativeStrike.java ! src/java.desktop/unix/classes/sun/font/NativeStrikeDisposer.java ! src/java.desktop/unix/classes/sun/font/X11Dingbats.java ! src/java.desktop/unix/classes/sun/font/X11GB18030_0.java ! src/java.desktop/unix/classes/sun/font/X11GB18030_1.java ! src/java.desktop/unix/classes/sun/font/X11GB2312.java ! src/java.desktop/unix/classes/sun/font/X11GBK.java ! src/java.desktop/unix/classes/sun/font/X11Johab.java ! src/java.desktop/unix/classes/sun/font/X11KSC5601.java ! src/java.desktop/unix/classes/sun/font/X11SunUnicode_0.java ! src/java.desktop/unix/classes/sun/font/X11TextRenderer.java ! src/java.desktop/unix/classes/sun/font/XMap.java ! src/java.desktop/unix/classes/sun/font/XRGlyphCache.java ! src/java.desktop/unix/classes/sun/font/XRGlyphCacheEntry.java ! src/java.desktop/unix/classes/sun/font/XRTextRenderer.java ! src/java.desktop/unix/classes/sun/java2d/opengl/GLXGraphicsConfig.java ! src/java.desktop/unix/classes/sun/java2d/opengl/GLXSurfaceData.java ! src/java.desktop/unix/classes/sun/java2d/opengl/GLXVolatileSurfaceManager.java ! src/java.desktop/unix/classes/sun/java2d/x11/X11PMBlitBgLoops.java ! src/java.desktop/unix/classes/sun/java2d/x11/X11PMBlitLoops.java ! src/java.desktop/unix/classes/sun/java2d/x11/X11Renderer.java ! src/java.desktop/unix/classes/sun/java2d/x11/X11SurfaceData.java ! src/java.desktop/unix/classes/sun/java2d/x11/X11SurfaceDataProxy.java ! src/java.desktop/unix/classes/sun/java2d/x11/X11VolatileSurfaceManager.java ! src/java.desktop/unix/classes/sun/java2d/xr/DirtyRegion.java ! src/java.desktop/unix/classes/sun/java2d/xr/GrowableByteArray.java ! src/java.desktop/unix/classes/sun/java2d/xr/GrowableEltArray.java ! src/java.desktop/unix/classes/sun/java2d/xr/GrowablePointArray.java ! src/java.desktop/unix/classes/sun/java2d/xr/GrowableRectArray.java ! src/java.desktop/unix/classes/sun/java2d/xr/MaskTile.java ! src/java.desktop/unix/classes/sun/java2d/xr/MaskTileManager.java ! src/java.desktop/unix/classes/sun/java2d/xr/MutableInteger.java ! src/java.desktop/unix/classes/sun/java2d/xr/XIDGenerator.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRBackendNative.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRColor.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRCompositeManager.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRDrawImage.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRDrawLine.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRGraphicsConfig.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRMaskBlit.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRMaskFill.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRMaskImage.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRPMBlitLoops.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRPaints.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRRenderer.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRSolidSrcPict.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRSurfaceData.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRSurfaceDataProxy.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRUtils.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRVolatileSurfaceManager.java ! src/java.desktop/unix/classes/sun/java2d/xr/XcbRequestCounter.java ! src/java.desktop/unix/classes/sun/print/AttributeClass.java ! src/java.desktop/unix/classes/sun/print/CUPSPrinter.java ! src/java.desktop/unix/classes/sun/print/IPPPrintService.java ! src/java.desktop/unix/classes/sun/print/PrintServiceLookupProvider.java ! src/java.desktop/unix/classes/sun/print/UnixPrintJob.java ! src/java.desktop/unix/classes/sun/print/UnixPrintService.java Changeset: e490b4f0 Branch: hermetic-java-runtime Author: Harshitha Onkar Date: 2025-06-02 21:52:08 +0000 URL: https://git.openjdk.org/leyden/commit/e490b4f04dd094db996cdc4f664c2ed1a7ea2ade 8357082: Stabilize and add debug logs to CopyAreaOOB.java Reviewed-by: serb ! test/jdk/ProblemList.txt ! test/jdk/java/awt/Graphics2D/CopyAreaOOB.java Changeset: c96803dc Branch: hermetic-java-runtime Author: Qizheng Xing Committer: Ioi Lam Date: 2025-06-03 03:09:18 +0000 URL: https://git.openjdk.org/leyden/commit/c96803dc8b480427bca5b1c6b8c4e8693bc90b92 8358035: Remove unused `compute_fingerprint` declaration in `ClassFileStream` Reviewed-by: ccheung, iklam ! src/hotspot/share/classfile/classFileStream.cpp ! src/hotspot/share/classfile/classFileStream.hpp Changeset: 24edd3b2 Branch: hermetic-java-runtime Author: Manuel H?ssig Committer: SendaoYan Date: 2025-06-03 03:19:19 +0000 URL: https://git.openjdk.org/leyden/commit/24edd3b2c1324fd58575a6273e5cae17e3d6fbf5 8354930: IGV: dump C2 graph before and after live range stretching Reviewed-by: rcastanedalo, chagedorn ! src/hotspot/share/opto/chaitin.cpp ! src/hotspot/share/opto/phasetype.hpp ! test/hotspot/jtreg/compiler/lib/ir_framework/CompilePhase.java Changeset: 832c5b06 Branch: hermetic-java-runtime Author: David Beaumont Committer: Jaikiran Pai Date: 2025-06-03 04:01:09 +0000 URL: https://git.openjdk.org/leyden/commit/832c5b06e8f278d70398e07d32d63d094a06967c 8350880: (zipfs) Add support for read-only zip file systems Reviewed-by: lancea, alanb, jpai ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java ! src/jdk.zipfs/share/classes/module-info.java ! test/jdk/jdk/nio/zipfs/NewFileSystemTests.java ! test/jdk/jdk/nio/zipfs/TestPosix.java ! test/jdk/jdk/nio/zipfs/Utils.java Changeset: c5f235c0 Branch: hermetic-java-runtime Author: Roman Marchenko Committer: Sergey Bylokhov Date: 2025-06-03 06:00:28 +0000 URL: https://git.openjdk.org/leyden/commit/c5f235c000db6654493ea109008dbccf97f01678 8347826: Introspector shows wrong method list after 8071693 Reviewed-by: azvegint, serb, aivanov ! src/java.desktop/share/classes/com/sun/beans/introspect/MethodInfo.java ! src/java.desktop/share/classes/com/sun/beans/introspect/PropertyInfo.java ! src/java.desktop/share/classes/java/beans/Introspector.java ! test/jdk/java/beans/Introspector/DefaultMethodBeanPropertyTest.java Changeset: 497a1822 Branch: hermetic-java-runtime Author: Doug Simon Date: 2025-06-03 06:19:23 +0000 URL: https://git.openjdk.org/leyden/commit/497a1822cabcc0475ce0495d56430f1e99b1fb13 8358254: [AOT] runtime/cds/appcds/applications/JavacBench.java#aot crashes with SEGV in ClassLoaderData::holder Reviewed-by: never ! src/hotspot/share/ci/ciMethodData.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/oops/trainingData.hpp ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMethodData.java Changeset: 6cfd4057 Branch: hermetic-java-runtime Author: Doug Simon Date: 2025-06-03 06:20:29 +0000 URL: https://git.openjdk.org/leyden/commit/6cfd4057dce9262f54e71a3930e16da84aa0d9f1 8357619: [JVMCI] Revisit phantom_ref parameter in JVMCINMethodData::get_nmethod_mirror Reviewed-by: eosterlund, never ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/jvmci/jvmciRuntime.hpp Changeset: dbf562c7 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-03 07:25:54 +0000 URL: https://git.openjdk.org/leyden/commit/dbf562c72502ab8da96eb130ff8222bba66c72cc 8358313: G1: Refactor G1CollectedHeap::is_maximal_no_gc Reviewed-by: jsikstro, tschatzl ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp Changeset: be923a8b Branch: hermetic-java-runtime Author: Marc Chevalier Date: 2025-06-03 08:06:43 +0000 URL: https://git.openjdk.org/leyden/commit/be923a8b7229cb7a705e72ebbb3046e9f2085048 8353266: C2: Wrong execution with Integer.bitCount(int) intrinsic on AArch64 Reviewed-by: aph, thartmann ! src/hotspot/cpu/aarch64/aarch64.ad + test/hotspot/jtreg/compiler/intrinsics/BitCountIAarch64PreservesArgument.java Changeset: cff75eb6 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-03 08:14:05 +0000 URL: https://git.openjdk.org/leyden/commit/cff75eb60628827541ea6c08eb1970401f606ebc 8358316: PKCS8Key.getEncoded() can throw NPE after JDK-8298420 Reviewed-by: ascarpino ! src/java.base/share/classes/sun/security/pkcs/PKCS8Key.java Changeset: 6f783e5f Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-03 08:14:23 +0000 URL: https://git.openjdk.org/leyden/commit/6f783e5fab0e98da6c41e3c22d4523733f060d68 8358319: Pem.decode should cache the Pattern Reviewed-by: ascarpino ! src/java.base/share/classes/sun/security/util/Pem.java Changeset: 8674f491 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-03 08:30:17 +0000 URL: https://git.openjdk.org/leyden/commit/8674f49127d75d20c074fb8c4f0736bfe190f8b8 8358318: JFR: Tighten up PlatformTracer initialization Reviewed-by: egahlin ! src/jdk.jfr/share/classes/jdk/jfr/internal/settings/MethodSetting.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/PlatformTracer.java Changeset: 44025276 Branch: hermetic-java-runtime Author: Chad Rakoczy Committer: Aleksey Shipilev Date: 2025-06-03 08:55:34 +0000 URL: https://git.openjdk.org/leyden/commit/4402527683ed08eebf4953a9d83f72f64a5ff4fa 8357223: AArch64: Optimize interpreter profile updates Reviewed-by: shade, aph ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp Changeset: 457d9de8 Branch: hermetic-java-runtime Author: Martin Doerr Date: 2025-06-03 09:24:13 +0000 URL: https://git.openjdk.org/leyden/commit/457d9de81d0f65455e3292fafea03f0e83184029 8358013: [PPC64] VSX has poor performance on Power8 Reviewed-by: dbriemann, clanger ! src/hotspot/cpu/ppc/globals_ppc.hpp ! src/hotspot/cpu/ppc/vm_version_ppc.cpp ! test/hotspot/jtreg/compiler/c2/irTests/TestAutoVectorization2DArray.java ! test/hotspot/jtreg/compiler/loopopts/superword/MinMaxRed_Int.java Changeset: def7355c Branch: hermetic-java-runtime Author: Axel Boldt-Christmas Date: 2025-06-03 09:36:21 +0000 URL: https://git.openjdk.org/leyden/commit/def7355cc97c7099dd04778a7dd7fd4ba5a7a630 8356716: ZGC: Cleanup Uncommit Logic Reviewed-by: eosterlund, jsikstro ! src/hotspot/share/gc/z/zMappedCache.cpp ! src/hotspot/share/gc/z/zMappedCache.hpp ! src/hotspot/share/gc/z/zPageAllocator.cpp ! src/hotspot/share/gc/z/zPageAllocator.hpp ! src/hotspot/share/gc/z/zPhysicalMemoryManager.cpp ! src/hotspot/share/gc/z/zUncommitter.cpp ! src/hotspot/share/gc/z/zUncommitter.hpp ! test/hotspot/jtreg/gc/z/TestUncommit.java Changeset: c1a81cfb Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-06-03 10:08:32 +0000 URL: https://git.openjdk.org/leyden/commit/c1a81cfb51f9c4e7c32a44126746e8655adc349e 8358284: doc/testing.html is not up to date after JDK-8355003 Reviewed-by: jwaters, dholmes, erikj ! doc/testing.html Changeset: 78a392aa Branch: hermetic-java-runtime Author: Joel Sikstr?m Date: 2025-06-03 11:42:10 +0000 URL: https://git.openjdk.org/leyden/commit/78a392aa3b0cda52cfacfa15250fa61010519424 8356880: ZGC: Backoff in ZLiveMap::reset spin-loop Reviewed-by: stefank, eosterlund, aboldtch ! src/hotspot/share/gc/z/zLiveMap.cpp Changeset: 46183742 Branch: hermetic-java-runtime Author: Axel Boldt-Christmas Date: 2025-06-03 12:15:08 +0000 URL: https://git.openjdk.org/leyden/commit/4618374269e8636c772d921ad0c2c2d9e5e3e643 8358310: ZGC: riscv, ppc ZPlatformAddressOffsetBits may return a too large value Reviewed-by: eosterlund, mdoerr, fyang ! src/hotspot/cpu/ppc/gc/z/zAddress_ppc.cpp ! src/hotspot/cpu/riscv/gc/z/zAddress_riscv.cpp Changeset: d3f54dae Branch: hermetic-java-runtime Author: Erik ?sterlund Date: 2025-06-03 14:27:41 +0000 URL: https://git.openjdk.org/leyden/commit/d3f54dae30e377b9fb4aaa06bc123b71de444a74 8357954: G1: No SATB barriers applied for runtime IN_NATIVE atomics Reviewed-by: shade, kbarrett, tschatzl ! src/hotspot/share/gc/g1/g1BarrierSet.hpp ! src/hotspot/share/gc/g1/g1BarrierSet.inline.hpp Changeset: e2f73665 Branch: hermetic-java-runtime Author: Archie Cobbs Date: 2025-06-03 14:35:17 +0000 URL: https://git.openjdk.org/leyden/commit/e2f736658fbd03d2dc2186dbd9ba9b13b1f1a8ac 8329951: `var` emits deprecation warnings that do not point to the file or position Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Analyzer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java + test/langtools/tools/javac/tree/VarWarnPosition.java + test/langtools/tools/javac/tree/VarWarnPosition.out Changeset: faf19abd Branch: hermetic-java-runtime Author: Yudi Zheng Date: 2025-06-03 15:10:53 +0000 URL: https://git.openjdk.org/leyden/commit/faf19abd312ac461f9f74035fec61af7d834ffc1 8358333: Use VEX2 prefix in Assembler::psllq Reviewed-by: jbhateja, thartmann ! src/hotspot/cpu/x86/assembler_x86.cpp Changeset: 01f01b6f Branch: hermetic-java-runtime Author: Igor Veresov Date: 2025-06-03 15:31:07 +0000 URL: https://git.openjdk.org/leyden/commit/01f01b6f7b8a2f0dbe940bffd567ff2b46732787 8358283: Inconsistent failure mode for MetaspaceObj::operator new(size_t, MemTag) Reviewed-by: kvn, kbarrett ! src/hotspot/share/memory/allocation.cpp ! src/hotspot/share/memory/allocation.hpp Changeset: b6f827ef Branch: hermetic-java-runtime Author: Michael McMahon Date: 2025-06-03 15:36:29 +0000 URL: https://git.openjdk.org/leyden/commit/b6f827ef054959662190e21ce63fc3d3c45b92f3 8348986: Improve coverage of enhanced exception messages Reviewed-by: dfuchs ! src/java.base/share/classes/java/net/HostPortrange.java ! src/java.base/share/classes/java/net/Inet4AddressImpl.java ! src/java.base/share/classes/java/net/Inet6Address.java ! src/java.base/share/classes/java/net/InetAddress.java ! src/java.base/share/classes/java/net/NetworkInterface.java ! src/java.base/share/classes/java/net/Proxy.java ! src/java.base/share/classes/java/net/SocketPermission.java ! src/java.base/share/classes/java/net/SocksSocketImpl.java ! src/java.base/share/classes/java/net/URI.java ! src/java.base/share/classes/java/net/URL.java ! src/java.base/share/classes/java/net/URLStreamHandler.java + src/java.base/share/classes/jdk/internal/util/Exceptions.java ! src/java.base/share/classes/module-info.java ! src/java.base/share/classes/sun/net/util/IPAddressUtil.java - src/java.base/share/classes/sun/net/util/SocketExceptions.java ! src/java.base/share/classes/sun/net/www/ParseUtil.java ! src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java ! src/java.base/share/classes/sun/net/www/protocol/jar/Handler.java ! src/java.base/share/classes/sun/net/www/protocol/jar/JarFileFactory.java ! src/java.base/share/classes/sun/net/www/protocol/jar/JarURLConnection.java ! src/java.base/share/classes/sun/net/www/protocol/jmod/Handler.java ! src/java.base/share/classes/sun/nio/ch/DatagramSocketAdaptor.java ! src/java.base/share/classes/sun/nio/ch/NioSocketImpl.java ! src/java.base/share/classes/sun/nio/ch/SocketAdaptor.java ! src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java ! src/java.base/share/conf/security/java.security ! src/java.base/share/native/libnet/net_util.c ! src/java.base/share/native/libnet/net_util.h ! src/java.base/unix/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java ! src/java.base/unix/classes/sun/nio/fs/UnixUserPrincipals.java ! src/java.base/unix/native/libnet/net_util_md.c ! src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java ! src/java.base/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java ! src/java.base/windows/classes/sun/nio/fs/WindowsUserPrincipals.java ! src/java.base/windows/native/libnet/Inet4AddressImpl.c ! src/java.base/windows/native/libnet/Inet6AddressImpl.c ! src/java.naming/share/classes/com/sun/jndi/ldap/LdapURL.java ! src/java.naming/share/classes/com/sun/jndi/toolkit/url/Uri.java ! src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestBuilderImpl.java ! src/java.net.http/share/classes/jdk/internal/net/http/ResponseBodyHandlers.java ! src/java.net.http/share/classes/jdk/internal/net/http/websocket/OpeningHandshake.java ! src/java.rmi/share/classes/java/rmi/Naming.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/simpleserver/JWebServer.java ! test/jdk/com/sun/net/httpserver/simpleserver/CommandLineNegativeTest.java ! test/jdk/java/net/URI/Test.java ! test/jdk/jdk/security/JavaDotSecurity/TestJDKIncludeInExceptions.java + test/jdk/sun/net/util/ExceptionsTest.java Changeset: 4604c86d Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2025-06-03 15:43:26 +0000 URL: https://git.openjdk.org/leyden/commit/4604c86d2fced32c186680788ba98f74df071b23 8357425: (fs) SecureDirectoryStream setPermissions should use fchmodat Reviewed-by: alanb ! src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java ! src/java.base/unix/classes/sun/nio/fs/UnixSecureDirectoryStream.java ! src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c ! test/jdk/java/nio/file/DirectoryStream/SecureDS.java Changeset: d7def20a Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-03 16:02:14 +0000 URL: https://git.openjdk.org/leyden/commit/d7def20afa045a0bb154655b02e56346f7f51347 8358448: JFR: Incorrect time unit for MethodTiming event Reviewed-by: mgronlun, ayang ! src/jdk.jfr/share/classes/jdk/jfr/events/MethodTimingEvent.java Changeset: 16e120b0 Branch: hermetic-java-runtime Author: Patricio Chilano Mateo Date: 2025-06-03 16:12:53 +0000 URL: https://git.openjdk.org/leyden/commit/16e120b00842e340401b6930354edfb1515f6ca4 8357910: LoaderConstraintsTest.java fails when run with TEST_THREAD_FACTORY=Virtual Reviewed-by: dholmes, coleenp ! test/hotspot/jtreg/ProblemList-Virtual.txt ! test/hotspot/jtreg/runtime/logging/LoaderConstraintsTest.java Changeset: 04c15466 Branch: hermetic-java-runtime Author: Justin Lu Date: 2025-06-03 16:13:14 +0000 URL: https://git.openjdk.org/leyden/commit/04c15466f68f1208084ee6e5f2322ace707d0446 8358095: Cleanup tests with explicit locale provider set to only CLDR Reviewed-by: bpb, naoto ! test/jdk/java/text/Format/NumberFormat/CurrencyFormat.java ! test/jdk/java/util/Calendar/Bug8007038.java ! test/jdk/java/util/Calendar/Bug8167273.java ! test/jdk/java/util/Calendar/CldrFormatNamesTest.java ! test/jdk/java/util/Calendar/GenericTimeZoneNamesTest.java ! test/jdk/java/util/Calendar/JapaneseEraNameTest.java ! test/jdk/java/util/Calendar/NarrowNamesTest.java ! test/jdk/java/util/Formatter/BasicTestLauncher.java ! test/jdk/java/util/Locale/AliasesShouldBeRecognizedInCLDR.java ! test/jdk/java/util/Locale/RequiredAvailableLocalesTest.java ! test/jdk/java/util/Locale/bcp47u/CurrencyFormatTests.java ! test/jdk/java/util/Locale/bcp47u/DisplayNameTests.java ! test/jdk/java/util/Locale/bcp47u/FormatTests.java ! test/jdk/java/util/Locale/bcp47u/SymbolsTests.java ! test/jdk/java/util/TimeZone/Bug8167143.java ! test/jdk/java/util/TimeZone/CLDRDisplayNamesTest.java ! test/jdk/sun/util/resources/TimeZone/ChineseTimeZoneNameTest.java ! test/jdk/sun/util/resources/cldr/Bug8134250.java ! test/jdk/sun/util/resources/cldr/Bug8134384.java ! test/jdk/sun/util/resources/cldr/LikelySubtagLocalesTest.java ! test/jdk/sun/util/resources/cldr/TimeZoneNamesTest.java Changeset: 57862005 Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2025-06-03 16:32:12 +0000 URL: https://git.openjdk.org/leyden/commit/57862005f9914ce60aa389a6e35d2e0cd38f8c35 8354450: A File should be invalid if an element of its name sequence ends with a space Reviewed-by: alanb ! src/java.base/windows/classes/java/io/WinNTFileSystem.java + test/jdk/java/io/File/WinTrailingSpace.java Changeset: d7e58ac4 Branch: hermetic-java-runtime Author: Jatin Bhateja Date: 2025-06-03 17:00:54 +0000 URL: https://git.openjdk.org/leyden/commit/d7e58ac480b06c6340a65e67731d8f6dc179acfb 8351635: C2 ROR/ROL: assert failed: Long constant expected Reviewed-by: thartmann, chagedorn ! src/hotspot/share/opto/vectornode.cpp + test/hotspot/jtreg/compiler/vectorapi/TestVectorRotateScalarCount.java Changeset: 44d62c8e Branch: hermetic-java-runtime Author: Larry Cable Committer: Kevin Walls Date: 2025-06-03 17:13:22 +0000 URL: https://git.openjdk.org/leyden/commit/44d62c8e21fb09381f9f86a081f70549cc321b1e 8358077: sun.tools.attach.VirtualMachineImpl::checkCatchesAndSendQuitTo on Linux leaks file handles after JDK-8327114 Reviewed-by: kevinw, sspitsyn, syan ! src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java Changeset: c382da57 Branch: hermetic-java-runtime Author: Chris Plummer Date: 2025-06-03 17:19:31 +0000 URL: https://git.openjdk.org/leyden/commit/c382da579884c28f2765b2c6ba68c0ad4fdcb2ce 8358178: Some nsk/jdi tests should be run with includevirtualthreads=y even though they pass without Reviewed-by: sspitsyn, lmesnik ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume003/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume004/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume005/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume006/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume007/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume008/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume009/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume010/TestDescription.java Changeset: 461cb842 Branch: hermetic-java-runtime Author: Alisen Chung Date: 2025-06-03 18:02:47 +0000 URL: https://git.openjdk.org/leyden/commit/461cb84277b40d01c5d04be3c74f25d8667a207c 8345538: Robot.mouseMove doesn't clamp bounds on macOS when trying to move mouse off screen Reviewed-by: honkar, prr ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CRobot.java + test/jdk/java/awt/Robot/MouseMoveOffScreen.java Changeset: e984fa79 Branch: hermetic-java-runtime Author: Daniel D. Daugherty Date: 2025-06-03 18:41:05 +0000 URL: https://git.openjdk.org/leyden/commit/e984fa7997dda922708edf556d1839b866e44e55 8358539: ProblemList jdk/jfr/api/consumer/TestRecordingFileWrite.java Reviewed-by: ayang, bpb ! test/jdk/ProblemList.txt Changeset: 406f1bc5 Branch: hermetic-java-runtime Author: Alex Menkov Date: 2025-06-03 18:46:55 +0000 URL: https://git.openjdk.org/leyden/commit/406f1bc5b94408778063b885cdac807fd1501e44 8357650: ThreadSnapshot to take snapshot of thread for thread dumps Co-authored-by: Alan Bateman Co-authored-by: Alex Menkov Reviewed-by: sspitsyn, kevinw ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiThreadState.hpp ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/threadService.cpp ! src/hotspot/share/services/threadService.hpp + src/java.base/share/classes/jdk/internal/vm/ThreadSnapshot.java + src/java.base/share/native/libjava/ThreadSnapshot.c Changeset: cc11b7d1 Branch: hermetic-java-runtime Author: Stefan Lobbenmeier Committer: Alexey Semenyuk Date: 2025-06-03 19:22:52 +0000 URL: https://git.openjdk.org/leyden/commit/cc11b7d1f560d42d1de123e650470362f1f2aabb 8356128: Correct documentation for --linux-package-deps Reviewed-by: asemenyuk, almatvee ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/HelpResources.properties ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/HelpResources_de.properties ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/HelpResources_ja.properties ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/HelpResources_zh_CN.properties ! src/jdk.jpackage/share/man/jpackage.md Changeset: a44a4700 Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-06-03 19:23:29 +0000 URL: https://git.openjdk.org/leyden/commit/a44a470052aff3b17fa53165f043ccce36c1ef9b 8358515: make cmp-baseline is broken after JDK-8349665 Reviewed-by: erikj ! make/Init.gmk ! make/Main.gmk ! make/PreInit.gmk Changeset: e235b61a Branch: hermetic-java-runtime Author: Tom Shull Committer: Doug Simon Date: 2025-06-03 19:38:58 +0000 URL: https://git.openjdk.org/leyden/commit/e235b61a8bb70462921c09d197adc4b60267d327 8357987: [JVMCI] Add support for retrieving all methods of a ResolvedJavaType Reviewed-by: dnsimon, yzheng, never ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/CompilerToVM.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotVMConfig.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ResolvedJavaMethod.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ResolvedJavaType.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaMethod.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java Changeset: 704b5990 Branch: hermetic-java-runtime Author: Cesar Soares Lucas Date: 2025-06-03 20:15:20 +0000 URL: https://git.openjdk.org/leyden/commit/704b5990a750719ca927e156553db7982637e590 8358534: Bailout in Conv2B::Ideal when type of cmp input is not supported Reviewed-by: shade ! src/hotspot/share/opto/convertnode.cpp Changeset: da49fa5e Branch: hermetic-java-runtime Author: Alex Menkov Date: 2025-06-03 20:47:17 +0000 URL: https://git.openjdk.org/leyden/commit/da49fa5e15b137c086ad8fd438bf448da42121cb 8354460: Streaming output for attach API should be turned on by default Reviewed-by: sspitsyn, kevinw ! src/hotspot/share/services/attachListener.cpp ! src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java Changeset: 93975357 Branch: hermetic-java-runtime Author: Daniel Gredler Committer: Harshitha Onkar Date: 2025-06-03 23:27:44 +0000 URL: https://git.openjdk.org/leyden/commit/939753579b80d2910c78d8bbb1c97bd56afa21ba 8356803: Test TextLayout/TestControls fails on windows & linux: line and paragraph separator show non-zero advance 8356812: Create an automated version of TextLayout/TestControls Reviewed-by: prr, honkar ! src/java.desktop/share/classes/sun/font/FontUtilities.java ! test/jdk/java/awt/font/TextLayout/FormatCharAdvanceTest.java - test/jdk/java/awt/font/TextLayout/TestControls.java Changeset: 9c74d545 Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-06-03 23:28:00 +0000 URL: https://git.openjdk.org/leyden/commit/9c74d545147c2eeec187df552037a12b6b476a61 8358158: test/jdk/java/io/Console/CharsetTest.java failing with NoClassDefFoundError: jtreg/SkippedException Reviewed-by: joehw, jlu, iris - test/jdk/java/io/Console/CharsetTest.java ! test/jdk/java/io/Console/ConsolePromptTest.java ! test/jdk/java/io/Console/RestoreEchoTest.java ! test/jdk/java/io/Console/StdinEncodingTest.java + test/jdk/java/io/Console/StdoutEncodingTest.java - test/jdk/java/io/Console/script.exp + test/jdk/java/io/Console/stdoutEncoding.exp Changeset: 23450651 Branch: hermetic-java-runtime Author: Cesar Soares Lucas Date: 2025-06-03 23:39:32 +0000 URL: https://git.openjdk.org/leyden/commit/2345065166c56a958365a6362af356e7c95fcaff 8357600: Patch nmethod flushing message to include more details Reviewed-by: shade, kvn ! src/hotspot/share/code/nmethod.cpp Changeset: 939521b8 Branch: hermetic-java-runtime Author: Anjian Wen Committer: Feilong Jiang Date: 2025-06-04 02:03:22 +0000 URL: https://git.openjdk.org/leyden/commit/939521b8e4120357108220d177228b683af3334f 8358105: RISC-V: Optimize interpreter profile updates Reviewed-by: fjiang, fyang ! src/hotspot/cpu/riscv/interp_masm_riscv.cpp ! src/hotspot/cpu/riscv/interp_masm_riscv.hpp Changeset: ebd85288 Branch: hermetic-java-runtime Author: Vladimir Kozlov Date: 2025-06-04 02:14:17 +0000 URL: https://git.openjdk.org/leyden/commit/ebd85288ce309b7dc7ff8b36558dd9f2a2300209 8358289: [asan] runtime/cds/appcds/aotCode/AOTCodeFlags.java reports heap-buffer-overflow in ArchiveBuilder Reviewed-by: shade, iklam, asmehra ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/sharedRuntime.hpp Changeset: f17b2bc0 Branch: hermetic-java-runtime Author: Alan Bateman Date: 2025-06-04 04:10:10 +0000 URL: https://git.openjdk.org/leyden/commit/f17b2bc06ad358933481c0e2cffd57c842bc0e76 8356870: HotSpotDiagnosticMXBean.dumpThreads and jcmd Thread.dump_to_file updates Reviewed-by: sspitsyn, kevinw ! src/java.base/share/classes/jdk/internal/vm/ThreadDumper.java ! src/java.base/share/classes/jdk/internal/vm/ThreadSnapshot.java ! src/jdk.management/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java + src/jdk.management/share/classes/com/sun/management/doc-files/threadDump.schema.json ! src/jdk.management/share/classes/com/sun/management/internal/HotSpotDiagnostic.java ! test/hotspot/jtreg/serviceability/dcmd/thread/ThreadDumpToFileTest.java ! test/jdk/com/sun/management/HotSpotDiagnosticMXBean/DumpThreads.java + test/jdk/com/sun/management/HotSpotDiagnosticMXBean/DumpThreadsWithEliminatedLock.java ! test/lib/jdk/test/lib/threaddump/ThreadDump.java Changeset: b918dc84 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-04 06:02:49 +0000 URL: https://git.openjdk.org/leyden/commit/b918dc84ec8364321a5a6d9f6835edcb1d9ad62f 8357434: x86: Simplify Interpreter::profile_taken_branch Reviewed-by: kvn, vlivanov ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/interp_masm_x86.hpp ! src/hotspot/cpu/x86/templateTable_x86.cpp Changeset: 683319f2 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-04 06:04:05 +0000 URL: https://git.openjdk.org/leyden/commit/683319f25cbea83e28b9a0ad22e1c3e781e78165 8357798: ReverseOrderListView uses Boolean boxes after JDK-8356080 Reviewed-by: liach, smarks ! src/java.base/share/classes/java/util/ReverseOrderListView.java Changeset: b5cfd76c Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2025-06-04 06:38:06 +0000 URL: https://git.openjdk.org/leyden/commit/b5cfd76c047392788b6a5c25ebadc463b2c8ce90 8358456: ZipFile.getInputStream(ZipEntry) throws unspecified IllegalArgumentException Reviewed-by: lancea ! src/java.base/share/classes/java/util/zip/ZipFile.java + test/jdk/java/util/zip/ZipFile/InvalidCompressedSizeTest.java Changeset: edf92721 Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-06-04 08:10:42 +0000 URL: https://git.openjdk.org/leyden/commit/edf92721c2db4cfba091cf4901af603db8486951 8356977: UTF-8 cleanups Reviewed-by: naoto, prr ! src/java.base/share/classes/java/util/Locale.java ! src/java.base/share/classes/java/util/LocaleISOData.java ! src/java.base/share/classes/java/util/PropertyResourceBundle.java ! src/java.base/share/classes/sun/security/util/DomainName.java ! src/java.desktop/share/classes/javax/swing/Action.java ! test/jdk/java/awt/event/KeyEvent/KeyTyped/EscapeKeyTyped.java ! test/jdk/java/awt/print/RemotePrinterStatusRefresh/RemotePrinterStatusRefresh.java ! test/jdk/java/nio/file/Path/UriImportExport.java ! test/jdk/java/util/Currency/ValidateISO4217.java ! test/jdk/java/util/Locale/LocaleProvidersFormat.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/FileAssociations.java ! test/langtools/jdk/javadoc/doclet/testRelativeLinks/pkg/C.java ! test/langtools/tools/javac/api/guide/Test.java Changeset: 955bfcd5 Branch: hermetic-java-runtime Author: Markus Gr?nlund Date: 2025-06-04 08:19:24 +0000 URL: https://git.openjdk.org/leyden/commit/955bfcd5502b3555c2c91db876be8e7535f2289a 8357671: JFR: Remove JfrTraceIdEpoch synchronizing Reviewed-by: egahlin ! src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointManager.cpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointManager.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdEpoch.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdEpoch.hpp ! src/hotspot/share/jfr/recorder/service/jfrRecorderService.cpp ! src/hotspot/share/jfr/recorder/stringpool/jfrStringPool.cpp ! src/jdk.jfr/share/classes/jdk/jfr/internal/StringPool.java Changeset: b6d60280 Branch: hermetic-java-runtime Author: Markus Gr?nlund Date: 2025-06-04 08:20:48 +0000 URL: https://git.openjdk.org/leyden/commit/b6d60280e789436c7f9e3cd1447c8f77b77e77b4 8358429: JFR: minimize the time the Threads_lock is held for sampling Reviewed-by: egahlin + src/hotspot/share/jfr/periodic/sampling/jfrSampleMonitor.hpp ! src/hotspot/share/jfr/periodic/sampling/jfrSampleRequest.hpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampling.cpp Changeset: f141674d Branch: hermetic-java-runtime Author: He-Pin(kerr) Committer: Viktor Klang Date: 2025-06-04 08:28:29 +0000 URL: https://git.openjdk.org/leyden/commit/f141674d1619d95053d38a9cd8f93a8959b4a211 8347491: IllegalArgumentationException thrown by ThreadPoolExecutor doesn't have a useful message Reviewed-by: vklang, liach, pminborg ! src/java.base/share/classes/java/util/concurrent/AbstractExecutorService.java ! src/java.base/share/classes/java/util/concurrent/ExecutorCompletionService.java ! src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java ! test/jdk/java/util/concurrent/tck/ThreadPoolExecutorTest.java Changeset: ab235000 Branch: hermetic-java-runtime Author: Martin Doerr Date: 2025-06-04 08:31:37 +0000 URL: https://git.openjdk.org/leyden/commit/ab235000349bfd268e80a7cb99bf07a229406119 8354636: [PPC64] Clean up comments regarding frame manager Reviewed-by: amitkumar, rrich ! src/hotspot/cpu/ppc/register_ppc.hpp ! src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp ! src/hotspot/cpu/ppc/stubGenerator_ppc.cpp Changeset: cd16b689 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2025-06-04 09:06:46 +0000 URL: https://git.openjdk.org/leyden/commit/cd16b6896222a623dc99b9e63bb917a9d2980e88 8357155: [asan] ZGC does not work (x86_64 and ppc64) Co-authored-by: Axel Boldt-Christmas Reviewed-by: mdoerr, aboldtch ! src/hotspot/cpu/ppc/gc/z/zAddress_ppc.cpp ! src/hotspot/cpu/x86/gc/z/zAddress_x86.cpp Changeset: 42f48a39 Branch: hermetic-java-runtime Author: Sean Coffey Date: 2025-06-04 09:41:51 +0000 URL: https://git.openjdk.org/leyden/commit/42f48a39e867ae1683708dda3e158c24a6957180 8350689: Turn on timestamp and thread metadata by default for java.security.debug Reviewed-by: mullan ! src/java.base/share/classes/java/security/doc-files/debug-system-property.html ! src/java.base/share/classes/sun/security/util/Debug.java ! test/jdk/sun/security/krb5/auto/LoginModuleDebug.java ! test/jdk/sun/security/ssl/SSLLogger/DebugPropertyValuesTest.java ! test/jdk/sun/security/util/Debug/DebugOptions.java Changeset: 7838321b Branch: hermetic-java-runtime Author: Alan Bateman Date: 2025-06-04 09:52:45 +0000 URL: https://git.openjdk.org/leyden/commit/7838321b74276e45b92c54904ea31ef70ed9e33f 8358496: Concurrent reading from Socket with timeout executes sequentially Reviewed-by: dfuchs ! src/java.base/share/classes/sun/nio/ch/NioSocketImpl.java ! test/jdk/java/net/Socket/Timeouts.java Changeset: dc961609 Branch: hermetic-java-runtime Author: Robbin Ehn Date: 2025-06-04 12:43:23 +0000 URL: https://git.openjdk.org/leyden/commit/dc961609f84a38164d10852cb92c005c3eb077e4 8356159: RISC-V: Add Zabha Reviewed-by: fyang, fjiang ! src/hotspot/cpu/riscv/assembler_riscv.hpp ! src/hotspot/cpu/riscv/globals_riscv.hpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/riscv.ad ! test/hotspot/gtest/riscv/test_assembler_riscv.cpp Changeset: 09ec4de7 Branch: hermetic-java-runtime Author: Archie Cobbs Date: 2025-06-04 12:56:18 +0000 URL: https://git.openjdk.org/leyden/commit/09ec4de74d495560ffb9ec529df7ec818c1d617c 8358066: Non-ascii package names gives compilation error "import requires canonical name" Reviewed-by: jlahoda, naoto ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Convert.java + test/langtools/tools/javac/nametable/TestUtfNumChars.java Changeset: 248341d3 Branch: hermetic-java-runtime Author: Emanuel Peter Date: 2025-06-04 13:16:24 +0000 URL: https://git.openjdk.org/leyden/commit/248341d372ba9c1031729a65eb10d8def52de641 8344942: Template-Based Testing Framework Co-authored-by: Tobias Hartmann Co-authored-by: Tobias Holenstein Co-authored-by: Theo Weidmann Co-authored-by: Roberto Casta?eda Lozano Co-authored-by: Christian Hagedorn Co-authored-by: Manuel H?ssig Reviewed-by: chagedorn, mhaessig, rcastanedalo + test/hotspot/jtreg/compiler/lib/template_framework/AddNameToken.java + test/hotspot/jtreg/compiler/lib/template_framework/Code.java + test/hotspot/jtreg/compiler/lib/template_framework/CodeFrame.java + test/hotspot/jtreg/compiler/lib/template_framework/DataName.java + test/hotspot/jtreg/compiler/lib/template_framework/Hook.java + test/hotspot/jtreg/compiler/lib/template_framework/HookAnchorToken.java + test/hotspot/jtreg/compiler/lib/template_framework/HookInsertToken.java + test/hotspot/jtreg/compiler/lib/template_framework/Name.java + test/hotspot/jtreg/compiler/lib/template_framework/NameSet.java + test/hotspot/jtreg/compiler/lib/template_framework/NothingToken.java + test/hotspot/jtreg/compiler/lib/template_framework/README.md + test/hotspot/jtreg/compiler/lib/template_framework/Renderer.java + test/hotspot/jtreg/compiler/lib/template_framework/RendererException.java + test/hotspot/jtreg/compiler/lib/template_framework/StringToken.java + test/hotspot/jtreg/compiler/lib/template_framework/StructuralName.java + test/hotspot/jtreg/compiler/lib/template_framework/Template.java + test/hotspot/jtreg/compiler/lib/template_framework/TemplateBinding.java + test/hotspot/jtreg/compiler/lib/template_framework/TemplateBody.java + test/hotspot/jtreg/compiler/lib/template_framework/TemplateFrame.java + test/hotspot/jtreg/compiler/lib/template_framework/TemplateToken.java + test/hotspot/jtreg/compiler/lib/template_framework/Token.java + test/hotspot/jtreg/compiler/lib/template_framework/library/Hooks.java + test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestAdvanced.java + test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestSimple.java + test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestTutorial.java + test/hotspot/jtreg/testlibrary_tests/template_framework/tests/TestFormat.java + test/hotspot/jtreg/testlibrary_tests/template_framework/tests/TestTemplate.java Changeset: a653ff48 Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-04 13:39:31 +0000 URL: https://git.openjdk.org/leyden/commit/a653ff48933bfd72c7c3d004ccc5bd0d9c1162cb 8358536: jdk/jfr/api/consumer/TestRecordingFileWrite.java times out Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/tool/PrettyWriter.java ! test/jdk/ProblemList.txt Changeset: 0352477f Branch: hermetic-java-runtime Author: Tom Shull Committer: Doug Simon Date: 2025-06-04 13:50:36 +0000 URL: https://git.openjdk.org/leyden/commit/0352477ff5977b0010e62000adbde88026a49a7e 8357660: [JVMCI] Add support for retrieving all BootstrapMethodInvocations directly from ConstantPool Reviewed-by: dnsimon, yzheng ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/CompilerToVM.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotConstantPool.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ConstantPool.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/TestDynamicConstant.java Changeset: ae1892fb Branch: hermetic-java-runtime Author: Igor Veresov Date: 2025-06-04 14:07:49 +0000 URL: https://git.openjdk.org/leyden/commit/ae1892fb0fb6b7646f9ca60067d6945ccea7f888 8358003: KlassTrainingData initializer reads garbage holder Reviewed-by: coleenp, shade, vlivanov ! src/hotspot/share/oops/trainingData.cpp Changeset: a2723d91 Branch: hermetic-java-runtime Author: Matias Saavedra Silva Date: 2025-06-04 14:16:20 +0000 URL: https://git.openjdk.org/leyden/commit/a2723d91dfba2850e3070083fa94dc3fecc46a00 8345347: Test runtime/cds/TestDefaultArchiveLoading.java should accept VM flags or be marked as flagless Reviewed-by: lmesnik, stefank, ccheung ! test/hotspot/jtreg/runtime/cds/TestDefaultArchiveLoading.java Changeset: 4e314cb9 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-04 14:21:34 +0000 URL: https://git.openjdk.org/leyden/commit/4e314cb9e025672b2f7b68cc021fa516ee219ad8 8356000: C1/C2-only modes use 2 compiler threads on low CPU count machines Reviewed-by: kvn, dfenacci, galder ! src/hotspot/share/compiler/compilationPolicy.cpp + test/hotspot/jtreg/compiler/arguments/TestCompilerCounts.java Changeset: c9092164 Branch: hermetic-java-runtime Author: Stefan Karlsson Date: 2025-06-04 14:56:20 +0000 URL: https://git.openjdk.org/leyden/commit/c90921644643bc731cab4c014a5144a74e670df1 8357443: ZGC: Optimize old page iteration in remap remembered phase Reviewed-by: aboldtch, eosterlund ! src/hotspot/share/gc/z/zGeneration.cpp ! src/hotspot/share/gc/z/zGeneration.hpp ! src/hotspot/share/gc/z/zRemembered.cpp ! src/hotspot/share/gc/z/zRemembered.hpp Changeset: ef47635d Branch: hermetic-java-runtime Author: Stuart Marks Date: 2025-06-04 16:14:31 +0000 URL: https://git.openjdk.org/leyden/commit/ef47635d5a27b003937d865ad9067dbd151db888 8358015: Fix SequencedMap sequenced view method specifications Reviewed-by: jpai, bchristi ! src/java.base/share/classes/java/util/AbstractMap.java ! src/java.base/share/classes/java/util/SequencedMap.java ! test/jdk/java/util/SequencedCollection/BasicMap.java Changeset: 8a79ac88 Branch: hermetic-java-runtime Author: Justin Lu Date: 2025-06-04 16:40:22 +0000 URL: https://git.openjdk.org/leyden/commit/8a79ac88639c35a6938f82a391c4b5d77e6eda32 8358449: Locale.getISOCountries does not specify the returned set is unmodifiable Reviewed-by: naoto ! src/java.base/share/classes/java/util/Locale.java Changeset: fd0ab043 Branch: hermetic-java-runtime Author: Ashutosh Mehra Date: 2025-06-04 16:52:38 +0000 URL: https://git.openjdk.org/leyden/commit/fd0ab043677d103628afde628e3e75e23fb518b2 8358330: AsmRemarks and DbgStrings clear() method may not get called before their destructor Reviewed-by: kvn ! src/hotspot/share/asm/codeBuffer.cpp ! src/hotspot/share/asm/codeBuffer.hpp ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/code/codeBlob.hpp Changeset: 8939acc8 Branch: hermetic-java-runtime Author: Sergey Bylokhov Date: 2025-06-04 17:53:17 +0000 URL: https://git.openjdk.org/leyden/commit/8939acc8ab0e45b82252f0f2de37e9bd5c3e1493 8358057: Update validation of ICC_Profile header data Reviewed-by: honkar ! src/java.desktop/share/classes/java/awt/color/ICC_Profile.java ! src/java.desktop/share/classes/java/awt/image/ColorConvertOp.java + test/jdk/java/awt/color/ICC_Profile/RenderingIntentStressTest.java ! test/jdk/java/awt/color/ICC_Profile/ValidateICCHeaderData/ValidateICCHeaderData.java Changeset: 5ed246d1 Branch: hermetic-java-runtime Author: Matthew Donovan Date: 2025-06-04 18:07:07 +0000 URL: https://git.openjdk.org/leyden/commit/5ed246d17d9f40489ed715b7df104ec6a832841e 8357592: Update output parsing in test/jdk/sun/security/tools/jarsigner/compatibility/Compatibility.java Reviewed-by: rhalade ! test/jdk/sun/security/tools/jarsigner/compatibility/Compatibility.java ! test/jdk/sun/security/tools/jarsigner/warnings/Test.java Changeset: 8f821175 Branch: hermetic-java-runtime Author: Justin Lu Date: 2025-06-04 18:46:31 +0000 URL: https://git.openjdk.org/leyden/commit/8f821175cc4484d651151818cc518ef608ebcc83 8358170: Repurpose testCompat in test/jdk/java/util/TimeZone/Bug8167143.java Reviewed-by: naoto ! test/jdk/java/util/TimeZone/Bug8167143.java Changeset: 901144ee Branch: hermetic-java-runtime Author: Ian Graves Date: 2025-06-04 19:46:30 +0000 URL: https://git.openjdk.org/leyden/commit/901144ee0d3e984aa8b8f047498440450942f3e5 8358217: jdk/incubator/vector/PreferredSpeciesTest.java#id0 failures - expected [128] but found [256] Co-authored-by: Paul Sandoz Co-authored-by: Jaikiran Pai Reviewed-by: syan, psandoz ! test/jdk/ProblemList.txt ! test/jdk/jdk/incubator/vector/PreferredSpeciesTest.java Changeset: 77c110c3 Branch: hermetic-java-runtime Author: Joe Darcy Date: 2025-06-04 20:03:48 +0000 URL: https://git.openjdk.org/leyden/commit/77c110c309739c2e10c9b321914309affe749e6d 8357000: Write overview documentation for start of release changes Reviewed-by: erikj, iris, ihse, dholmes + doc/starting-next-release.html + doc/starting-next-release.md Changeset: 3cf3e4bb Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-04 21:32:29 +0000 URL: https://git.openjdk.org/leyden/commit/3cf3e4bbec26a84d77cb7a3125a60ba1e1e4ee97 8358339: Handle MethodCounters::_method backlinks after JDK-8355003 Reviewed-by: coleenp, kvn, iveresov ! src/hotspot/share/asm/codeBuffer.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/oops/metadata.hpp Changeset: 5b27e9c2 Branch: hermetic-java-runtime Author: Johannes Bechberger Date: 2025-06-04 22:08:58 +0000 URL: https://git.openjdk.org/leyden/commit/5b27e9c2df8b386b38b0553d941469cd8aa65c28 8342818: Implement JEP 509: JFR CPU-Time Profiling Reviewed-by: mgronlun, mdoerr, pchilanomate, apangin, shade ! src/hotspot/os/posix/signals_posix.cpp ! src/hotspot/os/posix/signals_posix.hpp ! src/hotspot/share/jfr/jfr.inline.hpp ! src/hotspot/share/jfr/jni/jfrJniMethod.cpp ! src/hotspot/share/jfr/jni/jfrJniMethod.hpp ! src/hotspot/share/jfr/jni/jfrJniMethodRegistration.cpp ! src/hotspot/share/jfr/metadata/metadata.xml + src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.cpp + src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.hpp ! src/hotspot/share/jfr/periodic/sampling/jfrSampleRequest.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrSampleRequest.hpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampling.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampling.hpp ! src/hotspot/share/jfr/recorder/jfrRecorder.cpp ! src/hotspot/share/jfr/recorder/jfrRecorder.hpp ! src/hotspot/share/jfr/recorder/service/jfrEventThrottler.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.hpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/vmOperation.hpp ! src/hotspot/share/utilities/ticks.hpp ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventControl.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/JVM.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformEventType.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini + src/jdk.jfr/share/classes/jdk/jfr/internal/settings/CPUThrottleSetting.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/util/Rate.java + src/jdk.jfr/share/classes/jdk/jfr/internal/util/TimespanRate.java ! src/jdk.jfr/share/conf/jfr/default.jfc ! src/jdk.jfr/share/conf/jfr/profile.jfc ! test/jdk/jdk/jfr/event/metadata/TestLookForUntestedEvents.java + test/jdk/jdk/jfr/event/profiling/BaseTestFullStackTrace.java + test/jdk/jdk/jfr/event/profiling/TestCPUTimeAndExecutionSample.java + test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleFullStackTrace.java + test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleMultipleRecordings.java + test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleNative.java + test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleThrottling.java + test/jdk/jdk/jfr/event/profiling/TestCPUTimeSamplingLongPeriod.java ! test/jdk/jdk/jfr/event/profiling/TestFullStackTrace.java + test/jdk/jdk/jfr/event/profiling/classes/test/RecursiveMethods.java ! test/lib/jdk/test/lib/jfr/EventNames.java Changeset: b787ff6d Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-06-04 23:19:33 +0000 URL: https://git.openjdk.org/leyden/commit/b787ff6def08a050b690b60e4a0ceb3aec2b73c8 8358538: Update GHA Windows runner to 2025 Reviewed-by: shade ! .github/workflows/build-windows.yml ! .github/workflows/main.yml Changeset: 9186cc73 Branch: hermetic-java-runtime Author: Markus Gr?nlund Date: 2025-06-04 23:55:18 +0000 URL: https://git.openjdk.org/leyden/commit/9186cc7310c0cca2fca776031280f08d84e43b74 8358628: [BACKOUT] 8342818: Implement JEP 509: JFR CPU-Time Profiling Reviewed-by: pchilanomate, dholmes ! src/hotspot/os/posix/signals_posix.cpp ! src/hotspot/os/posix/signals_posix.hpp ! src/hotspot/share/jfr/jfr.inline.hpp ! src/hotspot/share/jfr/jni/jfrJniMethod.cpp ! src/hotspot/share/jfr/jni/jfrJniMethod.hpp ! src/hotspot/share/jfr/jni/jfrJniMethodRegistration.cpp ! src/hotspot/share/jfr/metadata/metadata.xml - src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.cpp - src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.hpp ! src/hotspot/share/jfr/periodic/sampling/jfrSampleRequest.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrSampleRequest.hpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampling.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampling.hpp ! src/hotspot/share/jfr/recorder/jfrRecorder.cpp ! src/hotspot/share/jfr/recorder/jfrRecorder.hpp ! src/hotspot/share/jfr/recorder/service/jfrEventThrottler.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.hpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/vmOperation.hpp ! src/hotspot/share/utilities/ticks.hpp ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventControl.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/JVM.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformEventType.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini - src/jdk.jfr/share/classes/jdk/jfr/internal/settings/CPUThrottleSetting.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/util/Rate.java - src/jdk.jfr/share/classes/jdk/jfr/internal/util/TimespanRate.java ! src/jdk.jfr/share/conf/jfr/default.jfc ! src/jdk.jfr/share/conf/jfr/profile.jfc ! test/jdk/jdk/jfr/event/metadata/TestLookForUntestedEvents.java - test/jdk/jdk/jfr/event/profiling/BaseTestFullStackTrace.java - test/jdk/jdk/jfr/event/profiling/TestCPUTimeAndExecutionSample.java - test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleFullStackTrace.java - test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleMultipleRecordings.java - test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleNative.java - test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleThrottling.java - test/jdk/jdk/jfr/event/profiling/TestCPUTimeSamplingLongPeriod.java ! test/jdk/jdk/jfr/event/profiling/TestFullStackTrace.java - test/jdk/jdk/jfr/event/profiling/classes/test/RecursiveMethods.java ! test/lib/jdk/test/lib/jfr/EventNames.java Changeset: 8f8b367a Branch: hermetic-java-runtime Author: David Holmes Date: 2025-06-05 00:35:26 +0000 URL: https://git.openjdk.org/leyden/commit/8f8b367ae3c9afca3581f6aced7f9855ef0d541d 8350029: Illegal invokespecial interface not caught by verification Reviewed-by: coleenp, matsaave ! src/hotspot/share/classfile/verificationType.cpp ! src/hotspot/share/classfile/verificationType.hpp ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/interpreter/linkResolver.cpp = test/hotspot/jtreg/runtime/verifier/invokespecial/Run.java + test/hotspot/jtreg/runtime/verifier/invokespecial/TestInvokeSpecialInterface.java + test/hotspot/jtreg/runtime/verifier/invokespecial/UseInterfaceMethodRef.jasm + test/hotspot/jtreg/runtime/verifier/invokespecial/UseMethodRef.jasm Changeset: 575806c0 Branch: hermetic-java-runtime Author: Hannes Greule Committer: Chen Liang Date: 2025-06-05 01:41:21 +0000 URL: https://git.openjdk.org/leyden/commit/575806c0e5584ea24cda80158070579b88c477f7 8358078: javap crashes with NPE on preview class file Reviewed-by: liach ! src/jdk.jdeps/share/classes/com/sun/tools/javap/ClassWriter.java + test/langtools/tools/javap/ClassFileVersionTest.java Changeset: 849655a1 Branch: hermetic-java-runtime Author: Vladimir Kozlov Date: 2025-06-05 03:25:46 +0000 URL: https://git.openjdk.org/leyden/commit/849655a145a40b056a751528cebc78a11481514c 8358632: [asan] reports heap-buffer-overflow in AOTCodeCache::copy_bytes Reviewed-by: vlivanov, iveresov ! src/hotspot/share/code/aotCodeCache.cpp ! test/hotspot/jtreg/runtime/cds/appcds/aotCode/AOTCodeCompressedOopsTest.java Changeset: 08023481 Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2025-06-05 04:24:05 +0000 URL: https://git.openjdk.org/leyden/commit/08023481edec4c0cacc79a608c573856f0718e58 8358558: (zipfs) Reorder the listing of "accessMode" property in the ZIP file system's documentation Reviewed-by: dfuchs, vyazici, alanb, lancea ! src/jdk.zipfs/share/classes/module-info.java Changeset: 48b97ac0 Branch: hermetic-java-runtime Author: Dingli Zhang Committer: Fei Yang Date: 2025-06-05 07:34:48 +0000 URL: https://git.openjdk.org/leyden/commit/48b97ac0e006362528423ffd657b2ea3afa46a6e 8358634: RISC-V: Fix several broken documentation web-links Reviewed-by: fyang ! src/hotspot/cpu/riscv/macroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/vm_version_riscv.hpp Changeset: ace70a6d Branch: hermetic-java-runtime Author: Johannes Bechberger Date: 2025-06-05 08:18:18 +0000 URL: https://git.openjdk.org/leyden/commit/ace70a6d6aca619da34b2f9cac2586cc88cefb5a 8358666: [REDO] Implement JEP 509: JFR CPU-Time Profiling Reviewed-by: mgronlun ! src/hotspot/os/posix/signals_posix.cpp ! src/hotspot/os/posix/signals_posix.hpp ! src/hotspot/share/jfr/jfr.inline.hpp ! src/hotspot/share/jfr/jni/jfrJniMethod.cpp ! src/hotspot/share/jfr/jni/jfrJniMethod.hpp ! src/hotspot/share/jfr/jni/jfrJniMethodRegistration.cpp ! src/hotspot/share/jfr/metadata/metadata.xml + src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.cpp + src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.hpp ! src/hotspot/share/jfr/periodic/sampling/jfrSampleRequest.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrSampleRequest.hpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampling.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampling.hpp ! src/hotspot/share/jfr/recorder/jfrRecorder.cpp ! src/hotspot/share/jfr/recorder/jfrRecorder.hpp ! src/hotspot/share/jfr/recorder/service/jfrEventThrottler.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.hpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/vmOperation.hpp ! src/hotspot/share/utilities/ticks.hpp ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventControl.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/JVM.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformEventType.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini + src/jdk.jfr/share/classes/jdk/jfr/internal/settings/CPUThrottleSetting.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/util/Rate.java + src/jdk.jfr/share/classes/jdk/jfr/internal/util/TimespanRate.java ! src/jdk.jfr/share/conf/jfr/default.jfc ! src/jdk.jfr/share/conf/jfr/profile.jfc ! test/jdk/jdk/jfr/event/metadata/TestLookForUntestedEvents.java + test/jdk/jdk/jfr/event/profiling/BaseTestFullStackTrace.java + test/jdk/jdk/jfr/event/profiling/TestCPUTimeAndExecutionSample.java + test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleFullStackTrace.java + test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleMultipleRecordings.java + test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleNative.java + test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleThrottling.java + test/jdk/jdk/jfr/event/profiling/TestCPUTimeSamplingLongPeriod.java ! test/jdk/jdk/jfr/event/profiling/TestFullStackTrace.java + test/jdk/jdk/jfr/event/profiling/classes/test/RecursiveMethods.java ! test/lib/jdk/test/lib/jfr/EventNames.java Changeset: dc949003 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-05 09:02:23 +0000 URL: https://git.openjdk.org/leyden/commit/dc949003ded278805d10c7b630e82348a7d998fe 8358588: ThreadSnapshot.ThreadLock should be static nested class Reviewed-by: alanb, sspitsyn, amenkov ! src/java.base/share/classes/jdk/internal/vm/ThreadSnapshot.java Changeset: 66feb490 Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-06-05 09:30:44 +0000 URL: https://git.openjdk.org/leyden/commit/66feb490bdf670c9b101f36b2fa1d0a923c0c3df 8358543: Remove CommentChecker.java and DirDiff.java Reviewed-by: erikj - src/utils/src/build/tools/commentchecker/CommentChecker.java - src/utils/src/build/tools/dirdiff/DirDiff.java Changeset: d450e341 Branch: hermetic-java-runtime Author: Markus Gr?nlund Date: 2025-06-05 10:14:41 +0000 URL: https://git.openjdk.org/leyden/commit/d450e341c7af910b618f3dd3e1f77e2e37702c5f 8357962: JFR Cooperative Sampling reveals inconsistent interpreter frames as part of JVMTI PopFrame Reviewed-by: dholmes, eosterlund ! src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp ! src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp Changeset: bd08932d Branch: hermetic-java-runtime Author: Nizar Benalla Date: 2025-06-05 10:31:23 +0000 URL: https://git.openjdk.org/leyden/commit/bd08932d5b9d1a363d8229ea72df4c6dbfd4571d 8356633: Incorrect use of {@link} in jdk.jshell Reviewed-by: rgiulietti, vyazici ! src/jdk.jshell/share/classes/jdk/jshell/Snippet.java ! src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysis.java Changeset: c5daf890 Branch: hermetic-java-runtime Author: Nizar Benalla Date: 2025-06-05 11:05:52 +0000 URL: https://git.openjdk.org/leyden/commit/c5daf890534dfdbe5f66189ef6b08af8ffd4de47 8349369: test/docs/jdk/javadoc/doccheck/checks/jdkCheckLinks.java did not report on missing man page files Reviewed-by: hannesw ! test/docs/jdk/javadoc/doccheck/checks/jdkCheckLinks.java ! test/docs/jdk/javadoc/doccheck/doccheckutils/FileProcessor.java ! test/docs/jdk/javadoc/doccheck/doccheckutils/checkers/LinkChecker.java Changeset: eb770a06 Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-05 11:36:08 +0000 URL: https://git.openjdk.org/leyden/commit/eb770a060ad86d69b38df7d11622e9e25a528e1d 8351594: JFR: Rate-limited sampling of Java events Reviewed-by: mgronlun, alanb ! src/java.base/share/classes/java/io/FileInputStream.java ! src/java.base/share/classes/java/io/FileOutputStream.java ! src/java.base/share/classes/java/io/RandomAccessFile.java ! src/java.base/share/classes/java/lang/Throwable.java ! src/java.base/share/classes/java/net/Socket.java ! src/java.base/share/classes/jdk/internal/event/ExceptionThrownEvent.java ! src/java.base/share/classes/jdk/internal/event/FileReadEvent.java ! src/java.base/share/classes/jdk/internal/event/FileWriteEvent.java ! src/java.base/share/classes/jdk/internal/event/SocketReadEvent.java ! src/java.base/share/classes/jdk/internal/event/SocketWriteEvent.java ! src/java.base/share/classes/jdk/internal/event/ThrowableTracer.java ! src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java + src/jdk.jfr/share/classes/jdk/jfr/Throttle.java ! src/jdk.jfr/share/classes/jdk/jfr/events/ExceptionThrownEvent.java ! src/jdk.jfr/share/classes/jdk/jfr/events/FileReadEvent.java ! src/jdk.jfr/share/classes/jdk/jfr/events/FileWriteEvent.java ! src/jdk.jfr/share/classes/jdk/jfr/events/SocketReadEvent.java ! src/jdk.jfr/share/classes/jdk/jfr/events/SocketWriteEvent.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/ClassInspector.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventControl.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventInstrumentation.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/JVMSupport.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataLoader.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataRepository.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformEventType.java - src/jdk.jfr/share/classes/jdk/jfr/internal/Throttle.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/event/EventConfiguration.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/settings/ThrottleSetting.java + src/jdk.jfr/share/classes/jdk/jfr/internal/settings/Throttler.java + src/jdk.jfr/share/classes/jdk/jfr/internal/settings/ThrottlerParameters.java + src/jdk.jfr/share/classes/jdk/jfr/internal/settings/ThrottlerWindow.java ! src/jdk.jfr/share/classes/jdk/jfr/package-info.java ! src/jdk.jfr/share/conf/jfr/default.jfc ! src/jdk.jfr/share/conf/jfr/profile.jfc + test/jdk/jdk/jfr/api/metadata/annotations/TestThrottle.java ! test/jdk/jdk/jfr/api/recording/settings/TestSettingsAvailability.java ! test/jdk/jdk/jfr/startupargs/TestEventSettings.java Changeset: 6cdfd36a Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-05 11:42:31 +0000 URL: https://git.openjdk.org/leyden/commit/6cdfd36ac80ad889ddbcfc702115b750a32d9645 8358590: JFR: Include min and max in MethodTiming event Reviewed-by: mgronlun ! src/hotspot/share/jfr/metadata/metadata.xml ! src/jdk.jfr/share/classes/jdk/jfr/events/MethodTimingEvent.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini ! src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/PlatformTracer.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/TimedClass.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/TimedMethod.java Changeset: 782bbca4 Branch: hermetic-java-runtime Author: Viktor Klang Date: 2025-06-05 12:04:57 +0000 URL: https://git.openjdk.org/leyden/commit/782bbca439cd0d6db9366b4bd8d4861b8f780203 8358633: Test ThreadPoolExecutorTest::testTimedInvokeAnyNullTimeUnit is broken by JDK-8347491 Reviewed-by: alanb ! test/jdk/java/util/concurrent/tck/ThreadPoolExecutorTest.java Changeset: 33ed7c18 Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-05 13:08:48 +0000 URL: https://git.openjdk.org/leyden/commit/33ed7c1842e61664c1ad0ea4d29f20728c89e06c 8358689: test/micro/org/openjdk/bench/java/net/SocketEventOverhead.java does not build after JDK-8351594 Reviewed-by: alanb ! test/micro/org/openjdk/bench/java/net/SocketEventOverhead.java Changeset: 23f1d4f9 Branch: hermetic-java-runtime Author: Dmitry Chuyko Date: 2025-06-05 14:28:27 +0000 URL: https://git.openjdk.org/leyden/commit/23f1d4f9a993033596ff17751c877f2bb3f792ed 8337666: AArch64: SHA3 GPR intrinsic Reviewed-by: aph ! src/hotspot/cpu/aarch64/globals_aarch64.hpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! test/hotspot/jtreg/compiler/intrinsics/sha/sanity/TestSHA3Intrinsics.java ! test/hotspot/jtreg/compiler/intrinsics/sha/sanity/TestSHA3MultiBlockIntrinsics.java Changeset: c59e44a7 Branch: hermetic-java-runtime Author: Patricio Chilano Mateo Date: 2025-06-05 15:02:02 +0000 URL: https://git.openjdk.org/leyden/commit/c59e44a7aa2aeff0823830b698d524523b996650 8357914: TestEmptyBootstrapMethodsAttr.java fails when run with TEST_THREAD_FACTORY=Virtual Reviewed-by: lmesnik, dholmes, sspitsyn, syan ! test/hotspot/jtreg/ProblemList-Virtual.txt ! test/hotspot/jtreg/runtime/classFileParserBug/TestEmptyBootstrapMethodsAttr.java Changeset: af87035b Branch: hermetic-java-runtime Author: Nizar Benalla Committer: Jesper Wilhelmsson Date: 2025-06-05 16:01:32 +0000 URL: https://git.openjdk.org/leyden/commit/af87035b713f8bfe05a007a4d4670cefc6a6aaf2 8355746: Start of release updates for JDK 26 8355748: Add SourceVersion.RELEASE_26 8355751: Add source 26 and target 26 to javac Co-authored-by: Joe Darcy Reviewed-by: iris, coleenp, darcy ! .jcheck/conf ! make/conf/version-numbers.conf ! src/hotspot/share/classfile/classFileParser.cpp ! src/java.base/share/classes/java/lang/classfile/ClassFile.java ! src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java ! src/java.compiler/share/classes/javax/lang/model/SourceVersion.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitorPreview.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitorPreview.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitorPreview.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitorPreview.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScannerPreview.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitorPreview.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitorPreview.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitorPreview.java ! src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitorPreview.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassFile.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java + src/jdk.compiler/share/data/symbols/java.base-P.sym.txt + src/jdk.compiler/share/data/symbols/java.compiler-P.sym.txt + src/jdk.compiler/share/data/symbols/java.desktop-P.sym.txt + src/jdk.compiler/share/data/symbols/java.logging-P.sym.txt + src/jdk.compiler/share/data/symbols/java.management-P.sym.txt + src/jdk.compiler/share/data/symbols/java.net.http-P.sym.txt + src/jdk.compiler/share/data/symbols/java.security.jgss-P.sym.txt + src/jdk.compiler/share/data/symbols/java.xml.crypto-P.sym.txt + src/jdk.compiler/share/data/symbols/jdk.attach-P.sym.txt + src/jdk.compiler/share/data/symbols/jdk.compiler-P.sym.txt + src/jdk.compiler/share/data/symbols/jdk.crypto.cryptoki-P.sym.txt + src/jdk.compiler/share/data/symbols/jdk.incubator.foreign-P.sym.txt + src/jdk.compiler/share/data/symbols/jdk.incubator.vector-P.sym.txt + src/jdk.compiler/share/data/symbols/jdk.jdi-P.sym.txt + src/jdk.compiler/share/data/symbols/jdk.jfr-P.sym.txt + src/jdk.compiler/share/data/symbols/jdk.jpackage-P.sym.txt + src/jdk.compiler/share/data/symbols/jdk.jshell-P.sym.txt + src/jdk.compiler/share/data/symbols/jdk.net-P.sym.txt + src/jdk.compiler/share/data/symbols/jdk.security.jgss-P.sym.txt ! src/jdk.compiler/share/data/symbols/symbols ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java ! test/hotspot/jtreg/testlibrary/asm/org/objectweb/asm/ClassReader.java ! test/hotspot/jtreg/testlibrary/asm/org/objectweb/asm/Opcodes.java ! test/jdk/ProblemList.txt ! test/langtools/tools/javac/api/TestGetSourceVersions.java ! test/langtools/tools/javac/classfiles/ClassVersionChecker.java ! test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java ! test/langtools/tools/javac/options/HelpOutputColumnWidthTest.java ! test/langtools/tools/javac/preview/classReaderTest/Client.nopreview.out ! test/langtools/tools/javac/preview/classReaderTest/Client.preview.out ! test/langtools/tools/javac/versions/Versions.java Changeset: 62fde687 Branch: hermetic-java-runtime Author: Cesar Soares Lucas Date: 2025-06-05 16:43:29 +0000 URL: https://git.openjdk.org/leyden/commit/62fde687088ce72ef33b94e73babf4bfe1395c17 8357396: Refactor nmethod::make_not_entrant to use Enum instead of "const char*" Reviewed-by: mhaessig, shade ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/ci/ciReplay.cpp ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/nmethod.hpp ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/jvmci/jvmciEnv.cpp ! src/hotspot/share/jvmci/jvmciEnv.hpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/javaThread.cpp Changeset: fe3be498 Branch: hermetic-java-runtime Author: Christian Stein Date: 2025-06-05 17:30:01 +0000 URL: https://git.openjdk.org/leyden/commit/fe3be498b83e70a9f4739ddad6642c3aa04a97d3 8357141: Update to use jtreg 7.5.2 Reviewed-by: erikj, ihse, iris ! make/autoconf/lib-tests.m4 ! make/conf/github-actions.conf ! make/conf/jib-profiles.js ! test/docs/TEST.ROOT ! test/hotspot/jtreg/TEST.ROOT ! test/jaxp/TEST.ROOT ! test/jdk/TEST.ROOT ! test/langtools/TEST.ROOT ! test/lib-test/TEST.ROOT Changeset: 15178aa2 Branch: hermetic-java-runtime Author: Andrey Turbanov Date: 2025-06-05 20:19:53 +0000 URL: https://git.openjdk.org/leyden/commit/15178aa298e43be3e27121343432f25884db4e5d 8357688: Remove unnecessary List.get before remove in PopupFactory Reviewed-by: azvegint, kizune, serb ! src/java.desktop/share/classes/javax/swing/PopupFactory.java Changeset: c793de98 Branch: hermetic-java-runtime Author: Archie Cobbs Date: 2025-06-05 21:57:33 +0000 URL: https://git.openjdk.org/leyden/commit/c793de989facdb532021e1d5ddd01eb0e089b8e6 8350212: Track source end positions of declarations that support @SuppressWarnings Co-authored-by: Jan Lahoda Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/EndPosTable.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/jdk.jshell/share/classes/jdk/jshell/ReplParser.java ! test/langtools/tools/javac/T8180660/MissingLNTEntryForFinalizerTest.java + test/langtools/tools/javac/parser/DeclarationEndPositions.java ! test/langtools/tools/javac/parser/JavacParserTest.java ! test/langtools/tools/javac/parser/extend/TrialParser.java Changeset: 78158f30 Branch: hermetic-java-runtime Author: Anthony Scarpino Date: 2025-06-05 22:13:24 +0000 URL: https://git.openjdk.org/leyden/commit/78158f30aee51e14ab203b0127aeb883c010319c 8358099: PEM spec updates Reviewed-by: mullan ! src/java.base/share/classes/java/security/PEMDecoder.java ! src/java.base/share/classes/java/security/PEMEncoder.java ! src/java.base/share/classes/java/security/PEMRecord.java ! src/java.base/share/classes/sun/security/provider/X509Factory.java ! src/java.base/share/classes/sun/security/util/Pem.java ! test/jdk/java/security/PEM/PEMDecoderTest.java Changeset: 029e3bf8 Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2025-06-06 02:07:51 +0000 URL: https://git.openjdk.org/leyden/commit/029e3bf8f582f7399b80c592421b2fd72737e264 8349914: ZipFile::entries and ZipFile::getInputStream not consistent with each other when there are duplicate entries Co-authored-by: Lance Andersen Reviewed-by: lancea ! src/java.base/share/classes/java/util/zip/ZipEntry.java ! src/java.base/share/classes/java/util/zip/ZipFile.java + test/jdk/java/util/zip/ZipFile/DupEntriesGetInputStream.java Changeset: 28acca60 Branch: hermetic-java-runtime Author: Amit Kumar Date: 2025-06-06 03:50:06 +0000 URL: https://git.openjdk.org/leyden/commit/28acca609bbb8ade0af88b536c8c88b7fa43849a 8358653: [s390] Clean up comments regarding frame manager Reviewed-by: mdoerr ! src/hotspot/cpu/s390/frame_s390.hpp ! src/hotspot/cpu/s390/register_s390.hpp ! src/hotspot/cpu/s390/runtime_s390.cpp ! src/hotspot/cpu/s390/sharedRuntime_s390.cpp ! src/hotspot/cpu/s390/stubGenerator_s390.cpp ! src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp Changeset: e918a59b Branch: hermetic-java-runtime Author: Volkan Yazici Date: 2025-06-06 06:26:09 +0000 URL: https://git.openjdk.org/leyden/commit/e918a59b1dacf273620aee334517bebfb1fb1a0f 8357821: Revert incorrectly named JavaLangAccess::unchecked* methods Reviewed-by: pminborg ! src/java.base/share/classes/java/io/DataInputStream.java ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/util/zip/ZipCoder.java ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java ! src/java.base/share/classes/sun/nio/cs/CESU_8.java ! src/java.base/share/classes/sun/nio/cs/DoubleByte.java ! src/java.base/share/classes/sun/nio/cs/ISO_8859_1.java ! src/java.base/share/classes/sun/nio/cs/SingleByte.java ! src/java.base/share/classes/sun/nio/cs/US_ASCII.java ! src/java.base/share/classes/sun/nio/cs/UTF_8.java Changeset: bb2611ad Branch: hermetic-java-runtime Author: Volkan Yazici Date: 2025-06-06 06:53:10 +0000 URL: https://git.openjdk.org/leyden/commit/bb2611ad43a2feaebc2246fdbac2179a40115d67 8357993: Use "stdin.encoding" for reading System.in with InputStreamReader/Scanner [hotspot] Reviewed-by: cjplummer, sspitsyn ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CLHSDB.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/jfc/model/UserInterface.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach010/attach010Agent00.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jpda/BindServer.java Changeset: d1b78800 Branch: hermetic-java-runtime Author: Beno?t Maillard Committer: Tobias Hartmann Date: 2025-06-06 08:16:15 +0000 URL: https://git.openjdk.org/leyden/commit/d1b788005bdf11f1426baa8e811c121a956482c9 8357951: Remove the IdealLoopTree* loop parameter from PhaseIdealLoop::loop_iv_phi Reviewed-by: thartmann, mhaessig ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/loopopts.cpp Changeset: 65fda5c0 Branch: hermetic-java-runtime Author: Harald Eilertsen Committer: Andrew Haley Date: 2025-06-06 08:16:37 +0000 URL: https://git.openjdk.org/leyden/commit/65fda5c02aeb1832bc88dc83ee8465cd8ad89179 8358593: Add ucontext accessors for *BSD on Aarch64 Co-authored-by: Greg Lewis Co-authored-by: Kurt Miller Reviewed-by: aph ! src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.cpp Changeset: b2e7cda6 Branch: hermetic-java-runtime Author: Fernando Guallini Date: 2025-06-06 09:53:25 +0000 URL: https://git.openjdk.org/leyden/commit/b2e7cda6a0bd21fa3c4ffe2a67da4953f1ca3f1f 8358171: Additional code coverage for PEM API Reviewed-by: ascarpino ! test/jdk/java/security/PEM/PEMData.java ! test/jdk/java/security/PEM/PEMDecoderTest.java ! test/jdk/java/security/PEM/PEMEncoderTest.java + test/jdk/java/security/PEM/PEMMultiThreadTest.java + test/jdk/java/security/PEM/java.security-anotherAlgo + test/jdk/java/security/PEM/java.security-emptyAlgo ! test/jdk/javax/crypto/EncryptedPrivateKeyInfo/EncryptKey.java ! test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKey.java ! test/jdk/sun/security/pkcs/pkcs8/PKCS8Test.java ! test/lib/jdk/test/lib/security/SecurityUtils.java Changeset: 9658cecd Branch: hermetic-java-runtime Author: Hamlin Li Date: 2025-06-06 13:59:17 +0000 URL: https://git.openjdk.org/leyden/commit/9658cecde34a6e9cd39656d21a4ae8bc42da5956 8358685: [TEST] AOTLoggingTag.java failed with missing log message Reviewed-by: iklam, shade ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/AOTLoggingTag.java Changeset: 8adb052b Branch: hermetic-java-runtime Author: Vicente Romero Date: 2025-06-06 14:11:27 +0000 URL: https://git.openjdk.org/leyden/commit/8adb052b46f90e8a0605cfc5ddc667acb7c61952 8341778: Some javac tests ignore the result of JavacTask::call Reviewed-by: shade ! test/hotspot/jtreg/vmTestbase/gc/g1/unloading/GenClassPoolJar.java ! test/langtools/tools/javac/T6358024.java ! test/langtools/tools/javac/T6358166.java ! test/langtools/tools/javac/T6361619.java ! test/langtools/tools/javac/T6395974.java ! test/langtools/tools/javac/T6397286.java ! test/langtools/tools/javac/T6458823/T6458823.java ! test/langtools/tools/javac/TryWithResources/TwrAvoidNullCheck.java ! test/langtools/tools/javac/TryWithResources/TwrSimpleClose.java ! test/langtools/tools/javac/api/6406133/T6406133.java ! test/langtools/tools/javac/api/6410643/T6410643.java ! test/langtools/tools/javac/api/6412656/T6412656.java ! test/langtools/tools/javac/api/6423003/T6423003.java ! test/langtools/tools/javac/api/6731573/T6731573.java ! test/langtools/tools/javac/api/7086261/T7086261.java ! test/langtools/tools/javac/api/8007344/Test.java ! test/langtools/tools/javac/api/DiagSpans.java ! test/langtools/tools/javac/api/T6357331.java ! test/langtools/tools/javac/api/TestTreePath.java ! test/langtools/tools/javac/api/taskListeners/EventsBalancedTest.java ! test/langtools/tools/javac/fatalErrors/ImproveFatalErrorHandling.java ! test/langtools/tools/javac/lib/DPrinter.java ! test/langtools/tools/javac/modules/QueryBeforeEnter.java ! test/langtools/tools/javac/patterns/SOEDeeplyNestedBlocksTest.java ! test/langtools/tools/javac/positions/TreeEndPosTest.java ! test/langtools/tools/javac/processing/6348499/T6348499.java ! test/langtools/tools/javac/processing/6414633/T6414633.java ! test/langtools/tools/javac/processing/6430209/T6430209.java ! test/langtools/tools/javac/processing/T6439826.java ! test/langtools/tools/javac/processing/T8142931.java ! test/langtools/tools/javac/processing/model/LocalInAnonymous.java ! test/langtools/tools/javac/processing/options/TestNoteOnImplicitProcessing.java ! test/langtools/tools/javac/processing/rounds/CompleteOnClosed.java Changeset: 026975a1 Branch: hermetic-java-runtime Author: Alexandre Iline Date: 2025-06-06 15:05:43 +0000 URL: https://git.openjdk.org/leyden/commit/026975a1aa290613934ae421bbc56326627bad8d 8358721: Update JCov for class file version 70 Reviewed-by: iris, alanb, erikj ! make/conf/jib-profiles.js Changeset: d024f58e Branch: hermetic-java-runtime Author: Stuart Marks Date: 2025-06-06 20:07:43 +0000 URL: https://git.openjdk.org/leyden/commit/d024f58e61ec27f6c13fde5dadb95c31875815d6 8358809: Improve link to stdin.encoding from java.lang.IO Reviewed-by: naoto ! src/java.base/share/classes/java/lang/IO.java Changeset: d7352559 Branch: hermetic-java-runtime Author: Rajan Halade Date: 2025-06-06 21:35:21 +0000 URL: https://git.openjdk.org/leyden/commit/d7352559195b9e052c3eb24d773c0d6c10dc23ad 8345414: Google CAInterop test failures Reviewed-by: weijun Backport-of: 8e9ba788ae04a9a617a393709bf2c51a0c157206 ! test/jdk/security/infra/java/security/cert/CertPathValidator/certification/CAInterop.java Changeset: e94ad551 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-06-07 20:34:34 +0000 URL: https://git.openjdk.org/leyden/commit/e94ad551c6d31b91ec066f92f9bbdb956f54e887 8342639: Global operator new in adlc has wrong exception spec Reviewed-by: kvn, mdoerr ! src/hotspot/share/adlc/main.cpp Changeset: 6c616c71 Branch: hermetic-java-runtime Author: Daniel Skantz Date: 2025-06-09 06:11:05 +0000 URL: https://git.openjdk.org/leyden/commit/6c616c71ec9a8ee6e0203921deef20d09db39698 8357822: C2: Multiple string optimization tests are no longer testing string concatenation optimizations Reviewed-by: rcastanedalo, epeter ! test/hotspot/jtreg/compiler/c2/Test7046096.java ! test/hotspot/jtreg/compiler/c2/Test7179138_2.java ! test/hotspot/jtreg/vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Implicit01/cs_disabled/TestDescription.java ! test/hotspot/jtreg/vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Implicit01/cs_enabled/TestDescription.java ! test/hotspot/jtreg/vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Merge01/cs_disabled/TestDescription.java ! test/hotspot/jtreg/vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Merge01/cs_enabled/TestDescription.java Changeset: 91f12600 Branch: hermetic-java-runtime Author: Roberto Casta?eda Lozano Date: 2025-06-09 06:23:17 +0000 URL: https://git.openjdk.org/leyden/commit/91f12600d2b188ca98c5c575a34b85f5835399a0 8345067: C2: enable implicit null checks for ZGC reads Reviewed-by: aboldtch, kvn, epeter ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/ppc/gc/z/z_ppc.ad ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/riscv/gc/z/z_riscv.ad ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/x86/gc/z/z_x86_64.ad ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/share/adlc/output_h.cpp ! src/hotspot/share/opto/block.hpp ! src/hotspot/share/opto/lcm.cpp ! src/hotspot/share/opto/machnode.hpp ! src/hotspot/share/opto/output.cpp + test/hotspot/jtreg/compiler/gcbarriers/TestImplicitNullChecks.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Changeset: 52338c94 Branch: hermetic-java-runtime Author: Per Minborg Date: 2025-06-09 07:00:51 +0000 URL: https://git.openjdk.org/leyden/commit/52338c94f610611a9e89a6ccbe6f2c6cd768b50a 8358520: Improve lazy computation in BreakIteratorResourceBundle and related classes Reviewed-by: naoto, jlu ! src/java.base/share/classes/java/util/ResourceBundle.java ! src/java.base/share/classes/sun/util/resources/BreakIteratorResourceBundle.java ! src/java.base/share/classes/sun/util/resources/OpenListResourceBundle.java Changeset: 1c72b350 Branch: hermetic-java-runtime Author: Joel Sikstr?m Date: 2025-06-09 09:03:12 +0000 URL: https://git.openjdk.org/leyden/commit/1c72b350e417bd210dc6b66eba5afe0e3bc6306c 8357053: ZGC: Improved utility for ZPageAge Co-authored-by: Axel Boldt-Christmas Reviewed-by: sjohanss, stefank ! src/hotspot/share/gc/z/zAllocator.cpp ! src/hotspot/share/gc/z/zAllocator.hpp ! src/hotspot/share/gc/z/zAllocator.inline.hpp ! src/hotspot/share/gc/z/zGeneration.cpp ! src/hotspot/share/gc/z/zPageAge.hpp + src/hotspot/share/gc/z/zPageAge.inline.hpp ! src/hotspot/share/gc/z/zRelocate.cpp ! src/hotspot/share/gc/z/zRelocationSetSelector.cpp ! src/hotspot/share/gc/z/zRelocationSetSelector.hpp ! src/hotspot/share/gc/z/zRelocationSetSelector.inline.hpp ! src/hotspot/share/gc/z/zStat.cpp ! src/hotspot/share/gc/z/z_globals.hpp ! src/hotspot/share/utilities/enumIterator.hpp + test/hotspot/gtest/gc/z/test_zPageAge.cpp Changeset: 2103dc15 Branch: hermetic-java-runtime Author: Alexander Zvegintsev Date: 2025-06-09 13:35:01 +0000 URL: https://git.openjdk.org/leyden/commit/2103dc15cb662fd8795b1b51d9cb61c389bed7a0 8358452: JNI exception pending in Java_sun_awt_screencast_ScreencastHelper_remoteDesktopKeyImpl of screencast_pipewire.c:1214 (ID: 51119) Reviewed-by: psadhukhan, serb, aivanov, avu ! src/java.desktop/unix/native/libawt_xawt/awt/screencast_pipewire.c Changeset: eb8ee8bd Branch: hermetic-java-runtime Author: Phil Race Date: 2025-06-09 16:01:18 +0000 URL: https://git.openjdk.org/leyden/commit/eb8ee8bdc7c170910abc9aa18de1e22677160358 8358731: Remove jdk.internal.access.JavaAWTAccess.java Reviewed-by: dfuchs, serb - src/java.base/share/classes/jdk/internal/access/JavaAWTAccess.java ! src/java.base/share/classes/jdk/internal/access/SharedSecrets.java ! src/java.desktop/share/classes/sun/awt/AppContext.java - test/jdk/java/util/logging/LogManagerAppContextDeadlock.java - test/jdk/java/util/logging/TestGetLoggerNPE.java - test/jdk/java/util/logging/TestUILoggerContext.java Changeset: cae1fd33 Branch: hermetic-java-runtime Author: Jiangli Zhou Date: 2025-06-09 16:08:18 +0000 URL: https://git.openjdk.org/leyden/commit/cae1fd3385e0635beeac34a2287627e556155783 8357632: CDS test failures on static JDK Reviewed-by: ccheung, dholmes ! src/hotspot/share/cds/cdsConfig.cpp ! test/hotspot/jtreg/ProblemList-StaticJdk.txt ! test/hotspot/jtreg/runtime/cds/NonJVMVariantLocation.java Changeset: a377773f Branch: hermetic-java-runtime Author: kieran-farrell Committer: Daniel Fuchs Date: 2025-06-09 17:39:39 +0000 URL: https://git.openjdk.org/leyden/commit/a377773fa76b46ac98533c61bc1410485390115e 8358617: java/net/HttpURLConnection/HttpURLConnectionExpectContinueTest.java fails with 403 due to system proxies Reviewed-by: dfuchs ! test/jdk/java/net/HttpURLConnection/HttpURLConnectionExpectContinueTest.java Changeset: 156187ac Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-06-09 17:58:49 +0000 URL: https://git.openjdk.org/leyden/commit/156187accc1c3e2a897ced011727a5c8d8e1b0cf 8356978: Convert unicode sequences in Java source code to UTF-8 Co-authored-by: Alexey Ivanov Reviewed-by: naoto, prr, joehw ! src/demo/share/jfc/Stylepad/HelloWorld.java ! src/java.base/share/classes/sun/text/resources/JavaTimeSupplementary.java ! src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData_ja.java Changeset: eb256deb Branch: hermetic-java-runtime Author: Coleen Phillimore Date: 2025-06-09 18:33:00 +0000 URL: https://git.openjdk.org/leyden/commit/eb256deb8021d5b243ef782eb9e2622472909e97 8358326: Use oopFactory array allocation Reviewed-by: fparain, stefank ! src/hotspot/share/jvmci/jvmciEnv.cpp ! src/hotspot/share/memory/oopFactory.cpp ! src/hotspot/share/oops/objArrayKlass.cpp ! src/hotspot/share/oops/objArrayKlass.hpp ! src/hotspot/share/oops/typeArrayKlass.cpp ! src/hotspot/share/oops/typeArrayKlass.hpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/vectorSupport.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/reflection.cpp Changeset: fcb68ea2 Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-06-09 19:03:21 +0000 URL: https://git.openjdk.org/leyden/commit/fcb68ea22d020d567c560c7bd5976d3c070d9806 8358626: Emit UTF-8 CLDR resources Reviewed-by: erikj, vyazici ! make/modules/java.base/Gensrc.gmk ! make/modules/jdk.localedata/Gensrc.gmk Changeset: cd9b1bc8 Branch: hermetic-java-runtime Author: Justin Lu Date: 2025-06-09 20:49:33 +0000 URL: https://git.openjdk.org/leyden/commit/cd9b1bc820540184c79dd1957edc7ad4e8e469dc 8358426: Improve lazy computation in Locale Reviewed-by: naoto, liach ! src/java.base/share/classes/java/util/Locale.java ! src/java.base/share/classes/java/util/LocaleISOData.java ! src/java.base/share/classes/sun/util/locale/BaseLocale.java Changeset: ef45c815 Branch: hermetic-java-runtime Author: David Holmes Date: 2025-06-09 20:59:30 +0000 URL: https://git.openjdk.org/leyden/commit/ef45c8154cea2ec910788d3c19e91d3eed75708e 8346237: Obsolete the UseOprofile flag Reviewed-by: coleenp, kvn ! src/hotspot/os/linux/globals_linux.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/memory/heap.cpp ! src/hotspot/share/memory/heap.hpp ! src/hotspot/share/runtime/arguments.cpp Changeset: d186dacd Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-06-09 21:54:55 +0000 URL: https://git.openjdk.org/leyden/commit/d186dacdb7b91dc9a28b703ce3c8ea007fc450b6 8357591: Re-enable CDS test cases for jvmci after JDK-8345826 Reviewed-by: dholmes, kvn ! test/hotspot/jtreg/runtime/cds/appcds/LambdaWithUseImplMethodHandle.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/AOTCacheSupportForCustomLoaders.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/ExcludedClasses.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/HelloAOTCache.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/JavaAgent.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/ManagementAgent.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/PackageInfoClass.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/SpecialCacheNames.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/VerifierFailOver.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/AOTCacheWithZGC.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/AOTLoaderConstraintsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/AddExports.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/AddOpens.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/AddReads.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/BulkLoaderTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/FakeCodeLocation.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/GeneratedInternedString.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/LambdaInExcludedClass.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/MethodHandleTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/NonFinalStaticWithInitVal.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/StringConcatStress.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/TestSetupAOTTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/TrainingRun.java ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/WeakReferenceTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotProfile/AOTProfileFlags.java ! test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchiveHeapTestClass.java ! test/hotspot/jtreg/runtime/cds/appcds/methodHandles/MethodHandlesAsCollectorTest.java ! test/hotspot/jtreg/runtime/cds/appcds/methodHandles/MethodHandlesCastFailureTest.java ! test/hotspot/jtreg/runtime/cds/appcds/methodHandles/MethodHandlesGeneralTest.java ! test/hotspot/jtreg/runtime/cds/appcds/methodHandles/MethodHandlesInvokersTest.java ! test/hotspot/jtreg/runtime/cds/appcds/methodHandles/MethodHandlesPermuteArgumentsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/methodHandles/MethodHandlesSpreadArgumentsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/resolvedConstants/AOTLinkedLambdas.java ! test/hotspot/jtreg/runtime/cds/appcds/resolvedConstants/AOTLinkedVarHandles.java Changeset: bcf86070 Branch: hermetic-java-runtime Author: David Holmes Date: 2025-06-09 22:25:20 +0000 URL: https://git.openjdk.org/leyden/commit/bcf860703dc0244fef1d380cb7323282de76970c 8355792: Remove expired flags in JDK 26 Reviewed-by: coleenp, kvn ! src/hotspot/share/runtime/arguments.cpp ! src/java.base/share/man/java.md Changeset: 92be7821 Branch: hermetic-java-runtime Author: Matthias Bl?sing Committer: SendaoYan Date: 2025-06-10 00:21:18 +0000 URL: https://git.openjdk.org/leyden/commit/92be7821f5d5cbf5fe0244b41b2b7b1ada898df0 8353950: Clipboard interaction on Windows is unstable 8332271: Reading data from the clipboard from multiple threads crashes the JVM Reviewed-by: abhiscxk, dnguyen ! src/java.desktop/share/classes/sun/awt/datatransfer/SunClipboard.java ! src/java.desktop/windows/classes/sun/awt/windows/WClipboard.java ! src/java.desktop/windows/native/libawt/windows/awt_Clipboard.cpp + test/jdk/java/awt/Clipboard/ConcurrentClipboardAccessTest.java Changeset: ca7b8858 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-10 06:15:13 +0000 URL: https://git.openjdk.org/leyden/commit/ca7b885873712a5ae503cb82c915d709034a69f7 8358749: Fix input checks in Vector API intrinsics Co-authored-by: Vladimir Ivanov Reviewed-by: vlivanov, sviswanathan ! src/hotspot/share/opto/vectorIntrinsics.cpp Changeset: 7c9c8ba3 Branch: hermetic-java-runtime Author: Beno?t Maillard Committer: Marc Chevalier Date: 2025-06-10 07:27:10 +0000 URL: https://git.openjdk.org/leyden/commit/7c9c8ba363521a7bfb58e1a8285459f717769889 8356780: PhaseMacroExpand::_has_locks is unused Reviewed-by: mhaessig, chagedorn, kvn, mchevalier ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/macro.hpp Changeset: 3ff83ec4 Branch: hermetic-java-runtime Author: Varada M Date: 2025-06-10 08:17:52 +0000 URL: https://git.openjdk.org/leyden/commit/3ff83ec49e561c44dd99508364b8ba068274b63a 8358159: Empty mode/padding in cipher transformations Reviewed-by: amitkumar, valeriep ! src/java.base/share/classes/javax/crypto/Cipher.java + test/jdk/javax/crypto/Cipher/TestEmptyModePadding.java Changeset: 0582bd29 Branch: hermetic-java-runtime Author: Daniel Fuchs Date: 2025-06-10 11:01:50 +0000 URL: https://git.openjdk.org/leyden/commit/0582bd290d5a8b6344ae7ada36492cc2f33df050 8357639: DigestEchoClient fails intermittently due to: java.io.IOException: Data received while in pool Reviewed-by: djelinski ! src/java.net.http/share/classes/jdk/internal/net/http/SocketTube.java Changeset: a2f99fd8 Branch: hermetic-java-runtime Author: Roland Westrelin Date: 2025-06-10 14:19:19 +0000 URL: https://git.openjdk.org/leyden/commit/a2f99fd88bd03337e1ba73b413ffe4e39f3584cf 8354383: C2: enable sinking of Type nodes out of loop Reviewed-by: chagedorn, thartmann ! src/hotspot/share/opto/loopopts.cpp Changeset: 500a3a2d Branch: hermetic-java-runtime Author: Calvin Cheung Date: 2025-06-10 16:20:33 +0000 URL: https://git.openjdk.org/leyden/commit/500a3a2d0af0a3f7cf58b909bbbc2aa25926d8b4 8358799: Refactor os::jvm_path() Reviewed-by: dholmes, jsjolen ! 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: 8f487d26 Branch: hermetic-java-runtime Author: Alex Menkov Date: 2025-06-10 19:05:08 +0000 URL: https://git.openjdk.org/leyden/commit/8f487d26c0f219d4df32be48ff1790e6f98d74a0 8358577: Test serviceability/jvmti/thread/GetCurrentContendedMonitor/contmon01/contmon01.java failed: unexpexcted monitor object Reviewed-by: cjplummer, syan, sspitsyn ! test/hotspot/jtreg/serviceability/jvmti/thread/GetCurrentContendedMonitor/contmon01/contmon01.java Changeset: 38b877e9 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-10 20:10:19 +0000 URL: https://git.openjdk.org/leyden/commit/38b877e941918cc5f0463b256d4672d765d40302 8358294: Remove unnecessary GenAlignment Reviewed-by: iwalulya, tschatzl ! src/hotspot/share/gc/parallel/parallelArguments.cpp ! src/hotspot/share/gc/parallel/parallelInitLogger.cpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/psOldGen.cpp ! src/hotspot/share/gc/parallel/psYoungGen.cpp ! src/hotspot/share/gc/serial/serialHeap.cpp ! src/hotspot/share/gc/shared/gcArguments.hpp ! src/hotspot/share/gc/shared/genArguments.cpp ! src/hotspot/share/gc/shared/genArguments.hpp ! src/hotspot/share/prims/whitebox.cpp ! test/hotspot/gtest/gc/shared/test_collectorPolicy.cpp ! test/hotspot/jtreg/gc/arguments/TestMinAndInitialSurvivorRatioFlags.java ! test/hotspot/jtreg/gc/arguments/TestNewRatioFlag.java ! test/hotspot/jtreg/gc/arguments/TestNewSizeFlags.java ! test/hotspot/jtreg/gc/arguments/TestSurvivorRatioFlag.java ! test/lib/jdk/test/whitebox/WhiteBox.java Changeset: 9586817c Branch: hermetic-java-runtime Author: Rajan Halade Date: 2025-06-10 21:59:29 +0000 URL: https://git.openjdk.org/leyden/commit/9586817cea3f1cad8a49d43e9106e25dafa04765 8359170: Add 2 TLS and 2 CS Sectigo roots Reviewed-by: mullan + src/java.base/share/data/cacerts/sectigocodesignroote46 + src/java.base/share/data/cacerts/sectigocodesignrootr46 + src/java.base/share/data/cacerts/sectigotlsroote46 + src/java.base/share/data/cacerts/sectigotlsrootr46 ! test/jdk/security/infra/java/security/cert/CertPathValidator/certification/CAInterop.java + test/jdk/security/infra/java/security/cert/CertPathValidator/certification/SectigoCSRootCAs.java ! test/jdk/sun/security/lib/cacerts/VerifyCACerts.java Changeset: abc76c6b Branch: hermetic-java-runtime Author: Martin Doerr Date: 2025-06-11 08:28:31 +0000 URL: https://git.openjdk.org/leyden/commit/abc76c6b5b3e2eabd3fd3ceb96ffe02979dc8956 8359126: [AIX] new test TestImplicitNullChecks.java fails Reviewed-by: rcastanedalo, dbriemann ! test/hotspot/jtreg/compiler/gcbarriers/TestImplicitNullChecks.java ! test/hotspot/jtreg/compiler/lib/ir_framework/test/IREncodingPrinter.java Changeset: 56ce70c5 Branch: hermetic-java-runtime Author: Martin Doerr Date: 2025-06-11 08:28:48 +0000 URL: https://git.openjdk.org/leyden/commit/56ce70c5dfe1ecaf371d462d4198765d4a86db3c 8359165: AIX build broken after 8358799 Reviewed-by: kbarrett, jkern ! src/hotspot/os/posix/os_posix.cpp Changeset: 5ae32c4c Branch: hermetic-java-runtime Author: Khalid Boulanouare Committer: Alexey Ivanov Date: 2025-06-11 10:25:28 +0000 URL: https://git.openjdk.org/leyden/commit/5ae32c4c86916120d2a337be9765cb6e14f3f443 8352149: Test java/awt/Frame/MultiScreenTest.java fails: Window list is empty Reviewed-by: aivanov, abhiscxk ! test/jdk/java/awt/Frame/MultiScreenTest.java Changeset: bf7d40d0 Branch: hermetic-java-runtime Author: Beno?t Maillard Committer: Damon Fenacci Date: 2025-06-11 11:08:38 +0000 URL: https://git.openjdk.org/leyden/commit/bf7d40d0486b7b4e4820bb5d08a63c446ea3291d 8356751: IGV: clean up redundant field _should_send_method Co-authored-by: Manuel H?ssig Reviewed-by: mhaessig, thartmann, dfenacci ! src/hotspot/share/opto/idealGraphPrinter.cpp ! src/hotspot/share/opto/idealGraphPrinter.hpp Changeset: 42ab8fcf Branch: hermetic-java-runtime Author: Anton Artemov Committer: Coleen Phillimore Date: 2025-06-11 12:42:57 +0000 URL: https://git.openjdk.org/leyden/commit/42ab8fcfb98eacb2d93f59c012360a99a16e5450 8265754: Move suspend/resume API from HandshakeState Reviewed-by: coleenp, dholmes, pchilanomate ! src/hotspot/share/runtime/handshake.cpp ! src/hotspot/share/runtime/handshake.hpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp + src/hotspot/share/runtime/suspendResumeManager.cpp + src/hotspot/share/runtime/suspendResumeManager.hpp Changeset: 7d7fc693 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2025-06-11 13:32:57 +0000 URL: https://git.openjdk.org/leyden/commit/7d7fc69355e6f5421cf09f93290270bb16d13182 8357570: [macOS] os::Bsd::available_memory() might return too low values Reviewed-by: clanger, mdoerr, lucy ! src/hotspot/os/bsd/os_bsd.cpp Changeset: c98dffa1 Branch: hermetic-java-runtime Author: Jatin Bhateja Date: 2025-06-11 13:48:56 +0000 URL: https://git.openjdk.org/leyden/commit/c98dffa186d48c41e76fd3a60e0129a8da60310f 8357982: Fix several failing BMI tests with -XX:+UseAPX Reviewed-by: epeter, sviswanathan ! src/hotspot/cpu/x86/x86_64.ad ! test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/AndnTestI.java ! test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BlsiTestI.java ! test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BlsmskTestI.java ! test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BlsrTestI.java ! test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BmiIntrinsicBase.java ! test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BzhiTestI2L.java ! test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/LZcntTestI.java ! test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/TZcntTestI.java Changeset: e5196fc2 Branch: hermetic-java-runtime Author: Alan Bateman Date: 2025-06-11 14:09:45 +0000 URL: https://git.openjdk.org/leyden/commit/e5196fc24d2ec9e581af7803ac47036111fee029 8358764: (sc) SocketChannel.close when thread blocked in read causes connection to be reset (win) Reviewed-by: jpai, vyazici ! src/java.base/share/classes/sun/nio/ch/Net.java ! src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java ! src/java.base/unix/native/libnio/ch/Net.c ! src/java.base/windows/native/libnio/ch/Net.c + test/jdk/java/nio/channels/SocketChannel/PeerReadsAfterAsyncClose.java Changeset: e9216efe Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-06-11 16:04:26 +0000 URL: https://git.openjdk.org/leyden/commit/e9216efefc12b04c372a0a7f47167c984be544b7 8358734: Remove JavaTimeSupplementary resource bundles Reviewed-by: jlu, joehw, iris ! src/java.base/share/classes/module-info.java ! src/java.base/share/classes/sun/text/resources/FormatData.java - src/java.base/share/classes/sun/text/resources/JavaTimeSupplementary.java - src/java.base/share/classes/sun/text/resources/JavaTimeSupplementaryProvider.java ! src/java.base/share/classes/sun/util/locale/provider/LocaleResources.java ! src/java.base/share/classes/sun/util/resources/LocaleData.java - src/java.base/share/classes/sun/util/resources/ParallelListResourceBundle.java ! src/jdk.localedata/share/classes/module-info.java ! src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData.java ! src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData_ja.java ! src/jdk.localedata/share/classes/sun/util/resources/provider/LocaleDataProvider.java Changeset: ef4cbec6 Branch: hermetic-java-runtime Author: Mohamed Issa Committer: Sandhya Viswanathan Date: 2025-06-11 17:47:03 +0000 URL: https://git.openjdk.org/leyden/commit/ef4cbec6fba77fd84b328d333f8592c6eedf1a2d 8358556: Assert when running with -XX:-UseLibmIntrinsic Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp ! src/hotspot/share/classfile/vmIntrinsics.cpp Changeset: 42915821 Branch: hermetic-java-runtime Author: Calvin Cheung Date: 2025-06-11 18:10:34 +0000 URL: https://git.openjdk.org/leyden/commit/429158218b52964ad1e79ba9d2fa5618d6b3398e 8357382: runtime/cds/appcds/aotClassLinking/BulkLoaderTest.java#aot fails with Xcomp and C1 Reviewed-by: iklam, kvn ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/BulkLoaderTest.java Changeset: 408b062b Branch: hermetic-java-runtime Author: Jiangli Zhou Date: 2025-06-11 11:50:17 +0000 URL: https://git.openjdk.org/leyden/commit/408b062bfab0527231fcc6c7609c301f07f5cd09 Merge branch 'master' into hermetic-java-runtime ! .jcheck/conf ! make/Main.gmk ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/java.base/share/classes/sun/security/util/DomainName.java ! src/java.desktop/unix/classes/sun/font/MFontConfiguration.java ! .jcheck/conf ! make/Main.gmk ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/java.base/share/classes/sun/security/util/DomainName.java ! src/java.desktop/unix/classes/sun/font/MFontConfiguration.java From duke at openjdk.org Thu Jun 12 01:30:29 2025 From: duke at openjdk.org (duke) Date: Thu, 12 Jun 2025 01:30:29 GMT Subject: git: openjdk/leyden: created branch premain-fixes based on the branch premain containing 1 unique commit Message-ID: <5c25513a-39af-4ab9-8ecf-b5390956b888@openjdk.org> The following commits are unique to the premain-fixes branch: ======================================================== c51a87a1: fixes From asmehra at openjdk.org Thu Jun 12 20:12:36 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Thu, 12 Jun 2025 20:12:36 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v8] In-Reply-To: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: > This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: Add back CodeBuffer::clear_strings() Signed-off-by: Ashutosh Mehra ------------- Changes: - all: https://git.openjdk.org/leyden/pull/71/files - new: https://git.openjdk.org/leyden/pull/71/files/446ac35f..31e581d4 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=07 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=06-07 Stats: 7 lines in 2 files changed: 7 ins; 0 del; 0 mod Patch: https://git.openjdk.org/leyden/pull/71.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/71/head:pull/71 PR: https://git.openjdk.org/leyden/pull/71 From kvn at openjdk.org Thu Jun 12 21:37:51 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Thu, 12 Jun 2025 21:37:51 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v8] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Thu, 12 Jun 2025 20:12:36 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Add back CodeBuffer::clear_strings() > > Signed-off-by: Ashutosh Mehra I submitted testing. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2968216753 From kvn at openjdk.org Fri Jun 13 01:42:46 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 13 Jun 2025 01:42:46 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v8] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Thu, 12 Jun 2025 20:12:36 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Add back CodeBuffer::clear_strings() > > Signed-off-by: Ashutosh Mehra My testing passed and everything seems fine. Did you compare outputs logs that we produce/use about the same number of AOT nmethods? Did you compare performance? May be look on `XX:+CITime` output. ------------- PR Review: https://git.openjdk.org/leyden/pull/71#pullrequestreview-2923179521 PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2968724509 From asmehra at openjdk.org Fri Jun 13 17:30:40 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 13 Jun 2025 17:30:40 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v8] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: <1NfGn2NMzVuEmMxhlUlMCfvSJxflpTQd-LltwhaE7vg=.1bff3ceb-b468-4ae5-a615-afaffb7e7c45@github.com> On Thu, 12 Jun 2025 20:12:36 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Add back CodeBuffer::clear_strings() > > Signed-off-by: Ashutosh Mehra I tested the changes with spring-boot-getting-started and JavacBench. The logs indicate number of nmethods stored and loaded are more or less the same. Performance change is also negligible or within margin of error. For spring-boot-getting-started: Run,Old CDS + AOT,New CDS + AOT 1,323,326 2,324,324 3,323,323 4,326,329 5,324,324 6,323,326 7,328,332 8,320,324 9,323,323 10,324,325 Geomean,323.79,325.59 Stdev,1.99,2.73 For JavacBench: Run,Old CDS + AOT,New CDS + AOT 1,537,544 2,534,548 3,530,538 4,546,540 5,537,527 6,535,529 7,540,544 8,540,545 9,538,548 10,544,540 Geomean,538.08,540.26 Stdev,4.46,6.91 Comparing AOT Code Cache stats generated by Xlog:init for spring-boot-getting-started... premain: [0.316s][info][init] AOT Code Cache statistics (when closed): [0.316s][info][init] Adapter: total=535 [0.316s][info][init] Code: total=2826 loaded=2553 invalidated=194 failed=9 [0.316s][info][init] AOT Code T1 total=131 loaded=127 [0.316s][info][init] AOT Code T2 total=1870 loaded=1857 invalidated=18 failed=9 [0.316s][info][init] AOT Code T4 total=415 loaded=173 invalidated=5 [0.316s][info][init] AOT Code T5 total=410 loaded=396 invalidated=171 has_clinit_barriers=302 and with this patch: [0.316s][info][init] AOT Code Cache statistics (when closed): [0.316s][info][init] Adapter: total=535 [0.316s][info][init] Code: total=2849 loaded=2557 invalidated=182 failed=9 [0.316s][info][init] AOT Code T1 total=131 loaded=127 [0.316s][info][init] AOT Code T2 total=1876 loaded=1863 invalidated=18 failed=9 [0.316s][info][init] AOT Code T4 total=423 loaded=160 invalidated=6 [0.316s][info][init] AOT Code T5 total=419 loaded=407 invalidated=158 has_clinit_barriers=311 Similarly for JavacBench, premain: [0.270s][info][init] AOT Code Cache statistics (when closed): [0.270s][info][init] Adapter: total=430 [0.270s][info][init] Code: total=3049 loaded=2816 invalidated=322 [0.270s][info][init] AOT Code T1 total=93 loaded=93 [0.270s][info][init] AOT Code T2 total=1904 loaded=1899 [0.270s][info][init] AOT Code T4 total=527 loaded=299 invalidated=24 [0.270s][info][init] AOT Code T5 total=525 loaded=525 invalidated=298 has_clinit_barriers=359 and with this patch: [0.246s][info][init] AOT Code Cache statistics (when closed): [0.246s][info][init] Adapter: total=430 [0.246s][info][init] Code: total=3077 loaded=2858 invalidated=385 [0.246s][info][init] AOT Code T1 total=93 loaded=93 [0.246s][info][init] AOT Code T2 total=1837 loaded=1832 [0.246s][info][init] AOT Code T4 total=574 loaded=360 invalidated=25 [0.246s][info][init] AOT Code T5 total=573 loaded=573 invalidated=360 has_clinit_barriers=409 ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2971044521 From kvn at openjdk.org Fri Jun 13 17:38:42 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 13 Jun 2025 17:38:42 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v8] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Thu, 12 Jun 2025 20:12:36 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Add back CodeBuffer::clear_strings() > > Signed-off-by: Ashutosh Mehra Good. If @adinn don't have any more comments you can integrate. We may need few more AOT fixes in mainline before marge from it. ------------- Marked as reviewed by kvn (Committer). PR Review: https://git.openjdk.org/leyden/pull/71#pullrequestreview-2925665952 PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2971074258 From adinn at openjdk.org Mon Jun 16 10:24:48 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Mon, 16 Jun 2025 10:24:48 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v8] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Thu, 12 Jun 2025 20:12:36 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Add back CodeBuffer::clear_strings() > > Signed-off-by: Ashutosh Mehra src/hotspot/share/code/aotCodeCache.hpp line 162: > 160: bool has_clinit_barriers = false, > 161: bool for_preload = false, > 162: bool ignore_decompile = false) { You still have not used this argument to initialize field `_ignore_decompile` (it is set unconditionally to true at line 190). ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/71#discussion_r2149598644 From asmehra at openjdk.org Mon Jun 16 13:28:11 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 16 Jun 2025 13:28:11 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: > This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: Address ADinn's review comment Signed-off-by: Ashutosh Mehra ------------- Changes: - all: https://git.openjdk.org/leyden/pull/71/files - new: https://git.openjdk.org/leyden/pull/71/files/31e581d4..c1e8337e Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=08 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=71&range=07-08 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/leyden/pull/71.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/71/head:pull/71 PR: https://git.openjdk.org/leyden/pull/71 From adinn at openjdk.org Mon Jun 16 13:28:11 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Mon, 16 Jun 2025 13:28:11 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: <4y5JlwOkuauQyAnyhKhYJ7mC82JICIbghKKpDhnNckM=.00dd9d24-0d19-4f94-bd70-f882253b9c4b@github.com> On Mon, 16 Jun 2025 13:25:43 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Address ADinn's review comment > > Signed-off-by: Ashutosh Mehra Looks good. ------------- Marked as reviewed by adinn (Committer). PR Review: https://git.openjdk.org/leyden/pull/71#pullrequestreview-2932124851 From asmehra at openjdk.org Mon Jun 16 13:28:12 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 16 Jun 2025 13:28:12 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v8] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 10:22:34 GMT, Andrew Dinn wrote: >> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: >> >> Add back CodeBuffer::clear_strings() >> >> Signed-off-by: Ashutosh Mehra > > src/hotspot/share/code/aotCodeCache.hpp line 162: > >> 160: bool has_clinit_barriers = false, >> 161: bool for_preload = false, >> 162: bool ignore_decompile = false) { > > You still have not used this argument to initialize field `_ignore_decompile` (it is set unconditionally to true at line 190). my bad, fixed it now. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/71#discussion_r2149998295 From asmehra at openjdk.org Mon Jun 16 15:58:45 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 16 Jun 2025 15:58:45 GMT Subject: git: openjdk/leyden: premain: Update nmethod caching and clean up unused/duplicate methods Message-ID: <706e9097-96dc-4978-8c66-436acad631ef@openjdk.org> Changeset: 5e16e621 Branch: premain Author: Ashutosh Mehra Date: 2025-06-16 15:57:52 +0000 URL: https://git.openjdk.org/leyden/commit/5e16e621162676e058a1099a73f601e38910f169 Update nmethod caching and clean up unused/duplicate methods Reviewed-by: kvn, adinn ! src/hotspot/share/asm/codeBuffer.cpp ! src/hotspot/share/asm/codeBuffer.hpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/ci/ciEnv.hpp ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/aotCodeCache.hpp ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/code/codeBlob.hpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/nmethod.hpp ! src/hotspot/share/code/relocInfo.cpp ! src/hotspot/share/oops/method.hpp From asmehra at openjdk.org Mon Jun 16 16:01:08 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 16 Jun 2025 16:01:08 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v8] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: <5LcOx2m1p3NoNjvt2x5jVt9hrjM3C-iVpm6PlrPQcto=.0d13a156-e1f0-41fc-8d0d-858626a29bed@github.com> On Fri, 13 Jun 2025 17:34:58 GMT, Vladimir Kozlov wrote: >> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: >> >> Add back CodeBuffer::clear_strings() >> >> Signed-off-by: Ashutosh Mehra > > If @adinn don't have any more comments you can integrate. > > We may need few more AOT fixes in mainline before marge from it. GHA passed. Thanks @vnkozlov and @adinn for the reviews. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977182977 From asmehra at openjdk.org Mon Jun 16 16:01:08 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 16 Jun 2025 16:01:08 GMT Subject: Integrated: Update nmethod caching and clean up unused/duplicate methods In-Reply-To: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 2 Jun 2025 14:10:41 GMT, Ashutosh Mehra wrote: > This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. This pull request has now been integrated. Changeset: 5e16e621 Author: Ashutosh Mehra URL: https://git.openjdk.org/leyden/commit/5e16e621162676e058a1099a73f601e38910f169 Stats: 903 lines in 12 files changed: 144 ins; 571 del; 188 mod Update nmethod caching and clean up unused/duplicate methods Reviewed-by: kvn, adinn ------------- PR: https://git.openjdk.org/leyden/pull/71 From kvn at openjdk.org Mon Jun 16 18:36:50 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Mon, 16 Jun 2025 18:36:50 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v8] In-Reply-To: <5LcOx2m1p3NoNjvt2x5jVt9hrjM3C-iVpm6PlrPQcto=.0d13a156-e1f0-41fc-8d0d-858626a29bed@github.com> References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> <5LcOx2m1p3NoNjvt2x5jVt9hrjM3C-iVpm6PlrPQcto=.0d13a156-e1f0-41fc-8d0d-858626a29bed@github.com> Message-ID: <2SbZKqLB9edjD4V-kHE6lBfZMTAJdDly8krUIzi5l6c=.eb6943c9-14f5-4892-9797-11ea50d9074a@github.com> On Mon, 16 Jun 2025 15:55:52 GMT, Ashutosh Mehra wrote: >> If @adinn don't have any more comments you can integrate. >> >> We may need few more AOT fixes in mainline before marge from it. > > GHA passed. Thanks @vnkozlov and @adinn for the reviews. @ashu-mehra I submitted testing after this was integrated and one closed test crashed on MacOS-aarch64 during "product" run when GC trying to purge nmethod: # Internal Error (/workspace/open/src/hotspot/share/nmt/mallocHeader.inline.hpp:107), pid=55426, tid=16643 # fatal error: NMT corruption: Block at 0x00000001209f4088: header canary broken # # JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-internal-LTS-2025-06-16-1707161.vladimir.kozlov.leyden) # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-internal-LTS-2025-06-16-1707161.vladimir.kozlov.leyden, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-aarch64) Stack: [0x000000016e2fc000,0x000000016e4ff000], sp=0x000000016e4fddf0, free space=2055k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.dylib+0x127c010] VMError::report(outputStream*, bool)+0x1b00 (mallocHeader.inline.hpp:107) V [libjvm.dylib+0x127f8b8] VMError::report_and_die(int, char const*, char const*, char*, Thread*, unsigned char*, void const*, void const*, char const*, int, unsigned long)+0x55c V [libjvm.dylib+0x5cf650] DebuggingContext::~DebuggingContext()+0x0 V [libjvm.dylib+0xdeed80] MallocHeader* MallocHeader::resolve_checked_impl(void*)+0x19c V [libjvm.dylib+0xdee630] MallocTracker::record_free_block(void*)+0x44 V [libjvm.dylib+0xf20f84] os::free(void*)+0xa8 V [libjvm.dylib+0xec194c] nmethod::purge(bool)+0x158 V [libjvm.dylib+0x4d5fe0] ClassUnloadingContext::purge_nmethods()+0xac V [libjvm.dylib+0x71961c] G1CollectedHeap::unload_classes_and_code(char const*, BoolObjectClosure*, GCTimer*)+0x434 V [libjvm.dylib+0x72dd40] G1ConcurrentMark::remark()+0x2b0 V [libjvm.dylib+0x7f67e4] VM_G1PauseConcurrent::doit()+0x1b8 V [libjvm.dylib+0x128743c] VM_Operation::evaluate()+0x11c V [libjvm.dylib+0x12a4e20] VMThread::evaluate_operation(VM_Operation*)+0x114 V [libjvm.dylib+0x12a5924] VMThread::inner_execute(VM_Operation*)+0x320 V [libjvm.dylib+0x12a4ad0] VMThread::loop()+0x98 V [libjvm.dylib+0x12a4868] VMThread::run()+0xc0 V [libjvm.dylib+0x11be0d4] Thread::call_run()+0xf0 V [libjvm.dylib+0xf28da4] thread_native_entry(Thread*)+0x140 C [libsystem_pthread.dylib+0x726c] _pthread_start+0x94 VM_Operation (0x000000016dac2bf0): G1PauseRemark, mode: safepoint, requested by thread 0x0000000147841810 ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977654682 From kvn at openjdk.org Mon Jun 16 18:49:50 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Mon, 16 Jun 2025 18:49:50 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 13:28:11 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Address ADinn's review comment > > Signed-off-by: Ashutosh Mehra An other crash happened in aotCode/AOTCodeFlags.java on linux-amd64 in `find_entry()` which looks like during end of test run: Event: 0.085 Thread 0x00007fc79002f0d0 Before exit entered # SIGSEGV (0xb) at pc=0x00007fc79680ead8, pid=3219122, tid=3219333 # # JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-internal-LTS-2025-06-16-1707161.vladimir.kozlov.leyden) # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-internal-LTS-2025-06-16-1707161.vladimir.kozlov.leyden, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) # Problematic frame: # V [libjvm.so+0x69cad8] AOTCodeCache::find_entry(AOTCodeEntry::Kind, unsigned int, unsigned int, unsigned int)+0x158 Command Line: -XX:AOTCache=hello.aot -Xlog:aot -Xlog:aot+codecache* Hello Host: AMD EPYC 7J13 64-Core Processor, 12 cores, 23G, Oracle Linux Server release 8.10 Time: Mon Jun 16 17:40:14 2025 UTC elapsed time: 0.094271 seconds (0d 0h 0m 0s) --------------- T H R E A D --------------- Current thread (0x00007fc790249570): JavaThread "Training replay thread" daemon [_thread_in_vm, id=3219333, stack(0x00007fc7701e6000,0x00007fc7702e6000) (1024K)] Stack: [0x00007fc7701e6000,0x00007fc7702e6000], sp=0x00007fc7702e3440, free space=1013k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0x69cad8] AOTCodeCache::find_entry(AOTCodeEntry::Kind, unsigned int, unsigned int, unsigned int)+0x158 (aotCodeCache.cpp:1001) V [libjvm.so+0x69e09f] AOTCodeCache::find_code_entry(methodHandle const&, unsigned int)+0x22f (aotCodeCache.cpp:955) V [libjvm.so+0xb8cfc3] CompileBroker::compile_method_base(methodHandle const&, int, int, int, CompileTask::CompileReason, bool, bool, Thread*)+0x103 (compileBroker.cpp:1428) V [libjvm.so+0xb8dd68] CompileBroker::compile_method(methodHandle const&, int, int, int, bool, CompileTask::CompileReason, DirectiveSet*, JavaThread*)+0x4b8 (compileBroker.cpp:1729) V [libjvm.so+0xb8e40c] CompileBroker::compile_method(methodHandle const&, int, int, int, bool, CompileTask::CompileReason, JavaThread*)+0xbc (compileBroker.cpp:1614) V [libjvm.so+0xb4d29c] CompilationPolicy::maybe_compile_early(methodHandle const&, JavaThread*) [clone .part.0]+0x19c (compilationPolicy.cpp:120) V [libjvm.so+0xb4d78d] CompilationPolicy::replay_training_at_init_impl(InstanceKlass*, JavaThread*)+0x3ad (compilationPolicy.cpp:176) V [libjvm.so+0xb5244a] CompilationPolicy::replay_training_at_init_loop(JavaThread*)+0x24a (compilationPolicy.cpp:214) V [libjvm.so+0x110180b] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:774) V [libjvm.so+0x1b946d6] Thread::call_run()+0xb6 (thread.cpp:254) V [libjvm.so+0x180de89] thread_native_entry(Thread*)+0x1a9 (os_linux.cpp:868) ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977702830 From asmehra at openjdk.org Mon Jun 16 18:54:49 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 16 Jun 2025 18:54:49 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 18:46:16 GMT, Vladimir Kozlov wrote: >> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: >> >> Address ADinn's review comment >> >> Signed-off-by: Ashutosh Mehra > > An other crash happened in aotCode/AOTCodeFlags.java on linux-amd64 in `find_entry()` which looks like during end of test run: > > Event: 0.085 Thread 0x00007fc79002f0d0 Before exit entered > > > > # SIGSEGV (0xb) at pc=0x00007fc79680ead8, pid=3219122, tid=3219333 > # > # JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-internal-LTS-2025-06-16-1707161.vladimir.kozlov.leyden) > # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-internal-LTS-2025-06-16-1707161.vladimir.kozlov.leyden, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) > # Problematic frame: > # V [libjvm.so+0x69cad8] AOTCodeCache::find_entry(AOTCodeEntry::Kind, unsigned int, unsigned int, unsigned int)+0x158 > > Command Line: -XX:AOTCache=hello.aot -Xlog:aot -Xlog:aot+codecache* Hello > > Host: AMD EPYC 7J13 64-Core Processor, 12 cores, 23G, Oracle Linux Server release 8.10 > Time: Mon Jun 16 17:40:14 2025 UTC elapsed time: 0.094271 seconds (0d 0h 0m 0s) > > --------------- T H R E A D --------------- > > Current thread (0x00007fc790249570): JavaThread "Training replay thread" daemon [_thread_in_vm, id=3219333, stack(0x00007fc7701e6000,0x00007fc7702e6000) (1024K)] > > Stack: [0x00007fc7701e6000,0x00007fc7702e6000], sp=0x00007fc7702e3440, free space=1013k > Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) > V [libjvm.so+0x69cad8] AOTCodeCache::find_entry(AOTCodeEntry::Kind, unsigned int, unsigned int, unsigned int)+0x158 (aotCodeCache.cpp:1001) > V [libjvm.so+0x69e09f] AOTCodeCache::find_code_entry(methodHandle const&, unsigned int)+0x22f (aotCodeCache.cpp:955) > V [libjvm.so+0xb8cfc3] CompileBroker::compile_method_base(methodHandle const&, int, int, int, CompileTask::CompileReason, bool, bool, Thread*)+0x103 (compileBroker.cpp:1428) > V [libjvm.so+0xb8dd68] CompileBroker::compile_method(methodHandle const&, int, int, int, bool, CompileTask::CompileReason, DirectiveSet*, JavaThread*)+0x4b8 (compileBroker.cpp:1729) > V [libjvm.so+0xb8e40c] CompileBroker::compile_method(methodHandle const&, int, int, int, bool, CompileTask::CompileReason, JavaThread*)+0xbc (compileBroker.cpp:1614) > V [libjvm.so+0xb4d29c] CompilationPolicy::maybe_compile_early(methodHandle const&, JavaThread*) [clone .part.0]+0x19c (compilationPolicy.cpp:120) > V [libjvm.so+0xb4d78d] CompilationPolicy::replay_training_at_init_impl(InstanceKlass*, JavaThread*)+0x3ad (compilationPolicy.cpp:176) > V [libjvm.so+0xb5244a] CompilationPolicy::replay_training_... @vnkozlov >I submitted testing after this was integrated and one closed test crashed on MacOS-aarch64 during "product" run when GC trying to purge nmethod: I can see how this could have happened. If the nmethod is purged after the AOT code cache has been closed, then `AOTCodeCache::is_address_in_aot_cache()` will return false. In `nmethod::purge`, this can cause the `_immutable_data` (which is part of AOTCodeCache region) to be incorrectly freed: if (_immutable_data != data_end() && !AOTCodeCache::is_address_in_aot_cache((address)_oop_maps)) { os::free(_immutable_data); _immutable_data = blob_end(); // Valid not null address } I think I should be copying immutable data in a C heap region when loading nmethod from the AOT Code Cache. `CodeBlob;:oop_map` also has the same problem. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977719486 From kvn at openjdk.org Mon Jun 16 18:59:40 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Mon, 16 Jun 2025 18:59:40 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 13:28:11 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Address ADinn's review comment > > Signed-off-by: Ashutosh Mehra Output before second failure (AOTCodeFlags.java): [0.084s][info][aot,codecache,nmethod] 220 (L1): Reading nmethod 'java.lang.invoke.MethodType::returnType()Ljava/lang/Class;' (decomp: 0, hash: 0x49e35a1b, ignore_decomp) [0.084s][info][aot,codecache ] 220 (L1): Shared method lookup: java.lang.invoke.MethodType::returnType()Ljava/lang/Class; [0.084s][info][aot,codecache,nmethod] 220 (L1): Read nmethod 'java.lang.invoke.MethodType::returnType()Ljava/lang/Class;' from AOT Code Cache Hello World # # A fatal error has been detected by the Java Runtime Environment: ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977734953 From kvn at openjdk.org Mon Jun 16 19:11:46 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Mon, 16 Jun 2025 19:11:46 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 13:28:11 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Address ADinn's review comment > > Signed-off-by: Ashutosh Mehra I forgot that we call `AOTCodeCache::close()` on VM exit. It is old workflow. So we do explicitly closing it during production run. Should we even do that with new workflow? In mainline we don't do that. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977769972 PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977774432 From kvn at openjdk.org Mon Jun 16 19:16:41 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Mon, 16 Jun 2025 19:16:41 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 13:28:11 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Address ADinn's review comment > > Signed-off-by: Ashutosh Mehra Looks like in both case we closed AOT code cache but still trying to access it ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977790245 From asmehra at openjdk.org Mon Jun 16 19:22:42 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 16 Jun 2025 19:22:42 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 19:07:28 GMT, Vladimir Kozlov wrote: > I forgot that we call AOTCodeCache::close() on VM exit. It is old workflow. So we do explicitly closing it during production run. Should we even do that with new workflow? If we can make AOTCodeCache accessible until exit, then I guess we can continue using immutable data and oop_map from the cache. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977811361 From kvn at openjdk.org Mon Jun 16 19:33:44 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Mon, 16 Jun 2025 19:33:44 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 19:19:43 GMT, Ashutosh Mehra wrote: > > I forgot that we call AOTCodeCache::close() on VM exit. It is old workflow. So we do explicitly closing it during production run. Should we even do that with new workflow? > > If we can make AOTCodeCache accessible until exit, then I guess we can continue using immutable data and oop_map from the cache. It seems work. We only loosing statistic output from AOTCodeClose::close(). We actually should not do it there. There is separate path for printing statistic `print_statistics()` on VM exit which will call AOT code statistics. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977847176 From duke at openjdk.org Mon Jun 16 19:37:13 2025 From: duke at openjdk.org (duke) Date: Mon, 16 Jun 2025 19:37:13 GMT Subject: git: openjdk/leyden: premain: Remove UseMetadataPointers flag and corresponding AOT code Message-ID: <46be30ef-40a3-409d-ad40-a189a1414146@openjdk.org> Changeset: bc2faae6 Branch: premain Author: Vladimir Kozlov Date: 2025-06-16 12:36:13 +0000 URL: https://git.openjdk.org/leyden/commit/bc2faae6dda0fa20544e43956d093a6ee105187a Remove UseMetadataPointers flag and corresponding AOT code ! src/hotspot/share/cds/aotCacheAccess.cpp ! src/hotspot/share/cds/aotCacheAccess.hpp ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/aotCodeCache.hpp ! src/hotspot/share/compiler/compiler_globals.hpp From asmehra at openjdk.org Mon Jun 16 19:41:46 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 16 Jun 2025 19:41:46 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 19:31:28 GMT, Vladimir Kozlov wrote: > It seems work. We only loosing statistic output from AOTCodeClose::close(). We actually should not do it there. There is separate path for printing statistic print_statistics() on VM exit which will call AOT code statistics. I am not sure I get your point here. Did you mean we can avoid calling AOTCodeCache::close() on VM exit? ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977871435 From kvn at openjdk.org Mon Jun 16 19:57:43 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Mon, 16 Jun 2025 19:57:43 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 13:28:11 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Address ADinn's review comment > > Signed-off-by: Ashutosh Mehra I will run > > It seems work. We only loosing statistic output from AOTCodeClose::close(). We actually should not do it there. There is separate path for printing statistic print_statistics() on VM exit which will call AOT code statistics. > > I am not sure I get your point here. Did you mean we can avoid calling AOTCodeCache::close() on VM exit? Yes. I am testing it now. I am talking about this call: [java.cpp#L557](https://github.com/openjdk/leyden/blob/premain/src/hotspot/share/runtime/java.cpp#L557). We should only close it when we dumping (may be not even then - just mark it as closed). Unless I'm missing/forgetting something. That is why I run testing. Hmm, are you suggesting to not do `delete _cache; _cache = nullptr;` only but still call `AOTCodeCache::close()` ? And call `finish_write()` from it directly. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977913902 PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977920549 From asmehra at openjdk.org Mon Jun 16 20:18:41 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 16 Jun 2025 20:18:41 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 19:54:04 GMT, Vladimir Kozlov wrote: > Hmm, are you suggesting to not do delete _cache; _cache = nullptr; only but still call AOTCodeCache::close() ? And call finish_write() from it directly. No, that's not what I was thinking. I believe we are on same page here. When I said, "If we can make AOTCodeCache accessible until exit," I meant not calling close() in java.cpp. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977988191 From duke at openjdk.org Mon Jun 16 21:53:46 2025 From: duke at openjdk.org (duke) Date: Mon, 16 Jun 2025 21:53:46 GMT Subject: git: openjdk/leyden: premain: Do not close AOT code cache on VM exit during production run Message-ID: <2ee7ccb9-0225-4f8c-9600-73572854e955@openjdk.org> Changeset: 62a4bc7b Branch: premain Author: Vladimir Kozlov Date: 2025-06-16 14:52:53 +0000 URL: https://git.openjdk.org/leyden/commit/62a4bc7b77a311abca403e2be08aa16f5e2a80b0 Do not close AOT code cache on VM exit during production run ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/runtime/java.cpp From kvn at openjdk.org Mon Jun 16 21:57:41 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Mon, 16 Jun 2025 21:57:41 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 13:28:11 GMT, Ashutosh Mehra wrote: >> This PR updates nmethod caching to be based on caching of CodeBlob. It also cleans up some dead code and duplicate methods. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Address ADinn's review comment > > Signed-off-by: Ashutosh Mehra I pushed fix: https://github.com/openjdk/leyden/commit/62a4bc7b77a311abca403e2be08aa16f5e2a80b0 ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2978276179 From asmehra at openjdk.org Tue Jun 17 01:31:52 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Tue, 17 Jun 2025 01:31:52 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 21:54:51 GMT, Vladimir Kozlov wrote: >> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: >> >> Address ADinn's review comment >> >> Signed-off-by: Ashutosh Mehra > > I pushed fix: https://github.com/openjdk/leyden/commit/62a4bc7b77a311abca403e2be08aa16f5e2a80b0 @vnkozlov > I pushed fix: https://github.com/openjdk/leyden/commit/62a4bc7b77a311abca403e2be08aa16f5e2a80b0 does this fix both the crashes that you observed? ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2978636451 From kvn at openjdk.org Tue Jun 17 02:39:53 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Tue, 17 Jun 2025 02:39:53 GMT Subject: RFR: Update nmethod caching and clean up unused/duplicate methods [v9] In-Reply-To: References: <0PPJcYIoaEOrvEmUuBNSrnRpC4CybPhNuNtsHfHCYwE=.2a66d441-7a27-4cef-8c78-d1552757fecc@github.com> Message-ID: On Mon, 16 Jun 2025 21:54:51 GMT, Vladimir Kozlov wrote: >> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: >> >> Address ADinn's review comment >> >> Signed-off-by: Ashutosh Mehra > > I pushed fix: https://github.com/openjdk/leyden/commit/62a4bc7b77a311abca403e2be08aa16f5e2a80b0 > @vnkozlov > > > I pushed fix: [62a4bc7](https://github.com/openjdk/leyden/commit/62a4bc7b77a311abca403e2be08aa16f5e2a80b0) > > does this fix both the crashes that you observed? I hope so. I did not see these failures anymore during new testing. ------------- PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2978735937 From iklam at openjdk.org Tue Jun 17 04:44:06 2025 From: iklam at openjdk.org (Ioi Lam) Date: Tue, 17 Jun 2025 04:44:06 GMT Subject: git: openjdk/leyden: premain: 2 new changesets Message-ID: <32c5dea9-447b-4ff6-91f6-85a231c7db12@openjdk.org> Changeset: 0c4b7311 Branch: premain Author: Ioi Lam Date: 2025-06-16 21:39:39 +0000 URL: https://git.openjdk.org/leyden/commit/0c4b73114b62ec1cf91fde484a0c9d242d6a28e0 8355556: JVM crash because archived method handle intrinsics are not restored ! src/hotspot/share/runtime/threads.cpp Changeset: 7d8f3093 Branch: premain Author: Ioi Lam Date: 2025-06-16 21:40:40 +0000 URL: https://git.openjdk.org/leyden/commit/7d8f30938fbe4662d410af8e8a9820408c5491b7 Removed dead code ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/java.base/share/classes/jdk/internal/misc/CDS.java From shade at openjdk.org Tue Jun 17 15:57:45 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 17 Jun 2025 15:57:45 GMT Subject: RFR: 8359107: [leyden] Pick up JDK-8357481, JDK-8357473 and rework precompilation waits In-Reply-To: References: Message-ID: <4bkXmicoXbbuQaAjyufaB7W2hxV3J_JQghvv2AgsuDk=.ef2fe9b9-9bc6-4581-a42d-6a67ebb0bebc@github.com> On Tue, 10 Jun 2025 10:09:25 GMT, Aleksey Shipilev wrote: > [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481) will come in from mainline and bring conflicting changes to `CompileTask`. Additionally, our precompilation ([JDK-8352042](https://bugs.openjdk.org/browse/JDK-8352042)) depends on the code that would go away with [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473). We should cherry-pick [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481), [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473) and rework parallel recompilation to use the newly created `CompileTaskWait_lock` for notifications. > > Additional testing: > - [x] Ad-hoc performance tests > - [x] Linux x86_64 server fastdebug, `runtime/cds` Anyone? :) ------------- PR Comment: https://git.openjdk.org/leyden/pull/79#issuecomment-2980926117 From duke at openjdk.org Tue Jun 17 16:53:46 2025 From: duke at openjdk.org (duke) Date: Tue, 17 Jun 2025 16:53:46 GMT Subject: git: openjdk/leyden: hermetic-java-runtime: 76 new changesets Message-ID: Changeset: 8f733570 Branch: hermetic-java-runtime Author: Serguei Spitsyn Date: 2025-06-11 18:51:54 +0000 URL: https://git.openjdk.org/leyden/commit/8f733570040a7d7a24775e72244f47e946af191b 8358815: Exception event spec has stale reference to catch_klass parameter Reviewed-by: cjplummer, alanb ! src/hotspot/share/prims/jvmti.xml Changeset: 3b32f6a8 Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-06-12 00:41:39 +0000 URL: https://git.openjdk.org/leyden/commit/3b32f6a8ec37338764d3e6713247ff96e49bf5b3 8344556: [Graal] compiler/intrinsics/bmi/* fail when AOTCache cannot be loaded Reviewed-by: dnsimon, kvn ! test/hotspot/jtreg/compiler/intrinsics/bmi/BMITestRunner.java Changeset: d7aa3498 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2025-06-12 07:08:39 +0000 URL: https://git.openjdk.org/leyden/commit/d7aa34982053bad37b3b726539f1245d054258f4 8357826: Avoid running some jtreg tests when asan is configured Reviewed-by: sspitsyn, amitkumar, lmesnik, syan, lucy, cjplummer ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/prims/whitebox.hpp ! test/hotspot/jtreg/TEST.ROOT ! test/hotspot/jtreg/gc/arguments/TestUseCompressedOopsFlagsWithUlimit.java ! test/hotspot/jtreg/runtime/Thread/TestBreakSignalThreadDump.java ! test/hotspot/jtreg/runtime/XCheckJniJsig/XCheckJSig.java ! test/hotspot/jtreg/serviceability/dcmd/vm/SystemDumpMapTest.java ! test/hotspot/jtreg/serviceability/dcmd/vm/SystemMapTest.java ! test/jdk/TEST.ROOT ! test/jdk/build/AbsPathsInImage.java ! test/jtreg-ext/requires/VMProps.java ! test/lib/jdk/test/whitebox/WhiteBox.java Changeset: 5886ef72 Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-06-12 07:51:29 +0000 URL: https://git.openjdk.org/leyden/commit/5886ef728fc1efe43e90e056c03725c3ee982ad6 8359182: Use @requires instead of SkippedException for MaxPath.java Reviewed-by: bpb, bchristi ! test/jdk/java/io/File/MaxPath.java Changeset: 7b7136b4 Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-06-12 08:10:27 +0000 URL: https://git.openjdk.org/leyden/commit/7b7136b4eca15693cfcd46ae63d644efc8a88d2c 8359181: Error messages generated by configure --help after 8301197 Reviewed-by: erikj, ihse ! make/autoconf/configure Changeset: 3e0ef832 Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-06-12 08:18:00 +0000 URL: https://git.openjdk.org/leyden/commit/3e0ef832cc553c70eb7e8ee713c43aac67994b91 8359083: Test jdkCheckHtml.java should report SkippedException rather than report fails when miss tidy Reviewed-by: hannesw ! test/docs/jdk/javadoc/doccheck/DocCheck.java ! test/docs/jdk/javadoc/doccheck/checks/jdkCheckHtml.java ! test/docs/jdk/javadoc/doccheck/doccheckutils/checkers/TidyChecker.java Changeset: 3f0fef2c Branch: hermetic-java-runtime Author: Johannes Bechberger Date: 2025-06-12 08:54:21 +0000 URL: https://git.openjdk.org/leyden/commit/3f0fef2c9c323cb7b6e9191b17eac4296ff22dac 8359135: New test TestCPUTimeSampleThrottling fails intermittently Reviewed-by: mdoerr ! test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleThrottling.java Changeset: 65e63b6a Branch: hermetic-java-runtime Author: Anjian Wen Committer: Feilong Jiang Date: 2025-06-12 10:44:47 +0000 URL: https://git.openjdk.org/leyden/commit/65e63b6ab4241fc9d683e2ffa5bfe6e1a30059b6 8359218: RISC-V: Only enable CRC32 intrinsic when AvoidUnalignedAccess == false Reviewed-by: fyang, fjiang ! src/hotspot/cpu/riscv/vm_version_riscv.cpp Changeset: b6ec93b0 Branch: hermetic-java-runtime Author: Marc Chevalier Date: 2025-06-12 11:40:31 +0000 URL: https://git.openjdk.org/leyden/commit/b6ec93b038c411d0c49be671c3b44dd231d01305 8359121: C2: Region added by vectorizedMismatch intrinsic can survive as a dead node after IGVN Reviewed-by: thartmann, chagedorn ! src/hotspot/share/opto/library_call.cpp + test/hotspot/jtreg/compiler/igvn/RemoveDeadRegionFromVectorizedMismatchIntrinsic.java Changeset: 91fdd72c Branch: hermetic-java-runtime Author: kabutz Committer: Viktor Klang Date: 2025-06-12 11:44:04 +0000 URL: https://git.openjdk.org/leyden/commit/91fdd72c97ab109c08893e5b613cbe4412b645aa 8355726: LinkedBlockingDeque fixes and improvements Reviewed-by: vklang, dl ! src/java.base/share/classes/java/util/concurrent/LinkedBlockingDeque.java ! test/jdk/java/util/concurrent/tck/LinkedBlockingDequeTest.java Changeset: e5ce5c57 Branch: hermetic-java-runtime Author: Rohitash Kumar Committer: Aleksey Shipilev Date: 2025-06-12 12:23:42 +0000 URL: https://git.openjdk.org/leyden/commit/e5ce5c57c83972ff52758a804c942986cab74ca7 8357959: (bf) ByteBuffer.allocateDirect initialization can result in large TTSP spikes Reviewed-by: shade, alanb ! src/java.base/share/classes/java/nio/Bits.java ! src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template ! test/jdk/java/nio/Buffer/AllocateDirectInit.java + test/micro/org/openjdk/bench/java/nio/DirectByteBufferAlloc.java Changeset: e18277b4 Branch: hermetic-java-runtime Author: Radim Vansa Committer: Coleen Phillimore Date: 2025-06-12 12:29:15 +0000 URL: https://git.openjdk.org/leyden/commit/e18277b470a162b9668297e8e286c812c4b0b604 8352075: Perf regression accessing fields Reviewed-by: coleenp, iklam, jsjolen ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classFileParser.hpp ! src/hotspot/share/classfile/fieldLayoutBuilder.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/oops/fieldInfo.cpp ! src/hotspot/share/oops/fieldInfo.hpp ! src/hotspot/share/oops/fieldInfo.inline.hpp ! src/hotspot/share/oops/fieldStreams.hpp ! src/hotspot/share/oops/fieldStreams.inline.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/runtime/globals.hpp + src/hotspot/share/utilities/packedTable.cpp + src/hotspot/share/utilities/packedTable.hpp ! src/hotspot/share/utilities/unsigned5.hpp + test/hotspot/gtest/utilities/test_packedTable.cpp + test/hotspot/jtreg/runtime/FieldStream/LocalFieldLookupTest.java Changeset: b85fe02b Branch: hermetic-java-runtime Author: Emanuel Peter Date: 2025-06-12 14:12:14 +0000 URL: https://git.openjdk.org/leyden/commit/b85fe02be5966b72ea1a92bfb3faf088d310219a 8358600: Template-Framework Library: Template for TestFramework test class Reviewed-by: chagedorn, mhaessig + test/hotspot/jtreg/compiler/lib/template_framework/library/TestFrameworkClass.java + test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestWithTestFrameworkClass.java Changeset: dd688290 Branch: hermetic-java-runtime Author: Emanuel Peter Date: 2025-06-12 14:19:08 +0000 URL: https://git.openjdk.org/leyden/commit/dd68829017c3adea4068d5311cab3fbef87b9577 8347273: C2: VerifyIterativeGVN for Ideal and Identity Reviewed-by: chagedorn, mhaessig ! src/hotspot/share/opto/c2_globals.hpp ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/opto/phaseX.hpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.cpp ! test/hotspot/jtreg/compiler/c2/TestVerifyIterativeGVN.java Changeset: fae9c7a3 Branch: hermetic-java-runtime Author: Afshin Zafari Date: 2025-06-12 14:46:39 +0000 URL: https://git.openjdk.org/leyden/commit/fae9c7a3f04f85aeb9e03c5c9c15fda6405ee989 8351661: NMT: VMATree should support separate call-stacks for reserve and commit operations Reviewed-by: gziemski, jsjolen ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/nmt/memoryFileTracker.cpp ! src/hotspot/share/nmt/nmtNativeCallStackStorage.hpp ! src/hotspot/share/nmt/vmatree.cpp ! src/hotspot/share/nmt/vmatree.hpp ! test/hotspot/gtest/nmt/test_vmatree.cpp Changeset: 1fcede05 Branch: hermetic-java-runtime Author: Roland Westrelin Date: 2025-06-12 15:02:38 +0000 URL: https://git.openjdk.org/leyden/commit/1fcede053cca360c96606c1034b2a365a4fada82 8358334: C2/Shenandoah: incorrect execution with Unsafe Reviewed-by: wkemper, shade ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.hpp + test/hotspot/jtreg/gc/shenandoah/compiler/TestLostAntiDependencyAtExpansion.java Changeset: 3c53057f Branch: hermetic-java-runtime Author: David Briemann Committer: Martin Doerr Date: 2025-06-12 15:27:44 +0000 URL: https://git.openjdk.org/leyden/commit/3c53057fa63e0f8bf3634e4286fe2085d2f4ee9e 8359232: [PPC64] C2: Clean up ppc.ad: add instr sizes, remove comments Reviewed-by: mdoerr ! src/hotspot/cpu/ppc/ppc.ad Changeset: 8d33ea73 Branch: hermetic-java-runtime Author: jeremy Committer: Alexander Zuev Date: 2025-06-12 16:11:35 +0000 URL: https://git.openjdk.org/leyden/commit/8d33ea7395e5dd504b899d8972617f6696546d84 8354646: java.awt.TextField allows to identify the spaces in a password when double clicked at the starting and end of the text Reviewed-by: aivanov, kizune, tr, psadhukhan ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicPasswordFieldUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextUI.java ! src/java.desktop/share/classes/javax/swing/plaf/synth/SynthPasswordFieldUI.java ! test/jdk/java/awt/TextField/SetEchoCharWordOpsTest.java + test/jdk/javax/swing/plaf/basic/BasicTextUI/PasswordSelectionWordTest.java Changeset: 610a18e7 Branch: hermetic-java-runtime Author: Volkan Yazici Date: 2025-06-12 17:10:57 +0000 URL: https://git.openjdk.org/leyden/commit/610a18e7b3bc9680031a2ba608b89ee6fdec795c 8358688: HttpClient: Simplify file streaming in RequestPublishers.FilePublisher Reviewed-by: dfuchs, jpai ! src/java.net.http/share/classes/jdk/internal/net/http/RequestPublishers.java ! test/jdk/java/net/httpclient/FilePublisher/FilePublisherTest.java ! test/jdk/java/net/httpclient/RelayingPublishers.java Changeset: 0ef09867 Branch: hermetic-java-runtime Author: Volkan Yazici Date: 2025-06-12 17:12:04 +0000 URL: https://git.openjdk.org/leyden/commit/0ef0986731c23b00510e9501e1627b7712a45b65 8359168: Revert stdin.encoding usage in test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach010/attach010Agent00.java Reviewed-by: cjplummer ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach010/attach010Agent00.java Changeset: 99829950 Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-06-12 18:04:14 +0000 URL: https://git.openjdk.org/leyden/commit/99829950f680936489048a1ad4ce12f166805e4d 8358819: The first year is not displayed correctly in Japanese Calendar Reviewed-by: jlu, joehw, iris ! make/jdk/src/classes/build/tools/cldrconverter/Bundle.java + test/jdk/java/util/Calendar/JapaneseCalendarNameTest.java - test/jdk/java/util/Calendar/JapaneseEraNameTest.java Changeset: db7af2b3 Branch: hermetic-java-runtime Author: Koushik Thirupattur Committer: Sean Mullan Date: 2025-06-12 19:31:15 +0000 URL: https://git.openjdk.org/leyden/commit/db7af2b3c3bd63f17f7952e815ebafb5dd8486ab 8349550: Improve SASL random usage Reviewed-by: mullan ! src/java.base/share/classes/module-info.java ! src/java.security.sasl/share/classes/com/sun/security/sasl/CramMD5Server.java ! src/java.security.sasl/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Changeset: 66535fe2 Branch: hermetic-java-runtime Author: Kevin Walls Date: 2025-06-12 20:06:19 +0000 URL: https://git.openjdk.org/leyden/commit/66535fe26da27dfaf0940bd70deb30942f7d0cdc 8358701: Remove misleading javax.management.remote API doc wording about JMX spec, and historic link to JMXMP Reviewed-by: alanb, sspitsyn ! src/java.management/share/classes/javax/management/remote/package-info.java Changeset: 0dd7c69b Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2025-06-12 20:21:50 +0000 URL: https://git.openjdk.org/leyden/commit/0dd7c69b9e4307e6e8f290b84828f6de8a79e644 8357286: (bf) Remove obsolete instanceof checks in CharBuffer.append Reviewed-by: alanb ! src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template ! src/java.base/share/classes/java/nio/Heap-X-Buffer.java.template Changeset: 523a4efe Branch: hermetic-java-runtime Author: Kevin Walls Date: 2025-06-12 20:23:28 +0000 URL: https://git.openjdk.org/leyden/commit/523a4efe1ce2231edd7019043a49f7bf0a0f6aef 8358970: CounterMonitorMBean.getDerivedGaugeTimeStamp() JavaDoc incorrectly documents null Reviewed-by: sspitsyn, lmesnik ! src/java.management/share/classes/javax/management/monitor/CounterMonitorMBean.java Changeset: 991097b7 Branch: hermetic-java-runtime Author: Quan Anh Mai Date: 2025-06-13 01:05:44 +0000 URL: https://git.openjdk.org/leyden/commit/991097b7bf08cc1a4ceedb0c555b12948ae71885 8315066: Add unsigned bounds and known bits to TypeInt/Long Co-authored-by: Emanuel Peter Reviewed-by: epeter, kvn, jbhateja ! src/hotspot/share/opto/castnode.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/ifnode.cpp + src/hotspot/share/opto/rangeinference.cpp + src/hotspot/share/opto/rangeinference.hpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/type.hpp ! src/hotspot/share/utilities/count_leading_zeros.hpp + src/hotspot/share/utilities/intn_t.hpp + test/hotspot/gtest/opto/test_rangeinference.cpp + test/hotspot/gtest/utilities/test_intn_t.cpp Changeset: 9aeacf2d Branch: hermetic-java-runtime Author: Alan Bateman Date: 2025-06-13 06:33:42 +0000 URL: https://git.openjdk.org/leyden/commit/9aeacf2de5bb8758dd614da365262338b0d26d6f 8358958: (aio) AsynchronousByteChannel.read/write should throw IAE if buffer is thread-confined Reviewed-by: jpai, bpb ! src/java.base/share/classes/java/lang/foreign/MemorySegment.java ! src/java.base/share/classes/java/nio/channels/AsynchronousByteChannel.java ! src/java.base/share/classes/java/nio/channels/AsynchronousFileChannel.java ! src/java.base/share/classes/java/nio/channels/AsynchronousSocketChannel.java ! src/java.base/share/classes/sun/nio/ch/AsynchronousFileChannelImpl.java ! src/java.base/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java ! src/java.base/share/classes/sun/nio/ch/IOUtil.java ! test/jdk/java/foreign/channels/TestAsyncSocketChannels.java ! test/jdk/java/nio/channels/etc/MemorySegments.java Changeset: 6749c62b Branch: hermetic-java-runtime Author: Emanuel Peter Date: 2025-06-13 06:55:48 +0000 URL: https://git.openjdk.org/leyden/commit/6749c62b9e4261d25bea477e3c0840ab0ee9c73e 8358772: Template-Framework Library: Primitive Types Reviewed-by: mhaessig, chagedorn ! test/hotspot/jtreg/compiler/lib/template_framework/Hook.java ! test/hotspot/jtreg/compiler/lib/template_framework/Template.java ! test/hotspot/jtreg/compiler/lib/template_framework/Token.java + test/hotspot/jtreg/compiler/lib/template_framework/TokenParser.java + test/hotspot/jtreg/compiler/lib/template_framework/library/CodeGenerationDataNameType.java + test/hotspot/jtreg/compiler/lib/template_framework/library/PrimitiveType.java + test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestPrimitiveTypes.java Changeset: ed39e17e Branch: hermetic-java-runtime Author: Tobias Hartmann Date: 2025-06-13 07:45:18 +0000 URL: https://git.openjdk.org/leyden/commit/ed39e17e34a2a3fd08a3e54d8d2c309deb99f61a 8359200: Memory corruption in MStack::push Reviewed-by: shade, kvn ! src/hotspot/share/libadt/vectset.cpp ! src/hotspot/share/libadt/vectset.hpp ! src/hotspot/share/opto/block.cpp ! src/hotspot/share/opto/block.hpp ! src/hotspot/share/opto/matcher.hpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp + test/hotspot/jtreg/compiler/arguments/TestOptoNodeListSize.java Changeset: a8b42848 Branch: hermetic-java-runtime Author: Doug Simon Date: 2025-06-13 08:01:18 +0000 URL: https://git.openjdk.org/leyden/commit/a8b42848489747f869e33a5067fdda91553eec96 8359293: Make TestNoNULL extensible Reviewed-by: kbarrett ! test/hotspot/jtreg/sources/TestNoNULL.java Changeset: 032ead1d Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-13 08:03:33 +0000 URL: https://git.openjdk.org/leyden/commit/032ead1d905d820f1fe4bf7a49dff98f59a21ded 8358483: G1: Remove G1HeapRegionManager::num_available_regions Reviewed-by: tschatzl, sangheki ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1HeapRegionManager.cpp ! src/hotspot/share/gc/g1/g1HeapRegionManager.hpp Changeset: a0fb35c8 Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-06-13 08:46:12 +0000 URL: https://git.openjdk.org/leyden/commit/a0fb35c8379295d2927c18d694ea52f7b7488a2b 8359272: Several vmTestbase/compact tests timed out on large memory machine Reviewed-by: tschatzl, ayang ! test/hotspot/jtreg/vmTestbase/vm/gc/compact/Compact_InternedStrings/TestDescription.java ! test/hotspot/jtreg/vmTestbase/vm/gc/compact/Compact_InternedStrings_NonbranchyTree/TestDescription.java ! test/hotspot/jtreg/vmTestbase/vm/gc/compact/Compact_Strings_ArrayOf/TestDescription.java ! test/hotspot/jtreg/vmTestbase/vm/gc/compact/Humongous_InternedStrings/TestDescription.java Changeset: e7f63ba3 Branch: hermetic-java-runtime Author: Jatin Bhateja Date: 2025-06-13 09:01:09 +0000 URL: https://git.openjdk.org/leyden/commit/e7f63ba3109adf614cee1bc392cfeef85e9ca778 8359327: Incorrect AVX3Threshold results into code buffer overflows on APX targets Reviewed-by: sviswanathan ! src/hotspot/cpu/x86/stubDeclarations_x86.hpp ! src/hotspot/cpu/x86/vm_version_x86.cpp Changeset: 3a188726 Branch: hermetic-java-runtime Author: Volkan Yazici Date: 2025-06-13 09:12:02 +0000 URL: https://git.openjdk.org/leyden/commit/3a1887269b9cecf9dea68637f99b0b103baafbdb 8359225: Remove unused test/jdk/javax/script/MyContext.java Reviewed-by: sundar - test/jdk/javax/script/MyContext.java Changeset: ead4529c Branch: hermetic-java-runtime Author: Prateek Nima Committer: Daniel Fuchs Date: 2025-06-13 10:32:50 +0000 URL: https://git.openjdk.org/leyden/commit/ead4529c9219009fc4224e52e9ac4af5055e7137 8340182: Java HttpClient does not follow default retry limit of 3 retries Reviewed-by: dfuchs ! src/java.net.http/share/classes/module-info.java + test/jdk/java/net/httpclient/HttpClientAuthRetryLimitTest.java Changeset: 25b22c9b Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-13 10:47:26 +0000 URL: https://git.openjdk.org/leyden/commit/25b22c9b553ffab82eb44df23f6b4942724aedaf 8358602: JFR: Annotations in jdk.jfr package should not use "not null" in specification Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/DataAmount.java ! src/jdk.jfr/share/classes/jdk/jfr/Description.java ! src/jdk.jfr/share/classes/jdk/jfr/Label.java ! src/jdk.jfr/share/classes/jdk/jfr/Period.java ! src/jdk.jfr/share/classes/jdk/jfr/Threshold.java ! src/jdk.jfr/share/classes/jdk/jfr/Throttle.java ! src/jdk.jfr/share/classes/jdk/jfr/Timespan.java ! src/jdk.jfr/share/classes/jdk/jfr/Timestamp.java Changeset: e8ef93ae Branch: hermetic-java-runtime Author: Manuel H?ssig Committer: Tobias Hartmann Date: 2025-06-13 11:16:36 +0000 URL: https://git.openjdk.org/leyden/commit/e8ef93ae9de624f25166bdf010c915672b2c5cf4 8357782: JVM JIT Causes Static Initialization Order Issue Co-authored-by: Tobias Hartmann Reviewed-by: thartmann, dlong, dfenacci ! src/hotspot/share/c1/c1_ValueMap.hpp ! src/hotspot/share/ci/ciInstanceKlass.cpp ! src/hotspot/share/ci/ciInstanceKlass.hpp + test/hotspot/jtreg/compiler/c1/TestStaticInitializerSideEffect.java Changeset: b5334fe2 Branch: hermetic-java-runtime Author: Sean Mullan Date: 2025-06-13 12:15:27 +0000 URL: https://git.openjdk.org/leyden/commit/b5334fe23797a81b91a558f9e55cdcaaee61d37b 8314180: Disable XPath in XML Signatures Reviewed-by: weijun ! src/java.base/share/conf/security/java.security ! test/jdk/javax/xml/crypto/dsig/GenerationTests.java ! test/jdk/javax/xml/crypto/dsig/HereFunction.java ! test/jdk/javax/xml/crypto/dsig/SecureValidationPolicy.java ! test/jdk/javax/xml/crypto/dsig/ValidationTests.java Changeset: b4c4496e Branch: hermetic-java-runtime Author: Manuel H?ssig Committer: Christian Hagedorn Date: 2025-06-13 13:02:27 +0000 URL: https://git.openjdk.org/leyden/commit/b4c4496ef8013df25b6368bdebf082d223d6afed 8354196: C2: reorder and capitalize phase definition Reviewed-by: chagedorn, mchevalier ! src/hotspot/share/opto/phasetype.hpp ! test/hotspot/jtreg/compiler/lib/ir_framework/CompilePhase.java Changeset: 57cabc6d Branch: hermetic-java-runtime Author: Daniel Fuchs Date: 2025-06-13 13:15:47 +0000 URL: https://git.openjdk.org/leyden/commit/57cabc6d741c14a8029aec324ba96e8ced4afcbd 8359364: java/net/URL/EarlyOrDelayedParsing test fails intermittently Reviewed-by: vyazici, syan, alanb ! test/jdk/java/net/URL/EarlyOrDelayedParsing.java Changeset: 417f8ecf Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-13 13:40:43 +0000 URL: https://git.openjdk.org/leyden/commit/417f8ecf072daabe0f79d145ffab121e5336988f 8359224: G1: Incorrect size unit in logging of G1CollectedHeap::alloc_archive_region Reviewed-by: tschatzl, shade ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp Changeset: 78b1360e Branch: hermetic-java-runtime Author: dermster Committer: Mark Sheppard Date: 2025-06-13 15:57:00 +0000 URL: https://git.openjdk.org/leyden/commit/78b1360e7de84585d6e387ac6e0789a4d02187d5 8359127: Amend java/nio/channels/DatagramChannel/PromiscuousIPv6.java to use @requires for OS platform selection Reviewed-by: djelinski, dfuchs ! test/jdk/java/nio/channels/DatagramChannel/PromiscuousIPv6.java Changeset: 366650a4 Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-06-13 16:11:49 +0000 URL: https://git.openjdk.org/leyden/commit/366650a438d046f3da5b490c42e37faaf3a9abc5 8355556: JVM crash because archived method handle intrinsics are not restored Reviewed-by: adinn, vlivanov, shade ! src/hotspot/share/runtime/threads.cpp Changeset: 12a0dd03 Branch: hermetic-java-runtime Author: Vladimir Kozlov Date: 2025-06-13 16:20:11 +0000 URL: https://git.openjdk.org/leyden/commit/12a0dd03b89cc3bf7f9d32b17eb41ff2bf687536 8358738: AOT cache created without graal jit should not be used with graal jit Reviewed-by: iklam, ccheung ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/compiler/compilerDefinitions.hpp ! src/hotspot/share/compiler/compilerDefinitions.inline.hpp Changeset: ee35f638 Branch: hermetic-java-runtime Author: Andrew Dinn Date: 2025-06-13 16:52:40 +0000 URL: https://git.openjdk.org/leyden/commit/ee35f6384fdd0783a7ae62508e837a66683cdd3c 8359373: Split stubgen initial blob into pre and post-universe blobs Reviewed-by: kvn ! src/hotspot/cpu/aarch64/stubDeclarations_aarch64.hpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/arm/stubDeclarations_arm.hpp ! src/hotspot/cpu/arm/stubGenerator_arm.cpp ! src/hotspot/cpu/ppc/stubDeclarations_ppc.hpp ! src/hotspot/cpu/ppc/stubGenerator_ppc.cpp ! src/hotspot/cpu/riscv/stubDeclarations_riscv.hpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp ! src/hotspot/cpu/s390/stubDeclarations_s390.hpp ! src/hotspot/cpu/s390/stubGenerator_s390.cpp ! src/hotspot/cpu/x86/stubDeclarations_x86.hpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.hpp ! src/hotspot/cpu/zero/stubDeclarations_zero.hpp ! src/hotspot/cpu/zero/stubGenerator_zero.cpp ! src/hotspot/share/runtime/init.cpp ! src/hotspot/share/runtime/stubDeclarations.hpp ! src/hotspot/share/runtime/stubRoutines.cpp Changeset: b3f56086 Branch: hermetic-java-runtime Author: Alex Menkov Date: 2025-06-13 17:15:41 +0000 URL: https://git.openjdk.org/leyden/commit/b3f56086c99023a30b91f90c2acbed51b3b17ec0 8358094: Test vmTestbase/nsk/jvmti/AttachOnDemand/attach045/TestDescription.java still times out after JDK-8357282 Reviewed-by: sspitsyn, cjplummer, lmesnik ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent01.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent02.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent03.cpp Changeset: 0e725c6f Branch: hermetic-java-runtime Author: Archie Cobbs Date: 2025-06-13 21:42:17 +0000 URL: https://git.openjdk.org/leyden/commit/0e725c6fb1f324b0fd17d206806b4104dc7ba767 8354447: Missing test for retroactive @SuppressWarnings("dangling-doc-comments") behavior Reviewed-by: darcy ! test/langtools/tools/javac/danglingDocComments/DanglingDocCommentsClass.java Changeset: 26848a7d Branch: hermetic-java-runtime Author: Raffaello Giulietti Date: 2025-06-14 08:15:12 +0000 URL: https://git.openjdk.org/leyden/commit/26848a7d6ce4c573b679a690fd36e6d7082243f6 8358804: Improve the API Note of BigDecimal.valueOf(double) Reviewed-by: bpb, darcy, iris ! src/java.base/share/classes/java/math/BigDecimal.java Changeset: 1a01839f Branch: hermetic-java-runtime Author: Anjian Wen Committer: Feilong Jiang Date: 2025-06-16 03:32:40 +0000 URL: https://git.openjdk.org/leyden/commit/1a01839f8c0522a90710e101cce6ecc479a77529 8359105: RISC-V: No need for acquire fence in safepoint poll during JNI calls Reviewed-by: rehn, fyang, fjiang ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp ! src/hotspot/cpu/riscv/downcallLinker_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/riscv.ad ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp ! src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp Changeset: 6fe9143b Branch: hermetic-java-runtime Author: Tejesh R Date: 2025-06-16 05:27:52 +0000 URL: https://git.openjdk.org/leyden/commit/6fe9143bbbe269af62d2084834fc0c9afc51b5f3 8358532: JFileChooser in GTK L&F still displays HTML filename Reviewed-by: aivanov, dnguyen, kizune ! src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java ! test/jdk/javax/swing/JFileChooser/HTMLFileName.java Changeset: 534a8605 Branch: hermetic-java-runtime Author: Damon Fenacci Date: 2025-06-16 06:11:08 +0000 URL: https://git.openjdk.org/leyden/commit/534a8605e5f4d771be69426687b2188d5353c91e 8358129: compiler/startup/StartupOutput.java runs into out of memory on Windows after JDK-8347406 Reviewed-by: thartmann, epeter ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/compiler/startup/StartupOutput.java Changeset: eacfcd86 Branch: hermetic-java-runtime Author: Volkan Yazici Date: 2025-06-16 07:27:05 +0000 URL: https://git.openjdk.org/leyden/commit/eacfcd86d38f4acf0165275a42d246ba6c5fae56 8357995: Use "stdin.encoding" for reading System.in with InputStreamReader/Scanner [core] Reviewed-by: naoto, cjplummer ! src/java.base/share/classes/sun/security/tools/keytool/Main.java ! src/java.base/share/classes/sun/security/util/ConsoleCallbackHandler.java ! src/java.scripting/share/classes/com/sun/tools/script/shell/Main.java ! src/java.scripting/share/classes/javax/script/SimpleScriptContext.java ! src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Ktab.java ! src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTY.java ! test/jdk/com/sun/jdi/MultiBreakpointsTest.java ! test/jdk/com/sun/security/sasl/ClientCallbackHandler.java ! test/jdk/com/sun/security/sasl/digest/ClientCallbackHandler.java ! test/jdk/java/lang/ProcessBuilder/Basic.java ! test/jdk/java/nio/charset/spi/CharsetTest.java Changeset: d8c3533a Branch: hermetic-java-runtime Author: Beno?t Maillard Committer: Emanuel Peter Date: 2025-06-16 07:29:06 +0000 URL: https://git.openjdk.org/leyden/commit/d8c3533a91aa9c3a0b76846fe425c72bda9bd66c 8357816: Add test from JDK-8350576 Co-authored-by: Tobias Hartmann Reviewed-by: syan, thartmann, epeter + test/hotspot/jtreg/compiler/loopopts/LoopReductionHasControlOrBadInput.java Changeset: 8416ca31 Branch: hermetic-java-runtime Author: Kevin Walls Date: 2025-06-16 07:29:24 +0000 URL: https://git.openjdk.org/leyden/commit/8416ca3104d98edad89ed20bdb203a36974f410a 8346982: Remove JMX javadoc duplication that was in place due to JDK-6369229 Reviewed-by: amenkov ! src/java.management/share/classes/javax/management/ImmutableDescriptor.java ! src/java.management/share/classes/javax/management/modelmbean/DescriptorSupport.java Changeset: 79497ef7 Branch: hermetic-java-runtime Author: Suchismith Roy Committer: Varada M Date: 2025-06-16 08:30:41 +0000 URL: https://git.openjdk.org/leyden/commit/79497ef7f55ef445b31348ae9d3d6dff6d3b6a54 8348574: Simplify c1/c2_globals inclusions Reviewed-by: mhaessig, kbarrett - src/hotspot/os/aix/c1_globals_aix.hpp - src/hotspot/os/aix/c2_globals_aix.hpp - src/hotspot/os/bsd/c1_globals_bsd.hpp - src/hotspot/os/bsd/c2_globals_bsd.hpp - src/hotspot/os/linux/c1_globals_linux.hpp - src/hotspot/os/linux/c2_globals_linux.hpp - src/hotspot/os/windows/c1_globals_windows.hpp - src/hotspot/os/windows/c2_globals_windows.hpp ! src/hotspot/share/c1/c1_globals.hpp - src/hotspot/share/c1/c1_globals_pd.hpp ! src/hotspot/share/compiler/compiler_globals_pd.hpp ! src/hotspot/share/opto/c2_globals.hpp - src/hotspot/share/opto/c2_globals_pd.hpp Changeset: fedd0a0e Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-16 09:09:55 +0000 URL: https://git.openjdk.org/leyden/commit/fedd0a0ee3aea9f73cfce34172a764e63c1ba46b 8359248: JFR: Help text for-XX:StartFlightRecording:report-on-exit should explain option can be repeated Reviewed-by: mgronlun ! src/java.base/share/man/java.md ! src/jdk.jfr/share/classes/jdk/jfr/internal/dcmd/DCmdStart.java Changeset: 9d060574 Branch: hermetic-java-runtime Author: Hamlin Li Date: 2025-06-16 10:20:25 +0000 URL: https://git.openjdk.org/leyden/commit/9d060574e5dbd13e634f00d749d0108ceff1fae8 8358892: RISC-V: jvm crash when running dacapo sunflow after JDK-8352504 8359045: RISC-V: construct test to verify invocation of C2_MacroAssembler::enc_cmove_cmp_fp => BoolTest::ge/gt Co-authored-by: Fei Yang Reviewed-by: fyang, fjiang ! src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.hpp + test/hotspot/jtreg/compiler/c2/irTests/TestFPComparison2.java Changeset: 59460ff7 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-16 15:20:48 +0000 URL: https://git.openjdk.org/leyden/commit/59460ff700e36f8dba5cb50ddc60f107d7d5ad7f 8359664: G1: Remove default arg for pretouch_workers of G1CollectedHeap::expand Reviewed-by: tschatzl ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp Changeset: 9652ae9a Branch: hermetic-java-runtime Author: Kevin Walls Date: 2025-06-16 15:25:51 +0000 URL: https://git.openjdk.org/leyden/commit/9652ae9a8d48924a90d25e9daffcdb7f582ff503 8347114: JMXServiceURL should require an explicit protocol Reviewed-by: dfuchs, sspitsyn ! src/java.management/share/classes/javax/management/remote/JMXConnectorServer.java ! src/java.management/share/classes/javax/management/remote/JMXConnectorServerMBean.java ! src/java.management/share/classes/javax/management/remote/JMXServiceURL.java + test/jdk/javax/management/remote/mandatory/connection/JMXServiceURLProtocol.java Changeset: 6e390ef1 Branch: hermetic-java-runtime Author: Vladimir Kozlov Date: 2025-06-16 15:55:51 +0000 URL: https://git.openjdk.org/leyden/commit/6e390ef17cf4b6134d5d53ba4e3ae8281fedb3f3 8358690: Some initialization code asks for AOT cache status way too early Reviewed-by: asmehra, adinn ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/aotCodeCache.hpp ! src/hotspot/share/oops/compressedKlass.hpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/runtime/init.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/sharedRuntime.hpp ! src/hotspot/share/runtime/stubRoutines.cpp ! src/hotspot/share/runtime/stubRoutines.hpp Changeset: 06d804a0 Branch: hermetic-java-runtime Author: Stuart Marks Date: 2025-06-16 15:56:08 +0000 URL: https://git.openjdk.org/leyden/commit/06d804a0f004f9403c7c12e1a9f2ca8775c639f7 8338140: (str) Add notes to String.trim and String.isEmpty pointing to newer APIs Reviewed-by: naoto, bpb ! src/java.base/share/classes/java/lang/String.java Changeset: 2f2acb2e Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-16 16:10:59 +0000 URL: https://git.openjdk.org/leyden/commit/2f2acb2e3f292517456f5b328a35182863188653 8359593: JFR: Instrumentation of java.lang.String corrupts recording Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/ExcludeList.java + test/jdk/jdk/jfr/event/tracing/TestTracedString.java Changeset: e57a214e Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-16 16:52:17 +0000 URL: https://git.openjdk.org/leyden/commit/e57a214e2a1059109dd028369d518298cfa5d5b4 8359242: JFR: Missing help text for method trace and timing Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/jfc/model/XmlElement.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/jfc/model/XmlText.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/settings/MethodSetting.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/Filter.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/PlatformTracer.java ! src/jdk.jfr/share/conf/jfr/default.jfc ! src/jdk.jfr/share/conf/jfr/profile.jfc Changeset: 9a1c1f2e Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2025-06-16 17:56:27 +0000 URL: https://git.openjdk.org/leyden/commit/9a1c1f2efb1367ea8196b56d1b9b3b0841e4398d 8357847: (ch) AsynchronousFileChannel implementations should support FFM Buffers Reviewed-by: alanb ! src/java.base/share/classes/sun/nio/ch/SimpleAsynchronousFileChannelImpl.java ! src/java.base/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java ! test/jdk/java/nio/channels/AsynchronousFileChannel/Basic.java ! test/jdk/java/nio/channels/etc/MemorySegments.java Changeset: e55ddabf Branch: hermetic-java-runtime Author: Volkan Yazici Date: 2025-06-16 18:20:28 +0000 URL: https://git.openjdk.org/leyden/commit/e55ddabffa90e28d22f546b387007fe4e434c3e0 8359223: HttpClient: Remove leftovers from the SecurityManager cleanup Reviewed-by: dfuchs - test/jdk/java/net/httpclient/FilePublisher/FilePublisherPermsTest.java - test/jdk/java/net/httpclient/FilePublisher/SecureZipFSProvider.java = test/jdk/java/net/httpclient/FilePublisherTest.java Changeset: a16d2355 Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-06-17 05:38:59 +0000 URL: https://git.openjdk.org/leyden/commit/a16d23557b101504ed2ff95cf1a3c5ba11afe33d 8359402: Test CloseDescriptors.java should throw SkippedException when there is no lsof/sctp Reviewed-by: vyazici, jpai ! test/jdk/com/sun/nio/sctp/SctpChannel/CloseDescriptors.java Changeset: ff75f763 Branch: hermetic-java-runtime Author: Jatin Bhateja Date: 2025-06-17 07:16:19 +0000 URL: https://git.openjdk.org/leyden/commit/ff75f763c0a91534ab593a43e2ace741d05b0ccb 8351645: C2: Assertion failures in Expand/CompressBits idealizations with TOP Co-authored-by: Emanuel Peter Reviewed-by: epeter, sviswanathan ! src/hotspot/share/opto/intrinsicnode.cpp + test/hotspot/jtreg/compiler/c2/gvn/TestCompressExpandTopInput.java Changeset: f7cd3fad Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2025-06-17 08:32:17 +0000 URL: https://git.openjdk.org/leyden/commit/f7cd3fad2400cd3a07d8a3a44d86d5dc4d23913e 8332623: Remove setTTL()/getTTL() methods from DatagramSocketImpl/MulticastSocket and MulticastSocket.send(DatagramPacket, byte) Reviewed-by: dfuchs, alanb ! src/java.base/share/classes/java/net/DatagramSocketImpl.java ! src/java.base/share/classes/java/net/MulticastSocket.java ! src/java.base/share/classes/java/net/NetMulticastSocket.java ! src/java.base/share/classes/sun/nio/ch/DatagramSocketAdaptor.java ! test/jdk/java/net/DatagramSocket/AddressNotSet.java ! test/jdk/java/net/DatagramSocket/DatagramSocketMulticasting.java ! test/jdk/java/net/DatagramSocket/OldDatagramSocketImplTest.java ! test/jdk/java/net/DatagramSocket/SendCheck.java ! test/jdk/java/net/DatagramSocket/SetDatagramSocketImplFactory/java.base/java/net/MyDatagramSocketImplFactory.java ! test/jdk/java/net/DatagramSocketImpl/TestCreate.java ! test/jdk/java/net/DatagramSocketImpl/TestDefaultBehavior.java - test/jdk/java/net/MulticastSocket/MulticastTTL.java ! test/jdk/java/net/MulticastSocket/SendPortZero.java ! test/jdk/java/net/MulticastSocket/SetLoopbackOption.java - test/jdk/java/net/MulticastSocket/SetTTLAndGetTTL.java ! test/jdk/java/net/MulticastSocket/SetTTLTo0.java ! test/jdk/java/net/SocketOption/CachedImplOptions.java ! test/jdk/java/net/SocketOption/ImmutableOptions.java ! test/jdk/java/nio/channels/DatagramChannel/AdaptorMulticasting.java Changeset: a0820828 Branch: hermetic-java-runtime Author: David Briemann Committer: Martin Doerr Date: 2025-06-17 10:01:36 +0000 URL: https://git.openjdk.org/leyden/commit/a08208283bcfe395c9962c8de3ba19fdd8cab985 8354650: [PPC64] Try to reduce register definitions Reviewed-by: mdoerr, sroy ! src/hotspot/cpu/ppc/gc/shared/barrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/ppc/register_ppc.hpp ! src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp ! src/hotspot/cpu/ppc/vmreg_ppc.cpp ! src/hotspot/cpu/ppc/vmreg_ppc.hpp ! src/hotspot/cpu/ppc/vmreg_ppc.inline.hpp Changeset: f62f1178 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-17 12:32:17 +0000 URL: https://git.openjdk.org/leyden/commit/f62f1178aa01d812ee8ffb1d3dd165b4cf157186 8359701: G1: Move heap expansion time tracking of G1CollectedHeap:expand to call site Reviewed-by: tschatzl, iwalulya ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp Changeset: c1deb9ee Branch: hermetic-java-runtime Author: Anton Artemov Committer: Coleen Phillimore Date: 2025-06-17 13:46:13 +0000 URL: https://git.openjdk.org/leyden/commit/c1deb9eebf1adecffe5b205486477009ec2f7348 8356556: AArch64: No need for acquire fence in safepoint poll in FFM Reviewed-by: dholmes, pchilanomate ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/downcallLinker_aarch64.cpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp Changeset: 51877f56 Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-06-17 13:50:01 +0000 URL: https://git.openjdk.org/leyden/commit/51877f568ba84a8ec7721656571c90c5eb952eb3 8359207: Remove runtime/signal/TestSigusr2.java since it is always skipped Reviewed-by: dcubed, dholmes ! test/hotspot/jtreg/runtime/signal/SigTestDriver.java - test/hotspot/jtreg/runtime/signal/TestSigusr2.java Changeset: 21b72dea Branch: hermetic-java-runtime Author: Christian Stein Date: 2025-06-17 14:01:06 +0000 URL: https://git.openjdk.org/leyden/commit/21b72dea7805357b3644161d1a158c52f49d0e6e 8357862: Java argument file is parsed unexpectedly with trailing comment Co-authored-by: Stuart Marks Reviewed-by: vromero ! src/java.base/share/native/libjli/args.c ! test/jdk/tools/launcher/ArgFileSyntax.java Changeset: 53a83d15 Branch: hermetic-java-runtime Author: Alexey Ivanov Date: 2025-06-17 14:09:11 +0000 URL: https://git.openjdk.org/leyden/commit/53a83d15a1b5686ed0f2aeb3d30cd46b73f80733 8357799: Improve instructions for JFileChooser/HTMLFileName.java Reviewed-by: honkar, tr, kizune ! test/jdk/javax/swing/JFileChooser/HTMLFileName.java Changeset: 96070212 Branch: hermetic-java-runtime Author: Vladimir Kozlov Date: 2025-06-17 15:55:14 +0000 URL: https://git.openjdk.org/leyden/commit/96070212adfd15acd99edf6e180db6228ee7b4ff 8359646: C1 crash in AOTCodeAddressTable::add_C_string Reviewed-by: adinn, iklam ! src/hotspot/share/code/aotCodeCache.cpp Changeset: 9b824b26 Branch: hermetic-java-runtime Author: Jiangli Zhou Date: 2025-06-17 09:39:18 +0000 URL: https://git.openjdk.org/leyden/commit/9b824b26dc4615bc72f14dd8b1481cfe910cd5e7 Merge branch 'master' into hermetic-java-runtime ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/threads.cpp From kvn at openjdk.org Tue Jun 17 19:05:44 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Tue, 17 Jun 2025 19:05:44 GMT Subject: RFR: 8359107: [leyden] Pick up JDK-8357481, JDK-8357473 and rework precompilation waits In-Reply-To: References: Message-ID: On Tue, 10 Jun 2025 10:09:25 GMT, Aleksey Shipilev wrote: > [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481) will come in from mainline and bring conflicting changes to `CompileTask`. Additionally, our precompilation ([JDK-8352042](https://bugs.openjdk.org/browse/JDK-8352042)) depends on the code that would go away with [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473). We should cherry-pick [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481), [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473) and rework parallel recompilation to use the newly created `CompileTaskWait_lock` for notifications. > > Additional testing: > - [x] Ad-hoc performance tests > - [x] Linux x86_64 server fastdebug, `runtime/cds` I submitted testing ------------- PR Comment: https://git.openjdk.org/leyden/pull/79#issuecomment-2981524801 From kvn at openjdk.org Tue Jun 17 21:49:48 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Tue, 17 Jun 2025 21:49:48 GMT Subject: RFR: 8359107: [leyden] Pick up JDK-8357481, JDK-8357473 and rework precompilation waits In-Reply-To: References: Message-ID: On Tue, 10 Jun 2025 10:09:25 GMT, Aleksey Shipilev wrote: > [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481) will come in from mainline and bring conflicting changes to `CompileTask`. Additionally, our precompilation ([JDK-8352042](https://bugs.openjdk.org/browse/JDK-8352042)) depends on the code that would go away with [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473). We should cherry-pick [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481), [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473) and rework parallel recompilation to use the newly created `CompileTaskWait_lock` for notifications. > > Additional testing: > - [x] Ad-hoc performance tests > - [x] Linux x86_64 server fastdebug, `runtime/cds` My testing passed. Good. ------------- Marked as reviewed by kvn (Committer). PR Review: https://git.openjdk.org/leyden/pull/79#pullrequestreview-2937175622 From asmehra at openjdk.org Thu Jun 19 03:20:46 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Thu, 19 Jun 2025 03:20:46 GMT Subject: RFR: Cleanup unused _decompile and _ignore_decompile fields in AOTCodeEntry Message-ID: New workflow always sets `_ignore_decompile` to true, which implies `AOTCodeEntry::_decompile` is not in `check_entry` and is thus redundant. These two fields can just be removed. ------------- Commit messages: - Cleanup unused code Changes: https://git.openjdk.org/leyden/pull/80/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=80&range=00 Stats: 87 lines in 2 files changed: 3 ins; 32 del; 52 mod Patch: https://git.openjdk.org/leyden/pull/80.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/80/head:pull/80 PR: https://git.openjdk.org/leyden/pull/80 From kvn at openjdk.org Thu Jun 19 04:36:52 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Thu, 19 Jun 2025 04:36:52 GMT Subject: RFR: Cleanup unused _decompile and _ignore_decompile fields in AOTCodeEntry In-Reply-To: References: Message-ID: On Thu, 19 Jun 2025 03:16:18 GMT, Ashutosh Mehra wrote: > New workflow always sets `_ignore_decompile` to true, which implies `AOTCodeEntry::_decompile` is not in `check_entry` and is thus redundant. These two fields can just be removed. Good. I will test it. ------------- PR Review: https://git.openjdk.org/leyden/pull/80#pullrequestreview-2941525311 From kvn at openjdk.org Thu Jun 19 13:39:54 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Thu, 19 Jun 2025 13:39:54 GMT Subject: RFR: Cleanup unused _decompile and _ignore_decompile fields in AOTCodeEntry In-Reply-To: References: Message-ID: On Thu, 19 Jun 2025 03:16:18 GMT, Ashutosh Mehra wrote: > New workflow always sets `_ignore_decompile` to true, which implies `AOTCodeEntry::_decompile` is not in `check_entry` and is thus redundant. These two fields can just be removed. My testing passed. ------------- Marked as reviewed by kvn (Committer). PR Review: https://git.openjdk.org/leyden/pull/80#pullrequestreview-2943054146 From asmehra at openjdk.org Thu Jun 19 14:13:07 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Thu, 19 Jun 2025 14:13:07 GMT Subject: RFR: Cleanup unused _decompile and _ignore_decompile fields in AOTCodeEntry In-Reply-To: References: Message-ID: On Thu, 19 Jun 2025 13:36:36 GMT, Vladimir Kozlov wrote: >> New workflow always sets `_ignore_decompile` to true, which implies `AOTCodeEntry::_decompile` is not in `check_entry` and is thus redundant. These two fields can just be removed. > > My testing passed. @vnkozlov thanks for the review and testing it. ------------- PR Comment: https://git.openjdk.org/leyden/pull/80#issuecomment-2988241790 From asmehra at openjdk.org Thu Jun 19 14:21:11 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Thu, 19 Jun 2025 14:21:11 GMT Subject: git: openjdk/leyden: premain: Cleanup unused _decompile and _ignore_decompile fields in AOTCodeEntry Message-ID: <82ec8269-792c-4e36-a020-d2ab17388fbe@openjdk.org> Changeset: 8b31ecc5 Branch: premain Author: Ashutosh Mehra Date: 2025-06-19 14:17:30 +0000 URL: https://git.openjdk.org/leyden/commit/8b31ecc5cbfe9469e468a2827868520bdf9473d8 Cleanup unused _decompile and _ignore_decompile fields in AOTCodeEntry Reviewed-by: kvn ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/aotCodeCache.hpp From asmehra at openjdk.org Thu Jun 19 14:26:59 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Thu, 19 Jun 2025 14:26:59 GMT Subject: Integrated: Cleanup unused _decompile and _ignore_decompile fields in AOTCodeEntry In-Reply-To: References: Message-ID: On Thu, 19 Jun 2025 03:16:18 GMT, Ashutosh Mehra wrote: > New workflow always sets `_ignore_decompile` to true, which implies `AOTCodeEntry::_decompile` is not in `check_entry` and is thus redundant. These two fields can just be removed. This pull request has now been integrated. Changeset: 8b31ecc5 Author: Ashutosh Mehra URL: https://git.openjdk.org/leyden/commit/8b31ecc5cbfe9469e468a2827868520bdf9473d8 Stats: 87 lines in 2 files changed: 3 ins; 32 del; 52 mod Cleanup unused _decompile and _ignore_decompile fields in AOTCodeEntry Reviewed-by: kvn ------------- PR: https://git.openjdk.org/leyden/pull/80 From iklam at openjdk.org Thu Jun 19 17:40:58 2025 From: iklam at openjdk.org (Ioi Lam) Date: Thu, 19 Jun 2025 17:40:58 GMT Subject: git: openjdk/leyden: premain: Fixed excessive "object points to a static field that may hold a different value at runtime" warnings due to the unnecessary archiving of ClassLoader::package2certs Message-ID: Changeset: 3294c2d1 Branch: premain Author: Ioi Lam Date: 2025-06-19 09:35:36 +0000 URL: https://git.openjdk.org/leyden/commit/3294c2d16aa3eb33525667e3f02b7e805c49a5fe Fixed excessive "object points to a static field that may hold a different value at runtime" warnings due to the unnecessary archiving of ClassLoader::package2certs ! src/hotspot/share/cds/cdsHeapVerifier.cpp ! src/java.base/share/classes/java/lang/ClassLoader.java From vlivanov at openjdk.org Thu Jun 19 19:40:46 2025 From: vlivanov at openjdk.org (Vladimir Ivanov) Date: Thu, 19 Jun 2025 19:40:46 GMT Subject: RFR: 8359107: [leyden] Pick up JDK-8357481, JDK-8357473 and rework precompilation waits In-Reply-To: References: Message-ID: On Tue, 10 Jun 2025 10:09:25 GMT, Aleksey Shipilev wrote: > [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481) will come in from mainline and bring conflicting changes to `CompileTask`. Additionally, our precompilation ([JDK-8352042](https://bugs.openjdk.org/browse/JDK-8352042)) depends on the code that would go away with [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473). We should cherry-pick [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481), [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473) and rework parallel recompilation to use the newly created `CompileTaskWait_lock` for notifications. > > Additional testing: > - [x] Ad-hoc performance tests > - [x] Linux x86_64 server fastdebug, `runtime/cds` Looks good. ------------- Marked as reviewed by vlivanov (Committer). PR Review: https://git.openjdk.org/leyden/pull/79#pullrequestreview-2943892760 From shade at openjdk.org Fri Jun 20 08:42:29 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 20 Jun 2025 08:42:29 GMT Subject: git: openjdk/leyden: premain: 8359107: [leyden] Pick up JDK-8357481, JDK-8357473 and rework precompilation waits Message-ID: <338e5ef6-17b7-4fd4-b67f-aa5b9622769b@openjdk.org> Changeset: 489d2d3e Branch: premain Author: Aleksey Shipilev Date: 2025-06-20 08:39:52 +0000 URL: https://git.openjdk.org/leyden/commit/489d2d3e919c0caba4fa9b0551996652d14a6495 8359107: [leyden] Pick up JDK-8357481, JDK-8357473 and rework precompilation waits Reviewed-by: kvn, vlivanov ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/compiler/compileBroker.hpp ! src/hotspot/share/compiler/compileLog.cpp ! src/hotspot/share/compiler/compileTask.cpp ! src/hotspot/share/compiler/compileTask.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp From shade at openjdk.org Fri Jun 20 08:42:46 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 20 Jun 2025 08:42:46 GMT Subject: RFR: 8359107: [leyden] Pick up JDK-8357481, JDK-8357473 and rework precompilation waits In-Reply-To: References: Message-ID: On Tue, 10 Jun 2025 10:09:25 GMT, Aleksey Shipilev wrote: > [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481) will come in from mainline and bring conflicting changes to `CompileTask`. Additionally, our precompilation ([JDK-8352042](https://bugs.openjdk.org/browse/JDK-8352042)) depends on the code that would go away with [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473). We should cherry-pick [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481), [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473) and rework parallel recompilation to use the newly created `CompileTaskWait_lock` for notifications. > > Additional testing: > - [x] Ad-hoc performance tests > - [x] Linux x86_64 server fastdebug, `runtime/cds` Thanks! I am getting this one in ahead of mainline changes. ------------- PR Comment: https://git.openjdk.org/leyden/pull/79#issuecomment-2990291228 From shade at openjdk.org Fri Jun 20 08:42:46 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 20 Jun 2025 08:42:46 GMT Subject: Integrated: 8359107: [leyden] Pick up JDK-8357481, JDK-8357473 and rework precompilation waits In-Reply-To: References: Message-ID: On Tue, 10 Jun 2025 10:09:25 GMT, Aleksey Shipilev wrote: > [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481) will come in from mainline and bring conflicting changes to `CompileTask`. Additionally, our precompilation ([JDK-8352042](https://bugs.openjdk.org/browse/JDK-8352042)) depends on the code that would go away with [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473). We should cherry-pick [JDK-8357481](https://bugs.openjdk.org/browse/JDK-8357481), [JDK-8357473](https://bugs.openjdk.org/browse/JDK-8357473) and rework parallel recompilation to use the newly created `CompileTaskWait_lock` for notifications. > > Additional testing: > - [x] Ad-hoc performance tests > - [x] Linux x86_64 server fastdebug, `runtime/cds` This pull request has now been integrated. Changeset: 489d2d3e Author: Aleksey Shipilev URL: https://git.openjdk.org/leyden/commit/489d2d3e919c0caba4fa9b0551996652d14a6495 Stats: 157 lines in 7 files changed: 33 ins; 75 del; 49 mod 8359107: [leyden] Pick up JDK-8357481, JDK-8357473 and rework precompilation waits Reviewed-by: kvn, vlivanov ------------- PR: https://git.openjdk.org/leyden/pull/79 From duke at openjdk.org Tue Jun 24 17:26:40 2025 From: duke at openjdk.org (duke) Date: Tue, 24 Jun 2025 17:26:40 GMT Subject: git: openjdk/leyden: premain: removed commented out dead code Message-ID: <24f5d589-bbbe-40cd-9ddf-d5a57326fb34@openjdk.org> Changeset: 1260c031 Branch: premain Author: iklam Date: 2025-06-24 10:24:43 +0000 URL: https://git.openjdk.org/leyden/commit/1260c031936cdd3884692ba7b289eeef9e139971 removed commented out dead code ! src/hotspot/share/runtime/threads.cpp From duke at openjdk.org Tue Jun 24 20:32:15 2025 From: duke at openjdk.org (duke) Date: Tue, 24 Jun 2025 20:32:15 GMT Subject: git: openjdk/leyden: premain: removed dead code that exists only in premain -- a class who is_runtime_setup_required() will not take this path anyway, so thankfully this line has no effect Message-ID: <3b87bb64-3f18-4c41-b298-572f1739218f@openjdk.org> Changeset: 7832f454 Branch: premain Author: iklam Date: 2025-06-24 13:28:49 +0000 URL: https://git.openjdk.org/leyden/commit/7832f4543f1294b646b6286fb2430550c7063dc1 removed dead code that exists only in premain -- a class who is_runtime_setup_required() will not take this path anyway, so thankfully this line has no effect ! src/hotspot/share/oops/instanceKlass.cpp From iklam at openjdk.org Fri Jun 27 04:48:07 2025 From: iklam at openjdk.org (Ioi Lam) Date: Fri, 27 Jun 2025 04:48:07 GMT Subject: RFR: [leyden] Do not enable -XX:AOTMode=on by default Message-ID: During early Leyden development, we decided to make `-XX:AOTMode=on` the default to make it easier to diagnose mismatches between training and production runs. However, this make it impossible to run the `make test JTREG=AOT_JDK...` tests: $ make test JTREG=AOT_JDK=onestep TEST=open/test/hotspot/jtreg/runtime/invokedynamic [...] Running test 'jtreg:open/test/hotspot/jtreg/runtime/invokedynamic' [0.010s][error][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. [0.010s][error][aot] Mismatched values for property jdk.module.addexports: java.base/jdk.internal.foreign=ALL-UNNAMED,java.base/jdk.internal.misc=ALL-UNNAMED specified during runtime but not during dump time [0.010s][error][aot] Disabling optimized module handling [0.010s][error][aot] AOT cache has aot-linked classes. It cannot be used when archived full module graph is not used. [0.011s][error][aot] Unable to map shared spaces failed to get JDK properties: Now people should be familiar with using the AOT cache, so this nanny mode isn't necessary more. ------------- Commit messages: - Do not enable -XX:AOTMode=on by default, so that we can run "make test JTREG=AOT_JDK=onestep TEST=..." Changes: https://git.openjdk.org/leyden/pull/82/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=82&range=00 Stats: 5 lines in 1 file changed: 0 ins; 5 del; 0 mod Patch: https://git.openjdk.org/leyden/pull/82.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/82/head:pull/82 PR: https://git.openjdk.org/leyden/pull/82 From shade at openjdk.org Fri Jun 27 06:39:06 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 27 Jun 2025 06:39:06 GMT Subject: RFR: [leyden] Do not enable -XX:AOTMode=on by default In-Reply-To: References: Message-ID: On Fri, 27 Jun 2025 04:41:30 GMT, Ioi Lam wrote: > During early Leyden development, we decided to make `-XX:AOTMode=on` the default to make it easier to diagnose mismatches between training and production runs. However, this make it impossible to run the `make test JTREG=AOT_JDK...` tests: > > > $ make test JTREG=AOT_JDK=onestep TEST=open/test/hotspot/jtreg/runtime/invokedynamic > [...] > Running test 'jtreg:open/test/hotspot/jtreg/runtime/invokedynamic' > [0.010s][error][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. > [0.010s][error][aot] Mismatched values for property jdk.module.addexports: java.base/jdk.internal.foreign=ALL-UNNAMED,java.base/jdk.internal.misc=ALL-UNNAMED specified during runtime but not during dump time > [0.010s][error][aot] Disabling optimized module handling > [0.010s][error][aot] AOT cache has aot-linked classes. It cannot be used when archived full module graph is not used. > [0.011s][error][aot] Unable to map shared spaces > failed to get JDK properties: > > > Now people should be familiar with using the AOT cache, so this nanny mode isn't necessary more. Looks reasonable, thanks. ------------- Marked as reviewed by shade (Committer). PR Review: https://git.openjdk.org/leyden/pull/82#pullrequestreview-2964953735 From shade at openjdk.org Fri Jun 27 07:42:04 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 27 Jun 2025 07:42:04 GMT Subject: RFR: [leyden] Do not enable -XX:AOTMode=on by default In-Reply-To: References: Message-ID: <2-B65iewmJfwAWVbiC07VJwEd1IoGE0WPzbLCeCOYEY=.813d6889-446c-4ee6-be1f-0ec6afc3aa9f@github.com> On Fri, 27 Jun 2025 04:41:30 GMT, Ioi Lam wrote: > During early Leyden development, we decided to make `-XX:AOTMode=on` the default to make it easier to diagnose mismatches between training and production runs. However, this make it impossible to run the `make test JTREG=AOT_JDK...` tests: > > > $ make test JTREG=AOT_JDK=onestep TEST=open/test/hotspot/jtreg/runtime/invokedynamic > [...] > Running test 'jtreg:open/test/hotspot/jtreg/runtime/invokedynamic' > [0.010s][error][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. > [0.010s][error][aot] Mismatched values for property jdk.module.addexports: java.base/jdk.internal.foreign=ALL-UNNAMED,java.base/jdk.internal.misc=ALL-UNNAMED specified during runtime but not during dump time > [0.010s][error][aot] Disabling optimized module handling > [0.010s][error][aot] AOT cache has aot-linked classes. It cannot be used when archived full module graph is not used. > [0.011s][error][aot] Unable to map shared spaces > failed to get JDK properties: > > > Now people should be familiar with using the AOT cache, so this nanny mode isn't necessary more. Test failures. There are [runtime/cds/appcds/aotProfile/AOTProfileFlags](https://github.com/iklam/leyden/actions/runs/15918290752#user-content-runtime_cds_appcds_aotprofile_aotprofileflags) test failures, though. ------------- Changes requested by shade (Committer). PR Review: https://git.openjdk.org/leyden/pull/82#pullrequestreview-2965157802 PR Comment: https://git.openjdk.org/leyden/pull/82#issuecomment-3012035268 From duke at openjdk.org Fri Jun 27 17:26:36 2025 From: duke at openjdk.org (duke) Date: Fri, 27 Jun 2025 17:26:36 GMT Subject: git: openjdk/leyden: created branch remove-leyden-workflow based on the branch premain containing 2 unique commits Message-ID: <67a19f3c-cf95-4fd0-bc1b-b1475f17ba8d@openjdk.org> The following commits are unique to the remove-leyden-workflow branch: ======================================================== 270d2167: Remove leyden workflow from tests f78f29d0: Removed native code for handling Leyden experimental workflow From iklam at openjdk.org Fri Jun 27 17:33:08 2025 From: iklam at openjdk.org (Ioi Lam) Date: Fri, 27 Jun 2025 17:33:08 GMT Subject: RFR: Remove Leyden experimental workflow Message-ID: Remove the Leyden experimental workflow: `-XX:CacheDataStore` switch and friends. We should be using the standard JEP 483/514 workflow for AOT cache. ------------- Commit messages: - Removed native code for handling Leyden experimental workflow - Remove leyden workflow from tests Changes: https://git.openjdk.org/leyden/pull/83/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=83&range=00 Stats: 669 lines in 25 files changed: 22 ins; 596 del; 51 mod Patch: https://git.openjdk.org/leyden/pull/83.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/83/head:pull/83 PR: https://git.openjdk.org/leyden/pull/83 From duke at openjdk.org Fri Jun 27 17:54:56 2025 From: duke at openjdk.org (duke) Date: Fri, 27 Jun 2025 17:54:56 GMT Subject: git: openjdk/leyden: created branch do-not-enable-aotmode-on-by-default based on the branch remove-leyden-workflow containing 2 unique commits Message-ID: The following commits are unique to the do-not-enable-aotmode-on-by-default branch: ======================================================== 73b82f01: Do not enable -XX:AOTMode=on by default, so that we can run "make test JTREG=AOT_JDK=onestep TEST=..." 6bdfac02: Fixed test failure From iklam at openjdk.org Fri Jun 27 17:56:09 2025 From: iklam at openjdk.org (Ioi Lam) Date: Fri, 27 Jun 2025 17:56:09 GMT Subject: RFR: [leyden] Do not enable -XX:AOTMode=on by default In-Reply-To: <2-B65iewmJfwAWVbiC07VJwEd1IoGE0WPzbLCeCOYEY=.813d6889-446c-4ee6-be1f-0ec6afc3aa9f@github.com> References: <2-B65iewmJfwAWVbiC07VJwEd1IoGE0WPzbLCeCOYEY=.813d6889-446c-4ee6-be1f-0ec6afc3aa9f@github.com> Message-ID: On Fri, 27 Jun 2025 07:39:22 GMT, Aleksey Shipilev wrote: > Test failures. Fixed. ------------- PR Comment: https://git.openjdk.org/leyden/pull/82#issuecomment-3013937045 From duke at openjdk.org Fri Jun 27 18:22:23 2025 From: duke at openjdk.org (duke) Date: Fri, 27 Jun 2025 18:22:23 GMT Subject: git: openjdk/leyden: premain: Removed dead code from SpringPetClinic.java test Message-ID: <96ca1a60-bea1-4ab2-966d-dc1c332f22f4@openjdk.org> Changeset: 3de6c913 Branch: premain Author: iklam Date: 2025-06-27 11:19:39 +0000 URL: https://git.openjdk.org/leyden/commit/3de6c913c8025f9cbd2871fb2faebfab07682d3f Removed dead code from SpringPetClinic.java test ! test/hotspot/jtreg/runtime/cds/appcds/applications/SpringPetClinic.java From asmehra at openjdk.org Fri Jun 27 19:38:03 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 27 Jun 2025 19:38:03 GMT Subject: RFR: Remove Leyden experimental workflow In-Reply-To: References: Message-ID: On Fri, 27 Jun 2025 17:28:30 GMT, Ioi Lam wrote: > Remove the Leyden experimental workflow: `-XX:CacheDataStore` switch and friends. > > We should be using the standard JEP 483/514 workflow for AOT cache. Marked as reviewed by asmehra (Committer). Looks good. @iklam I wonder if should move LeydenGCFlags to mainstream. It is not testing anything specific to leyden repo. ------------- PR Review: https://git.openjdk.org/leyden/pull/83#pullrequestreview-2967731510 PR Comment: https://git.openjdk.org/leyden/pull/83#issuecomment-3014173858 From kvn at openjdk.org Fri Jun 27 19:38:03 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 27 Jun 2025 19:38:03 GMT Subject: RFR: Remove Leyden experimental workflow In-Reply-To: References: Message-ID: <5b2JwlQPcreCMhCFIif2ap8dFY4OlWokQXaMg0EOBbY=.b370173a-0f74-4b2b-90c5-0b99db39b197@github.com> On Fri, 27 Jun 2025 17:28:30 GMT, Ioi Lam wrote: > Remove the Leyden experimental workflow: `-XX:CacheDataStore` switch and friends. > > We should be using the standard JEP 483/514 workflow for AOT cache. Few comments otherwise it is good. Please wait until mainline is merged. Please enable GHA testing src/hotspot/share/cds/cdsConfig.cpp line 395: > 393: if (FLAG_IS_DEFAULT(AOTCache) && AOTStubCaching) { > 394: log_debug(aot,codecache,init)("AOTCache is not specified - AOTStubCaching is ignored"); > 395: } Correct removal. This was incorrect merge from mainline. src/hotspot/share/cds/cdsConfig.cpp line 467: > 465: } > 466: if (FLAG_IS_DEFAULT(AOTCache) && AOTStubCaching) { > 467: log_debug(aot,codecache,init)("AOTCache is not specified - AOTStubCaching is ignored"); You can remove these checks. There is similar check in `AOTCodeCache::initialize()` for all types of AOT code. ------------- PR Review: https://git.openjdk.org/leyden/pull/83#pullrequestreview-2967705431 PR Comment: https://git.openjdk.org/leyden/pull/83#issuecomment-3014180472 PR Review Comment: https://git.openjdk.org/leyden/pull/83#discussion_r2172719582 PR Review Comment: https://git.openjdk.org/leyden/pull/83#discussion_r2172729434 From kvn at openjdk.org Fri Jun 27 19:50:03 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 27 Jun 2025 19:50:03 GMT Subject: RFR: Remove Leyden experimental workflow In-Reply-To: References: Message-ID: <_KL0yhqeq7BPyXXSRggSPUsDLJg63RU6N6sk918-2ho=.9586c4e1-6ebf-4f89-887c-36bc3201436e@github.com> On Fri, 27 Jun 2025 19:32:45 GMT, Ashutosh Mehra wrote: > Looks good. @iklam I wonder if should move LeydenGCFlags to mainstream. It is not testing anything specific to leyden repo. If we decide to move we should rename it to use `AOT` instead of `Leyden` to avoid confusion. I think we should replace all instances of `leyden` with `AOT`. ------------- PR Comment: https://git.openjdk.org/leyden/pull/83#issuecomment-3014201786 From iklam at openjdk.org Fri Jun 27 19:54:54 2025 From: iklam at openjdk.org (Ioi Lam) Date: Fri, 27 Jun 2025 19:54:54 GMT Subject: RFR: Remove Leyden experimental workflow In-Reply-To: <_KL0yhqeq7BPyXXSRggSPUsDLJg63RU6N6sk918-2ho=.9586c4e1-6ebf-4f89-887c-36bc3201436e@github.com> References: <_KL0yhqeq7BPyXXSRggSPUsDLJg63RU6N6sk918-2ho=.9586c4e1-6ebf-4f89-887c-36bc3201436e@github.com> Message-ID: On Fri, 27 Jun 2025 19:46:55 GMT, Vladimir Kozlov wrote: > > Looks good. @iklam I wonder if should move LeydenGCFlags to mainstream. It is not testing anything specific to leyden repo. > > If we decide to move we should rename it to use `AOT` instead of `Leyden` to avoid confusion. I think we should replace all instances of `leyden` with `AOT`. OK, I will rename Leyden to AOT in a follow-up changeset. I will to keep this one simple. ------------- PR Comment: https://git.openjdk.org/leyden/pull/83#issuecomment-3014212236 From iklam at openjdk.org Fri Jun 27 19:54:54 2025 From: iklam at openjdk.org (Ioi Lam) Date: Fri, 27 Jun 2025 19:54:54 GMT Subject: RFR: Remove Leyden experimental workflow In-Reply-To: <5b2JwlQPcreCMhCFIif2ap8dFY4OlWokQXaMg0EOBbY=.b370173a-0f74-4b2b-90c5-0b99db39b197@github.com> References: <5b2JwlQPcreCMhCFIif2ap8dFY4OlWokQXaMg0EOBbY=.b370173a-0f74-4b2b-90c5-0b99db39b197@github.com> Message-ID: On Fri, 27 Jun 2025 19:31:23 GMT, Vladimir Kozlov wrote: >> Remove the Leyden experimental workflow: `-XX:CacheDataStore` switch and friends. >> >> We should be using the standard JEP 483/514 workflow for AOT cache. > > src/hotspot/share/cds/cdsConfig.cpp line 467: > >> 465: } >> 466: if (FLAG_IS_DEFAULT(AOTCache) && AOTStubCaching) { >> 467: log_debug(aot,codecache,init)("AOTCache is not specified - AOTStubCaching is ignored"); > > You can remove these checks. There is similar check in `AOTCodeCache::initialize()` for all types of AOT code. Can you remove them in your merge? ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/83#discussion_r2172771276 From kvn at openjdk.org Fri Jun 27 20:22:51 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 27 Jun 2025 20:22:51 GMT Subject: RFR: Remove Leyden experimental workflow In-Reply-To: References: <5b2JwlQPcreCMhCFIif2ap8dFY4OlWokQXaMg0EOBbY=.b370173a-0f74-4b2b-90c5-0b99db39b197@github.com> Message-ID: On Fri, 27 Jun 2025 19:52:37 GMT, Ioi Lam wrote: >> src/hotspot/share/cds/cdsConfig.cpp line 467: >> >>> 465: } >>> 466: if (FLAG_IS_DEFAULT(AOTCache) && AOTStubCaching) { >>> 467: log_debug(aot,codecache,init)("AOTCache is not specified - AOTStubCaching is ignored"); >> >> You can remove these checks. There is similar check in `AOTCodeCache::initialize()` for all types of AOT code. > > Can you remove them in your merge? Yes, I will do. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/83#discussion_r2172821157 From shade at openjdk.org Mon Jun 30 13:09:03 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 30 Jun 2025 13:09:03 GMT Subject: RFR: [leyden] Do not enable -XX:AOTMode=on by default In-Reply-To: References: <2-B65iewmJfwAWVbiC07VJwEd1IoGE0WPzbLCeCOYEY=.813d6889-446c-4ee6-be1f-0ec6afc3aa9f@github.com> Message-ID: On Fri, 27 Jun 2025 17:53:34 GMT, Ioi Lam wrote: > > Test failures. > > Fixed. Forgot to push the change, maybe? Still test failures. ------------- PR Comment: https://git.openjdk.org/leyden/pull/82#issuecomment-3019083475 From iklam at openjdk.org Mon Jun 30 15:29:36 2025 From: iklam at openjdk.org (Ioi Lam) Date: Mon, 30 Jun 2025 15:29:36 GMT Subject: RFR: [leyden] Do not enable -XX:AOTMode=on by default [v2] In-Reply-To: References: Message-ID: > During early Leyden development, we decided to make `-XX:AOTMode=on` the default to make it easier to diagnose mismatches between training and production runs. However, this make it impossible to run the `make test JTREG=AOT_JDK...` tests: > > > $ make test JTREG=AOT_JDK=onestep TEST=open/test/hotspot/jtreg/runtime/invokedynamic > [...] > Running test 'jtreg:open/test/hotspot/jtreg/runtime/invokedynamic' > [0.010s][error][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. > [0.010s][error][aot] Mismatched values for property jdk.module.addexports: java.base/jdk.internal.foreign=ALL-UNNAMED,java.base/jdk.internal.misc=ALL-UNNAMED specified during runtime but not during dump time > [0.010s][error][aot] Disabling optimized module handling > [0.010s][error][aot] AOT cache has aot-linked classes. It cannot be used when archived full module graph is not used. > [0.011s][error][aot] Unable to map shared spaces > failed to get JDK properties: > > > Now people should be familiar with using the AOT cache, so this nanny mode isn't necessary more. Ioi Lam has updated the pull request incrementally with one additional commit since the last revision: Fixed test failure ------------- Changes: - all: https://git.openjdk.org/leyden/pull/82/files - new: https://git.openjdk.org/leyden/pull/82/files/73b82f01..6bdfac02 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=82&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=82&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/leyden/pull/82.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/82/head:pull/82 PR: https://git.openjdk.org/leyden/pull/82 From iklam at openjdk.org Mon Jun 30 15:29:37 2025 From: iklam at openjdk.org (Ioi Lam) Date: Mon, 30 Jun 2025 15:29:37 GMT Subject: RFR: [leyden] Do not enable -XX:AOTMode=on by default [v2] In-Reply-To: References: <2-B65iewmJfwAWVbiC07VJwEd1IoGE0WPzbLCeCOYEY=.813d6889-446c-4ee6-be1f-0ec6afc3aa9f@github.com> Message-ID: On Mon, 30 Jun 2025 13:06:24 GMT, Aleksey Shipilev wrote: > > > Test failures. > > > > > > Fixed. > > Forgot to push the change, maybe? Still test failures. Should be fixed now. I pushed the test changes to the wrong repo :-) ------------- PR Comment: https://git.openjdk.org/leyden/pull/82#issuecomment-3019614518 From shade at openjdk.org Mon Jun 30 15:47:54 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 30 Jun 2025 15:47:54 GMT Subject: RFR: [leyden] Do not enable -XX:AOTMode=on by default [v2] In-Reply-To: References: Message-ID: On Mon, 30 Jun 2025 15:29:36 GMT, Ioi Lam wrote: >> During early Leyden development, we decided to make `-XX:AOTMode=on` the default to make it easier to diagnose mismatches between training and production runs. However, this make it impossible to run the `make test JTREG=AOT_JDK...` tests: >> >> >> $ make test JTREG=AOT_JDK=onestep TEST=open/test/hotspot/jtreg/runtime/invokedynamic >> [...] >> Running test 'jtreg:open/test/hotspot/jtreg/runtime/invokedynamic' >> [0.010s][error][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. >> [0.010s][error][aot] Mismatched values for property jdk.module.addexports: java.base/jdk.internal.foreign=ALL-UNNAMED,java.base/jdk.internal.misc=ALL-UNNAMED specified during runtime but not during dump time >> [0.010s][error][aot] Disabling optimized module handling >> [0.010s][error][aot] AOT cache has aot-linked classes. It cannot be used when archived full module graph is not used. >> [0.011s][error][aot] Unable to map shared spaces >> failed to get JDK properties: >> >> >> Now people should be familiar with using the AOT cache, so this nanny mode isn't necessary more. > > Ioi Lam has updated the pull request incrementally with one additional commit since the last revision: > > Fixed test failure Looks fine, provided tests now work :) ------------- Marked as reviewed by shade (Committer). PR Review: https://git.openjdk.org/leyden/pull/82#pullrequestreview-2971779795 From duke at openjdk.org Mon Jun 30 17:39:09 2025 From: duke at openjdk.org (duke) Date: Mon, 30 Jun 2025 17:39:09 GMT Subject: git: openjdk/leyden: hermetic-java-runtime: 133 new changesets Message-ID: Changeset: 49a82d88 Branch: hermetic-java-runtime Author: dermster Committer: Mark Sheppard Date: 2025-06-17 18:21:40 +0000 URL: https://git.openjdk.org/leyden/commit/49a82d880636a632f4a3471b14b1b1b29ce1d5e6 8359449: [TEST] open/test/jdk/java/io/File/SymLinks.java Refactor extract method for Windows specific test Reviewed-by: bpb ! test/jdk/java/io/File/SymLinks.java Changeset: 164cae46 Branch: hermetic-java-runtime Author: Serguei Spitsyn Date: 2025-06-17 19:22:14 +0000 URL: https://git.openjdk.org/leyden/commit/164cae469ca0b97b01ce36402a248be308419af6 8359733: UnProblemList serviceability/jvmti/vthread/SuspendWithInterruptLock Reviewed-by: syan, dholmes, lmesnik ! test/hotspot/jtreg/ProblemList-Xcomp.txt Changeset: afa52e46 Branch: hermetic-java-runtime Author: Thomas Stuefe Date: 2025-06-17 20:23:20 +0000 URL: https://git.openjdk.org/leyden/commit/afa52e4681f5d0392c3fdfddf48b00a004d1280c 8210549: Runtime.exec: in closeDescriptors(), use FD_CLOEXEC instead of close() Reviewed-by: rriggs ! make/test/JtregNativeJdk.gmk ! src/java.base/unix/native/libjava/childproc.c + test/jdk/java/lang/ProcessBuilder/FDLeakTest/FDLeakTest.java + test/jdk/java/lang/ProcessBuilder/FDLeakTest/exeFDLeakTester.c + test/jdk/java/lang/ProcessBuilder/FDLeakTest/libFDLeaker.c Changeset: 8c760e78 Branch: hermetic-java-runtime Author: lawrence.andrews Committer: Harshitha Onkar Date: 2025-06-17 20:42:42 +0000 URL: https://git.openjdk.org/leyden/commit/8c760e78b9e3851d40f8036105666e9c451b09a1 8359418: Test "javax/swing/text/GlyphView/bug4188841.java" failed because the phrase of text pane does not match the instructions Reviewed-by: honkar ! test/jdk/javax/swing/text/GlyphView/bug4188841.java Changeset: 382f870c Branch: hermetic-java-runtime Author: William Kemper Date: 2025-06-17 21:15:25 +0000 URL: https://git.openjdk.org/leyden/commit/382f870cd53d69dfc1d2b96150aa2c026e47f642 8357976: GenShen crash in swap_card_tables: Should be clean Reviewed-by: kdnilsen, cslucas, ysr, xpeng ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahDegeneratedGC.cpp Changeset: 2f63d3ae Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2025-06-18 02:06:22 +0000 URL: https://git.openjdk.org/leyden/commit/2f63d3aee555762bfaea2a77bf543a32ca43f069 7116990: (spec) Socket.connect(addr,timeout) not clear if IOException because of TCP timeout Reviewed-by: alanb, dfuchs ! src/java.base/share/classes/java/net/Socket.java Changeset: 1130c1bc Branch: hermetic-java-runtime Author: Prasanta Sadhukhan Date: 2025-06-18 02:56:48 +0000 URL: https://git.openjdk.org/leyden/commit/1130c1bc33cc9ab4acc6862d7738297afa017e8b 6798061: The removal of System.out.println from KeyboardManager Reviewed-by: prr ! src/java.desktop/share/classes/javax/swing/KeyboardManager.java Changeset: 2b94b70e Branch: hermetic-java-runtime Author: Prasanta Sadhukhan Date: 2025-06-18 05:08:06 +0000 URL: https://git.openjdk.org/leyden/commit/2b94b70ef50675f7853c0cb6a61e60e6eb7d92ed 8359428: Test 'javax/swing/JTabbedPane/bug4499556.java' failed because after selecting one of L&F items, the test case automatically failed when clicking on L&F Menu button again Reviewed-by: abhiscxk ! test/jdk/javax/swing/JTabbedPane/bug4499556.java Changeset: 57266064 Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2025-06-18 09:03:25 +0000 URL: https://git.openjdk.org/leyden/commit/57266064a7bb995c3c614c19b936687af35e9aa4 8359709: java.net.HttpURLConnection sends unexpected "Host" request header in some cases after JDK-8344190 Reviewed-by: dfuchs, djelinski, michaelm, vyazici ! src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java + test/jdk/java/net/HttpURLConnection/HostHeaderTest.java Changeset: cabd7c1f Branch: hermetic-java-runtime Author: Matthew Donovan Date: 2025-06-18 11:24:54 +0000 URL: https://git.openjdk.org/leyden/commit/cabd7c1f7a8c471d5461e3557fb589fdfe4d88be 8356897: Update NSS library to 3.111 Reviewed-by: rhalade ! test/jdk/sun/security/pkcs11/PKCS11Test.java Changeset: f07f5ce9 Branch: hermetic-java-runtime Author: He-Pin(kerr) Committer: Viktor Klang Date: 2025-06-18 11:26:00 +0000 URL: https://git.openjdk.org/leyden/commit/f07f5ce9845c59348dc785cd5ee26391dd7e36c8 8359067: Fix typo in DelayScheduler.java Reviewed-by: syan, dl, rriggs, vklang ! src/java.base/share/classes/java/util/concurrent/DelayScheduler.java Changeset: 547ce030 Branch: hermetic-java-runtime Author: Afshin Zafari Date: 2025-06-18 11:37:48 +0000 URL: https://git.openjdk.org/leyden/commit/547ce0301684fdebe95ce2e8e195a019bcefe493 8337217: Port VirtualMemoryTracker to use VMATree Reviewed-by: jsjolen, gziemski ! src/hotspot/share/nmt/memBaseline.cpp ! src/hotspot/share/nmt/memMapPrinter.cpp ! src/hotspot/share/nmt/memReporter.cpp ! src/hotspot/share/nmt/memTracker.cpp ! src/hotspot/share/nmt/memTracker.hpp ! src/hotspot/share/nmt/memoryFileTracker.cpp ! src/hotspot/share/nmt/memoryFileTracker.hpp ! src/hotspot/share/nmt/nmtTreap.hpp ! src/hotspot/share/nmt/nmtUsage.cpp + src/hotspot/share/nmt/regionsTree.cpp + src/hotspot/share/nmt/regionsTree.hpp + src/hotspot/share/nmt/regionsTree.inline.hpp ! src/hotspot/share/nmt/threadStackTracker.cpp ! src/hotspot/share/nmt/virtualMemoryTracker.cpp ! src/hotspot/share/nmt/virtualMemoryTracker.hpp ! src/hotspot/share/nmt/vmatree.cpp ! src/hotspot/share/nmt/vmatree.hpp ! src/hotspot/share/opto/printinlining.cpp ! src/hotspot/share/utilities/debug.cpp ! src/hotspot/share/utilities/nativeCallStack.hpp - test/hotspot/gtest/nmt/test_nmt_reserved_region.cpp ! test/hotspot/gtest/nmt/test_nmt_treap.cpp + test/hotspot/gtest/nmt/test_regions_tree.cpp ! test/hotspot/gtest/nmt/test_vmatree.cpp ! test/hotspot/gtest/runtime/test_committed_virtualmemory.cpp ! test/hotspot/gtest/runtime/test_virtualMemoryTracker.cpp ! test/hotspot/jtreg/runtime/Thread/TestAlwaysPreTouchStacks.java Changeset: ba32b78b Branch: hermetic-java-runtime Author: Mikhail Ablakatov Committer: Evgeny Astigeevich Date: 2025-06-18 11:48:45 +0000 URL: https://git.openjdk.org/leyden/commit/ba32b78bfaf83f69003f83333ab6975b35343fde 8358329: AArch64: emit direct branches in static stubs for small code caches Reviewed-by: aph, eastigeevich ! src/hotspot/cpu/aarch64/compiledIC_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp ! src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp + test/hotspot/jtreg/compiler/c2/aarch64/TestStaticCallStub.java Changeset: cf789258 Branch: hermetic-java-runtime Author: Casper Norrbin Date: 2025-06-18 13:58:45 +0000 URL: https://git.openjdk.org/leyden/commit/cf78925859dd2640b3c2500fc6be8b5bb308d96e 8358891: Remove the PerfDataSamplingIntervalFunc code Reviewed-by: shade, jwilhelm ! src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp Changeset: 42d3604a Branch: hermetic-java-runtime Author: Joel Sikstr?m Date: 2025-06-18 14:07:25 +0000 URL: https://git.openjdk.org/leyden/commit/42d3604a31c4e5b5391468ee1d2c88c23c54c1d9 8359923: Const accessors for the Deferred class Reviewed-by: jsjolen ! src/hotspot/share/utilities/deferred.hpp Changeset: 984d7f9c Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-18 14:43:55 +0000 URL: https://git.openjdk.org/leyden/commit/984d7f9cdfb0d75ea906ce32df0b6c447f4d5954 8359895: JFR: method-timing view doesn't work Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini Changeset: b7fcd0b2 Branch: hermetic-java-runtime Author: Manukumar V S Committer: Alexey Ivanov Date: 2025-06-18 16:41:31 +0000 URL: https://git.openjdk.org/leyden/commit/b7fcd0b2351cee8d3d18abaf0bf5905d20c9d46c 8359889: java/awt/MenuItem/SetLabelTest.java inadvertently triggers clicks on items pinned to the taskbar Reviewed-by: aivanov, kizune ! test/jdk/java/awt/MenuItem/SetLabelTest.java Changeset: 7bc0d824 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-06-18 18:05:18 +0000 URL: https://git.openjdk.org/leyden/commit/7bc0d82450e210b14c9f89687582d78a0a50ee54 8359227: Code cache/heap size options should be size_t Reviewed-by: mhaessig, tschatzl ! src/hotspot/cpu/aarch64/c1_globals_aarch64.hpp ! src/hotspot/cpu/aarch64/c2_globals_aarch64.hpp ! src/hotspot/cpu/aarch64/globals_aarch64.hpp ! src/hotspot/cpu/arm/c1_globals_arm.hpp ! src/hotspot/cpu/arm/c2_globals_arm.hpp ! src/hotspot/cpu/arm/globals_arm.hpp ! src/hotspot/cpu/ppc/c1_globals_ppc.hpp ! src/hotspot/cpu/ppc/c2_globals_ppc.hpp ! src/hotspot/cpu/ppc/globals_ppc.hpp ! src/hotspot/cpu/riscv/c1_globals_riscv.hpp ! src/hotspot/cpu/riscv/c2_globals_riscv.hpp ! src/hotspot/cpu/riscv/globals_riscv.hpp ! src/hotspot/cpu/s390/c1_globals_s390.hpp ! src/hotspot/cpu/s390/c2_globals_s390.hpp ! src/hotspot/cpu/s390/globals_s390.hpp ! src/hotspot/cpu/x86/c1_globals_x86.hpp ! src/hotspot/cpu/x86/c2_globals_x86.hpp ! src/hotspot/cpu/x86/globals_x86.hpp ! src/hotspot/cpu/zero/globals_zero.hpp ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/compiler/compilerDefinitions.cpp ! src/hotspot/share/compiler/compiler_globals_pd.hpp ! src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp ! src/hotspot/share/memory/heap.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.cpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.hpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp ! src/hotspot/share/runtime/globals.hpp ! test/hotspot/jtreg/compiler/codecache/CheckSegmentedCodeCache.java ! test/hotspot/jtreg/compiler/codecache/jmx/CodeCacheUtils.java ! test/hotspot/jtreg/compiler/codecache/stress/RandomAllocationTest.java ! test/hotspot/jtreg/compiler/codecache/stress/ReturnBlobToWrongHeapTest.java ! test/hotspot/jtreg/compiler/whitebox/AllocationCodeBlobTest.java ! test/jdk/jdk/jfr/event/compiler/TestCodeCacheConfig.java ! test/jdk/jdk/jfr/event/compiler/TestCodeSweeper.java ! test/lib-test/jdk/test/whitebox/vm_flags/UintxTest.java ! test/lib/jdk/test/whitebox/code/BlobType.java Changeset: b52af182 Branch: hermetic-java-runtime Author: Srinivas Vamsi Parasa Committer: Sandhya Viswanathan Date: 2025-06-18 18:30:06 +0000 URL: https://git.openjdk.org/leyden/commit/b52af182c43380186decd7e35625e42c7cafb8c2 8359386: Fix incorrect value for max_size of C2CodeStub when APX is used Reviewed-by: thartmann, shade, jbhateja, sviswanathan ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp Changeset: 982064e5 Branch: hermetic-java-runtime Author: Chris Plummer Date: 2025-06-18 18:43:38 +0000 URL: https://git.openjdk.org/leyden/commit/982064e50ca6bbcfb7d1d619307921adc6f4fdcd 8359167: Remove unused test/hotspot/jtreg/vmTestbase/nsk/share/jpda/BindServer.java Reviewed-by: sspitsyn, lmesnik ! test/hotspot/jtreg/vmTestbase/nsk/share/jdb/Launcher.java - test/hotspot/jtreg/vmTestbase/nsk/share/jpda/BindServer.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jpda/DebugeeArgumentHandler.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jpda/DebugeeBinder.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jpda/DebugeeProcess.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jpda/IOPipe.java Changeset: 5a62e995 Branch: hermetic-java-runtime Author: Andrey Turbanov Date: 2025-06-18 20:58:01 +0000 URL: https://git.openjdk.org/leyden/commit/5a62e99523904e89caf561d4c1068c1565a97450 8357686: Remove unnecessary Map.get from AWTAutoShutdown.unregisterPeer Reviewed-by: serb, aivanov ! src/java.desktop/share/classes/sun/awt/AWTAutoShutdown.java Changeset: 23e1e2ff Branch: hermetic-java-runtime Author: Sergey Bylokhov Date: 2025-06-18 22:54:05 +0000 URL: https://git.openjdk.org/leyden/commit/23e1e2ff4a4a75ec268c7925fb98d6b96a01bbcf 8359180: Apply java.io.Serial annotations in java.instrument Reviewed-by: phh, sspitsyn ! src/java.instrument/share/classes/java/lang/instrument/IllegalClassFormatException.java ! src/java.instrument/share/classes/java/lang/instrument/UnmodifiableClassException.java ! src/java.instrument/share/classes/java/lang/instrument/UnmodifiableModuleException.java Changeset: 08b1fa4c Branch: hermetic-java-runtime Author: Tobias Hartmann Date: 2025-06-19 05:35:51 +0000 URL: https://git.openjdk.org/leyden/commit/08b1fa4cb39e56497052e3ee13e679c8734cf7c5 8359972: Problem list TestStaticCallStub until JDK-8359963 is fixed Reviewed-by: mchevalier, chagedorn ! test/hotspot/jtreg/ProblemList.txt Changeset: 0dce98b7 Branch: hermetic-java-runtime Author: Ana Maria Mihalceanu Committer: Christian Stein Date: 2025-06-19 07:45:04 +0000 URL: https://git.openjdk.org/leyden/commit/0dce98b71648f270dca7395e7ab5451011b14b45 8359123: Misleading examples in jmod man page Reviewed-by: cstein, alanb, iris ! src/jdk.jlink/share/man/jmod.md Changeset: c7125aa2 Branch: hermetic-java-runtime Author: Manuel H?ssig Committer: Roberto Casta?eda Lozano Date: 2025-06-19 09:36:29 +0000 URL: https://git.openjdk.org/leyden/commit/c7125aa2af43a339d401f8416a2251574f6de840 8020282: Generated code quality: redundant LEAs in the chained dereferences Co-authored-by: Roberto Casta?eda Lozano Reviewed-by: kvn, rcastanedalo ! src/hotspot/cpu/x86/peephole_x86_64.cpp ! src/hotspot/cpu/x86/peephole_x86_64.hpp ! src/hotspot/cpu/x86/x86_64.ad + test/hotspot/jtreg/compiler/codegen/TestRedundantLea.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java + test/micro/org/openjdk/bench/vm/compiler/x86/RedundantLeaPeephole.java Changeset: 01d4b772 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-06-19 10:20:49 +0000 URL: https://git.openjdk.org/leyden/commit/01d4b772dee8470188793676ce983d6203c7fefb 8319242: HotSpot Style Guide should discourage non-local variables with non-trivial initialization or destruction Reviewed-by: stefank, dcubed, dholmes ! doc/hotspot-style.html ! doc/hotspot-style.md Changeset: c4fb00a7 Branch: hermetic-java-runtime Author: Nizar Benalla Date: 2025-06-19 10:38:24 +0000 URL: https://git.openjdk.org/leyden/commit/c4fb00a7be51c7a05a29d3d57d787feb5c698ddf 8358769: Update --release 25 symbol information for JDK 25 build 26 Reviewed-by: darcy, iris ! src/jdk.compiler/share/data/symbols/java.base-P.sym.txt ! src/jdk.compiler/share/data/symbols/java.desktop-P.sym.txt ! src/jdk.compiler/share/data/symbols/jdk.incubator.vector-P.sym.txt ! src/jdk.compiler/share/data/symbols/jdk.jfr-P.sym.txt Changeset: 2e3bdec9 Branch: hermetic-java-runtime Author: Yudi Zheng Date: 2025-06-19 15:49:49 +0000 URL: https://git.openjdk.org/leyden/commit/2e3bdec9857c64b307737ac7afed58170125cca9 8358686: CDS and AOT can cause buffer truncation warning even when logging is disabled Reviewed-by: dnsimon, iklam ! src/hotspot/share/cds/metaspaceShared.cpp Changeset: 2fe12984 Branch: hermetic-java-runtime Author: Cesar Soares Lucas Date: 2025-06-19 18:02:41 +0000 URL: https://git.openjdk.org/leyden/commit/2fe12984474656a08c4525c04a351d85be73f658 8359064: Expose reason for marking nmethod non-entrant to JVMCI client Reviewed-by: dnsimon, never ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/ci/ciReplay.cpp ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/nmethod.hpp ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/jvmci/jvmciEnv.cpp ! src/hotspot/share/jvmci/jvmciEnv.hpp ! src/hotspot/share/jvmci/jvmciJavaClasses.hpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/jvmci/jvmciRuntime.hpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/javaThread.cpp ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/CompilerToVM.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCodeCacheProvider.java ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotNmethod.java ! test/hotspot/jtreg/compiler/jvmci/common/patches/jdk.internal.vm.ci/jdk/vm/ci/hotspot/CompilerToVMHelper.java + test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/CodeInvalidationReasonTest.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/SimpleCodeInstallationTest.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/TestHotSpotVMConfig.java Changeset: dec42beb Branch: hermetic-java-runtime Author: William Kemper Date: 2025-06-19 18:40:32 +0000 URL: https://git.openjdk.org/leyden/commit/dec42bebb836b2ea244dc19a5964dac828791135 8359394: GC cause cleanup Reviewed-by: shade, ysr, stefank ! src/hotspot/share/gc/shared/gcCause.cpp ! src/hotspot/share/gc/shared/gcCause.hpp ! src/hotspot/share/gc/shared/gcVMOperations.cpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/shared/GCCause.java Changeset: 0dd50dbb Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-19 19:43:24 +0000 URL: https://git.openjdk.org/leyden/commit/0dd50dbb3e6381af0ecc591ff1e5871bbc465732 8359825: Parallel: Simplify MutableNUMASpace::ensure_parsability Reviewed-by: tschatzl, sangheki ! src/hotspot/share/gc/parallel/mutableNUMASpace.cpp Changeset: a6464b74 Branch: hermetic-java-runtime Author: Manuel H?ssig Committer: SendaoYan Date: 2025-06-20 01:33:54 +0000 URL: https://git.openjdk.org/leyden/commit/a6464b74a8c9b97653b292c18f5604d4d030a9cb 8358578: Small -XX:NMethodSizeLimit triggers "not in CodeBuffer memory" assert in C1 Reviewed-by: kvn, syan, thartmann ! src/hotspot/share/c1/c1_Compilation.cpp ! src/hotspot/share/c1/c1_Compilation.hpp ! src/hotspot/share/c1/c1_Compiler.cpp ! src/hotspot/share/c1/c1_globals.hpp ! test/hotspot/jtreg/compiler/arguments/TestC1Globals.java ! test/hotspot/jtreg/compiler/c1/TestLinearScanOrderMain.java Changeset: c51bed73 Branch: hermetic-java-runtime Author: Prasanta Sadhukhan Date: 2025-06-20 03:09:57 +0000 URL: https://git.openjdk.org/leyden/commit/c51bed739d97167ae768e204dd8666d078d2e607 8335986: Test javax/swing/JCheckBox/4449413/bug4449413.java fails on Windows 11 x64 because RBMenuItem's and CBMenuItem's checkmark on the left side are not visible Reviewed-by: tr ! test/jdk/javax/swing/JCheckBox/4449413/bug4449413.java Changeset: 33970629 Branch: hermetic-java-runtime Author: Tobias Hartmann Date: 2025-06-20 05:35:10 +0000 URL: https://git.openjdk.org/leyden/commit/33970629ac63eea6009fca7a34c8f333f1a60a37 8360069: Problem list CodeInvalidationReasonTest.java until JDK-8360049 is fixed Reviewed-by: dholmes ! test/hotspot/jtreg/ProblemList-zgc.txt Changeset: 8f121a17 Branch: hermetic-java-runtime Author: Shruthi Committer: Alan Bateman Date: 2025-06-20 10:13:01 +0000 URL: https://git.openjdk.org/leyden/commit/8f121a173ca2534c706682f6c68fbbb0b94ec057 8317801: java/net/Socket/asyncClose/Race.java fails intermittently (aix) Reviewed-by: alanb, jkern ! src/java.base/unix/classes/sun/nio/ch/NativeThread.java ! src/java.base/unix/classes/sun/nio/ch/UnixDispatcher.java ! src/java.base/unix/native/libnio/ch/NativeThread.c ! test/jdk/ProblemList.txt Changeset: c11f36e6 Branch: hermetic-java-runtime Author: Roland Westrelin Date: 2025-06-20 11:24:17 +0000 URL: https://git.openjdk.org/leyden/commit/c11f36e6200b6c39fd59530f28e9318c4153db49 8356708: C2: loop strip mining expansion doesn't take sunk stores into account Reviewed-by: rcastanedalo, epeter ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp + test/hotspot/jtreg/compiler/loopstripmining/TestStoresSunkInOuterStripMinedLoop.java Changeset: ff54a649 Branch: hermetic-java-runtime Author: Doug Simon Date: 2025-06-20 13:25:38 +0000 URL: https://git.openjdk.org/leyden/commit/ff54a6493a63cfbcaab7ec90c7db0135e98a7f0c 8360049: CodeInvalidationReasonTest.java fails with ZGC on AArch64 Reviewed-by: aph, shade ! test/hotspot/jtreg/ProblemList-zgc.txt ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/TestHotSpotVMConfig.java Changeset: c6ab63d3 Branch: hermetic-java-runtime Author: Vladimir Petko Committer: SendaoYan Date: 2025-06-20 13:51:55 +0000 URL: https://git.openjdk.org/leyden/commit/c6ab63d306511c43622fc1f37e1aed6d8abaaa09 8359735: [Ubuntu 25.10] java/lang/ProcessBuilder/Basic.java, java/lang/ProcessHandle/InfoTest.java fail due to rust-coreutils Reviewed-by: rriggs ! test/jdk/java/lang/ProcessBuilder/Basic.java ! test/jdk/java/lang/ProcessHandle/InfoTest.java Changeset: 17cf4974 Branch: hermetic-java-runtime Author: William Kemper Date: 2025-06-20 17:08:08 +0000 URL: https://git.openjdk.org/leyden/commit/17cf49746d0c289bdf779c974cdc84a3ab32ab4b 8357550: GenShen crashes during freeze: assert(!chunk->requires_barriers()) failed Reviewed-by: kdnilsen, shade ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.hpp Changeset: 96f71a9a Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-06-20 19:48:41 +0000 URL: https://git.openjdk.org/leyden/commit/96f71a9a6bf7b52c50a1f52d4d401a48dc40480f 8255082: HotSpot Style Guide should permit noexcept Reviewed-by: kvn, dholmes, dcubed ! doc/hotspot-style.html ! doc/hotspot-style.md Changeset: d627282f Branch: hermetic-java-runtime Author: Daniel D. Daugherty Date: 2025-06-20 19:53:17 +0000 URL: https://git.openjdk.org/leyden/commit/d627282f0c42c340db3b8b71121274b91638e09b 8360143: ProblemList runtime/NMT/VirtualAllocTestType.java Reviewed-by: rriggs ! test/hotspot/jtreg/ProblemList.txt Changeset: 81985d42 Branch: hermetic-java-runtime Author: Phil Race Date: 2025-06-20 22:22:41 +0000 URL: https://git.openjdk.org/leyden/commit/81985d422d3a433c1248deec18e4fd9b9f780c2c 8358526: Clarify behavior of java.awt.HeadlessException constructed with no-args Reviewed-by: aivanov, honkar ! src/java.desktop/share/classes/java/awt/HeadlessException.java + test/jdk/java/awt/Headless/HeadlessExceptionTest.java Changeset: 6b439391 Branch: hermetic-java-runtime Author: Fei Yang Date: 2025-06-23 00:33:34 +0000 URL: https://git.openjdk.org/leyden/commit/6b4393917ae689818d67fcaf9cc61ca16ea6d426 8359270: C2: alignment check should consider base offset when emitting arraycopy runtime call Reviewed-by: thartmann, kvn ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/stringopts.cpp + test/hotspot/jtreg/compiler/c2/irTests/stringopts/TestArrayCopySelect.java Changeset: 620df7ec Branch: hermetic-java-runtime Author: Anjian Wen Committer: Feilong Jiang Date: 2025-06-23 02:31:53 +0000 URL: https://git.openjdk.org/leyden/commit/620df7ec348598580884e3b9d45066495f0c40e5 8359801: RISC-V: Simplify Interpreter::profile_taken_branch Reviewed-by: fyang, fjiang ! src/hotspot/cpu/riscv/interp_masm_riscv.cpp ! src/hotspot/cpu/riscv/interp_masm_riscv.hpp ! src/hotspot/cpu/riscv/templateTable_riscv.cpp Changeset: de34bb8e Branch: hermetic-java-runtime Author: Srinivas Mandalika Committer: Abhishek Kumar Date: 2025-06-23 04:54:43 +0000 URL: https://git.openjdk.org/leyden/commit/de34bb8e66253cef90ba79831dadec0252595b35 8359687: Use PassFailJFrame for java/awt/print/Dialog/DialogType.java Reviewed-by: abhiscxk, aivanov ! test/jdk/java/awt/print/Dialog/DialogType.java Changeset: 3d35b408 Branch: hermetic-java-runtime Author: Johan Sj?len Date: 2025-06-23 07:05:33 +0000 URL: https://git.openjdk.org/leyden/commit/3d35b408e1e69d7e3953af142c5bf606691fbeb8 8357220: Introduce a BSMAttributeEntry struct Co-authored-by: John R Rose Reviewed-by: sspitsyn, coleenp, matsaave ! src/hotspot/share/cds/aotConstantPoolResolver.cpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/constantPool.hpp ! src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ConstantPool.java Changeset: 9ae39b62 Branch: hermetic-java-runtime Author: Manuel H?ssig Committer: Tobias Hartmann Date: 2025-06-23 07:47:17 +0000 URL: https://git.openjdk.org/leyden/commit/9ae39b62b91ffacc6473534d96679f3282c612cc 8355276: Sort C2 includes Reviewed-by: kvn, thartmann ! src/hotspot/share/opto/addnode.cpp ! src/hotspot/share/opto/block.cpp ! src/hotspot/share/opto/bytecodeInfo.cpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/callGenerator.cpp ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/castnode.cpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/classes.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/divnode.cpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/gcm.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/idealKit.hpp ! src/hotspot/share/opto/ifnode.cpp ! src/hotspot/share/opto/intrinsicnode.cpp ! src/hotspot/share/opto/intrinsicnode.hpp ! src/hotspot/share/opto/lcm.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/library_call.hpp ! src/hotspot/share/opto/loopPredicate.cpp ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/macroArrayCopy.cpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/mempointer.cpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/opto/printinlining.cpp ! src/hotspot/share/opto/printinlining.hpp ! src/hotspot/share/opto/rangeinference.hpp ! src/hotspot/share/opto/runtime.cpp ! src/hotspot/share/opto/superword.cpp ! src/hotspot/share/opto/superwordVTransformBuilder.hpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/vectorization.hpp ! src/hotspot/share/opto/vectornode.cpp ! src/hotspot/share/opto/vtransform.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: c220b135 Branch: hermetic-java-runtime Author: Beno?t Maillard Committer: Emanuel Peter Date: 2025-06-23 07:52:02 +0000 URL: https://git.openjdk.org/leyden/commit/c220b1358c91bce2eb7515e9f600004c7b975ee6 8356865: C2: Unreasonable values for debug flag FastAllocateSizeLimit can lead to left-shift-overflow, which is UB Reviewed-by: epeter, mhaessig ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/runtime/globals.hpp + test/hotspot/jtreg/compiler/arguments/TestFastAllocateSizeLimit.java Changeset: ad1033d6 Branch: hermetic-java-runtime Author: Dingli Zhang Committer: Feilong Jiang Date: 2025-06-23 08:02:40 +0000 URL: https://git.openjdk.org/leyden/commit/ad1033d68f4dd030cad27f9868d4fa83b5080bcd 8360169: Problem list CodeInvalidationReasonTest.java on linux-riscv64 until JDK-8360168 is fixed Reviewed-by: fyang, fjiang, syan, dnsimon ! test/hotspot/jtreg/ProblemList.txt Changeset: 516197f5 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-23 08:27:13 +0000 URL: https://git.openjdk.org/leyden/commit/516197f50b079978a4aa1593744cef9d56e01c67 8359924: Deprecate and obsolete ParallelRefProcEnabled Reviewed-by: tschatzl, kbarrett, dholmes ! src/hotspot/share/gc/shared/gc_globals.hpp ! src/hotspot/share/runtime/arguments.cpp ! src/java.base/share/man/java.md Changeset: fe7ec312 Branch: hermetic-java-runtime Author: Andrey Turbanov Date: 2025-06-23 08:32:02 +0000 URL: https://git.openjdk.org/leyden/commit/fe7ec312590ed9f70e6caad4ef454123138bbbcf 8359996: Remove unnecessary List.indexOf key from Track.remove Reviewed-by: aivanov, liach, azvegint ! src/java.desktop/share/classes/javax/sound/midi/Track.java Changeset: 251f2ac7 Branch: hermetic-java-runtime Author: Nikita Gubarkov Committer: Alexey Ushakov Date: 2025-06-23 10:52:07 +0000 URL: https://git.openjdk.org/leyden/commit/251f2ac785708a7ebf713d3fdc7d66317f1b2c2e 8355904: Use variadic macros for J2dTrace Reviewed-by: aivanov, serb, prr, avu ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/EncoderManager.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLBlitLoops.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLBufImgOps.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLClip.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLContext.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLGlyphCache.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLLayer.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLMaskFill.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLRenderQueue.h ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLRenderQueue.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLRenderer.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLSurfaceData.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLTextRenderer.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLTexurePool.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLVertexCache.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl/CGLGraphicsConfig.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl/CGLSurfaceData.m ! src/java.desktop/share/native/common/font/AccelGlyphCache.c ! src/java.desktop/share/native/common/java2d/opengl/OGLBlitLoops.c ! src/java.desktop/share/native/common/java2d/opengl/OGLBufImgOps.c ! src/java.desktop/share/native/common/java2d/opengl/OGLContext.c ! src/java.desktop/share/native/common/java2d/opengl/OGLFuncs.h ! src/java.desktop/share/native/common/java2d/opengl/OGLMaskFill.c ! src/java.desktop/share/native/common/java2d/opengl/OGLPaints.c ! src/java.desktop/share/native/common/java2d/opengl/OGLRenderQueue.c ! src/java.desktop/share/native/common/java2d/opengl/OGLRenderQueue.h ! src/java.desktop/share/native/common/java2d/opengl/OGLRenderer.c ! src/java.desktop/share/native/common/java2d/opengl/OGLSurfaceData.c ! src/java.desktop/share/native/common/java2d/opengl/OGLTextRenderer.c ! src/java.desktop/share/native/common/java2d/opengl/OGLVertexCache.c ! src/java.desktop/share/native/libawt/java2d/Trace.h ! src/java.desktop/share/native/libawt/java2d/loops/DrawParallelogram.c ! src/java.desktop/share/native/libawt/java2d/pipe/BufferedMaskBlit.c ! src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c ! src/java.desktop/unix/native/common/java2d/opengl/GLXGraphicsConfig.c ! src/java.desktop/unix/native/common/java2d/opengl/GLXSurfaceData.c ! src/java.desktop/unix/native/common/java2d/x11/X11SurfaceData.c ! src/java.desktop/unix/native/libawt_xawt/awt/awt_GraphicsEnv.c ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DBlitLoops.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DBufImgOps.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DContext.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DGlyphCache.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DGraphicsDevice.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DMaskCache.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DMaskFill.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DPaints.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DPipeline.h ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DPipelineManager.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DRenderQueue.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DRenderer.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DResourceManager.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DShaderGen.c ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DSurfaceData.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DTextRenderer.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DVertexCacher.cpp ! src/java.desktop/windows/native/libawt/java2d/opengl/WGLGraphicsConfig.c ! src/java.desktop/windows/native/libawt/java2d/opengl/WGLSurfaceData.c ! src/java.desktop/windows/native/libawt/java2d/windows/GDIRenderer.cpp ! src/java.desktop/windows/native/libawt/java2d/windows/GDIWindowSurfaceData.cpp ! src/java.desktop/windows/native/libawt/java2d/windows/WindowsFlags.cpp ! src/java.desktop/windows/native/libawt/windows/Devices.cpp ! src/java.desktop/windows/native/libawt/windows/awt_Toolkit.h ! src/java.desktop/windows/native/libawt/windows/awt_Win32GraphicsDevice.cpp ! src/java.desktop/windows/native/libawt/windows/awt_Win32GraphicsEnv.cpp Changeset: 10e6eec9 Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-23 11:09:11 +0000 URL: https://git.openjdk.org/leyden/commit/10e6eec9e63c89adc8078aeb27a368a80f793902 8360039: JFR: Improve parser logging of constants Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ChunkParser.java Changeset: 72679c94 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-23 12:46:32 +0000 URL: https://git.openjdk.org/leyden/commit/72679c94ee00c87b9b51233938e5ffa97ef825b1 8360042: GHA: Bump MSVC to 14.44 Reviewed-by: erikj, ihse ! .github/workflows/main.yml Changeset: c748d358 Branch: hermetic-java-runtime Author: Jonas Norlinder Committer: Thomas Schatzl Date: 2025-06-23 12:49:59 +0000 URL: https://git.openjdk.org/leyden/commit/c748d358b2569928fb5a03722987c93762c30145 8360024: Reorganize GC VM operations and implement is_gc_operation Reviewed-by: tschatzl, dholmes ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/gc/g1/g1VMOperations.cpp ! src/hotspot/share/gc/g1/g1VMOperations.hpp ! src/hotspot/share/gc/parallel/psVMOperations.cpp ! src/hotspot/share/gc/parallel/psVMOperations.hpp ! src/hotspot/share/gc/serial/serialVMOperations.hpp ! src/hotspot/share/gc/shared/gcVMOperations.cpp ! src/hotspot/share/gc/shared/gcVMOperations.hpp ! src/hotspot/share/gc/shenandoah/shenandoahVMOperations.hpp ! src/hotspot/share/gc/z/zGeneration.cpp ! src/hotspot/share/gc/z/zMark.cpp ! src/hotspot/share/runtime/vmOperation.hpp Changeset: dfcea054 Branch: hermetic-java-runtime Author: Justin Lu Date: 2025-06-23 14:26:02 +0000 URL: https://git.openjdk.org/leyden/commit/dfcea0547e7756a546fcf57855d99d46ecfb1925 8358729: jdk/internal/loader/URLClassPath/ClassnameCharTest.java depends on Applet Reviewed-by: jpai, lancea ! test/jdk/jdk/internal/loader/URLClassPath/ClassnameCharTest.java - test/jdk/jdk/internal/loader/URLClassPath/testclasses.jar Changeset: 9c3eaa49 Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-06-23 16:16:28 +0000 URL: https://git.openjdk.org/leyden/commit/9c3eaa49f7f8c6ade7319064566c0370e955f631 8359732: Make standard i/o encoding related system properties `StaticProperty` Reviewed-by: rriggs, alanb, vyazici ! src/java.base/share/classes/java/io/Console.java ! src/java.base/share/classes/java/lang/IO.java ! src/java.base/share/classes/jdk/internal/util/StaticProperty.java ! src/java.base/share/classes/sun/security/tools/keytool/Main.java ! src/java.base/share/classes/sun/security/util/ConsoleCallbackHandler.java ! src/java.security.jgss/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorMathLibrary.java Changeset: 6df0f5e3 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-06-23 18:19:01 +0000 URL: https://git.openjdk.org/leyden/commit/6df0f5e390ecf874c1eca7284c51efa65ce23737 8360281: VMError::error_string has incorrect format usage Reviewed-by: coleenp ! src/hotspot/share/utilities/vmError.cpp Changeset: 2a70a6dc Branch: hermetic-java-runtime Author: Nizar Benalla Date: 2025-06-23 22:24:57 +0000 URL: https://git.openjdk.org/leyden/commit/2a70a6dc58ebd0085c34fee899667758b827c55c 8346886: Add since checker test to jdk.management.jfr Reviewed-by: egahlin + test/jdk/tools/sincechecker/modules/jdk.management.jfr/JdkManagementJfrCheckSince.java Changeset: bcad87ea Branch: hermetic-java-runtime Author: Manukumar V S Committer: SendaoYan Date: 2025-06-24 02:20:49 +0000 URL: https://git.openjdk.org/leyden/commit/bcad87eacbd7fbfd3254479b7e061bab34e64aec 8358697: TextLayout/MyanmarTextTest.java passes if no Myanmar font is found Reviewed-by: aivanov ! test/jdk/java/awt/font/TextLayout/MyanmarTextTest.java Changeset: a350a111 Branch: hermetic-java-runtime Author: Chad Rakoczy Committer: SendaoYan Date: 2025-06-24 02:34:53 +0000 URL: https://git.openjdk.org/leyden/commit/a350a1115a32ae1aa013a22c05a009051a674793 8358655: AArch64: Simplify Interpreter::profile_taken_branch Reviewed-by: shade, aph ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp ! src/hotspot/cpu/aarch64/templateTable_aarch64.cpp Changeset: 34412da5 Branch: hermetic-java-runtime Author: Anjian Wen Committer: Feilong Jiang Date: 2025-06-24 03:08:50 +0000 URL: https://git.openjdk.org/leyden/commit/34412da52b41e9374168e67e3b6129576c8e4402 8360179: RISC-V: Only enable BigInteger intrinsics when AvoidUnalignedAccess == false Reviewed-by: fjiang, fyang ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/vm_version_riscv.cpp Changeset: 9af36b13 Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2025-06-24 05:19:18 +0000 URL: https://git.openjdk.org/leyden/commit/9af36b13c52b60274507a90874b8fb41fc3586f8 8360307: Problemlist tools/sincechecker/modules/jdk.management.jfr/JdkManagementJfrCheckSince.java Reviewed-by: dholmes, liach ! test/jdk/ProblemList.txt Changeset: dbbfa76b Branch: hermetic-java-runtime Author: Daniel Jeli?ski Date: 2025-06-24 06:09:17 +0000 URL: https://git.openjdk.org/leyden/commit/dbbfa76b7335291b4bb9d8de6e7db8e6cec144ce 8131136: java/awt/font/JNICheck/JNICheck.sh issue warning on core-libs code Reviewed-by: aivanov, prr, serb ! src/java.base/share/native/libnet/net_util.c ! test/jdk/java/awt/font/JNICheck/JNICheck.sh Changeset: f6ff38ab Branch: hermetic-java-runtime Author: Manuel H?ssig Date: 2025-06-24 06:55:05 +0000 URL: https://git.openjdk.org/leyden/commit/f6ff38ab4292762a35fb151b6886e58df60824d5 8353815: [ubsan] compilationPolicy.cpp: division by zero related to tiered compilation flags Reviewed-by: mbaesken, kvn ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/compiler/compiler_globals.hpp Changeset: 03d66d9e Branch: hermetic-java-runtime Author: Manuel H?ssig Date: 2025-06-24 07:00:45 +0000 URL: https://git.openjdk.org/leyden/commit/03d66d9ee239d77d54912f4fa3074560ac2a8101 8358572: C1 hits "need debug information" assert with -XX:-DeoptC1 Reviewed-by: shade, aph ! src/hotspot/share/c1/c1_Compilation.cpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_globals.hpp Changeset: 54fec2b9 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-24 07:34:15 +0000 URL: https://git.openjdk.org/leyden/commit/54fec2b98ba2197a588df37d805c3ad495fd0e61 8360220: Deprecate and obsolete ParallelRefProcBalancingEnabled Reviewed-by: kbarrett, tschatzl ! src/hotspot/share/gc/shared/gc_globals.hpp ! src/hotspot/share/runtime/arguments.cpp Changeset: fdfc5578 Branch: hermetic-java-runtime Author: David Beaumont Committer: Tobias Hartmann Date: 2025-06-24 08:09:53 +0000 URL: https://git.openjdk.org/leyden/commit/fdfc557878a7a2ec984002f38b871da5eec71217 8360131: Remove use of soon-to-be-removed APIs by CTW framework Reviewed-by: liach, thartmann ! test/hotspot/jtreg/testlibrary/ctw/src/sun/hotspot/tools/ctw/ClassPathJimageEntry.java ! test/hotspot/jtreg/testlibrary/ctw/src/sun/hotspot/tools/ctw/Utils.java Changeset: 116b8543 Branch: hermetic-java-runtime Author: Michael McMahon Date: 2025-06-24 09:15:58 +0000 URL: https://git.openjdk.org/leyden/commit/116b8543b04bfcf542af0ba03ac547a744600b7c 8351983: HttpCookie Parser Incorrectly Handles Cookies with Expires Attribute Reviewed-by: dfuchs, vyazici ! src/java.base/share/classes/java/net/HttpCookie.java + test/jdk/java/net/HttpCookie/whitebox/MaxAgeExpiresDriver.java + test/jdk/java/net/HttpCookie/whitebox/java.base/java/net/MaxAgeExpires.java Changeset: a3609ba5 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-24 10:34:14 +0000 URL: https://git.openjdk.org/leyden/commit/a3609ba5ac6a5531d905cdd136eea72706f9a028 8360324: Parallel: Remove unused local variable in MutableNUMASpace::set_top Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/mutableNUMASpace.cpp Changeset: f5201ac1 Branch: hermetic-java-runtime Author: Afshin Zafari Date: 2025-06-24 11:17:48 +0000 URL: https://git.openjdk.org/leyden/commit/f5201ac117fa66638f36cec3bc5f5059b37f2860 8359959: Test runtime/NMT/VirtualAllocTestType.java failed: '\\[0x[0]*7f7dc4043000 - 0x[0]*7f7dc4083000\\] reserved 256KB for Test' missing from stdout/stderr Reviewed-by: jsjolen, dholmes ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/runtime/NMT/VirtualAllocTestType.java Changeset: 28e96e33 Branch: hermetic-java-runtime Author: Coleen Phillimore Date: 2025-06-24 12:31:04 +0000 URL: https://git.openjdk.org/leyden/commit/28e96e333b61dfe60a84a48ff59bdf10c529f8be 8359920: Use names for frame types in stackmaps Reviewed-by: dholmes, jsjolen, matsaave, sspitsyn ! src/hotspot/share/classfile/stackMapTable.cpp ! src/hotspot/share/classfile/stackMapTable.hpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp Changeset: 0514cee6 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-06-24 14:27:47 +0000 URL: https://git.openjdk.org/leyden/commit/0514cee6c884b6d31735551b8a3ce7a2be661094 8360177: ParallelArguments::initialize has incorrect format string Reviewed-by: tschatzl, sangheki ! src/hotspot/share/gc/parallel/parallelArguments.cpp Changeset: 54acadbe Branch: hermetic-java-runtime Author: Gautham Krishnan Committer: Roger Riggs Date: 2025-06-24 14:53:14 +0000 URL: https://git.openjdk.org/leyden/commit/54acadbe668f6feced6eb9c28bcf46d1b3986eec 8294226: Document missing UnsupportedTemporalTypeException Reviewed-by: rriggs, naoto ! src/java.base/share/classes/java/time/chrono/ChronoLocalDate.java ! src/java.base/share/classes/java/time/chrono/ChronoLocalDateTime.java ! src/java.base/share/classes/java/time/chrono/ChronoZonedDateTime.java Changeset: 5c1f77fa Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-24 15:05:40 +0000 URL: https://git.openjdk.org/leyden/commit/5c1f77fab1f56e470157d8680310417924abb298 8360201: JFR: Initialize JfrThreadLocal::_sampling_critical_section Reviewed-by: zgu, mgronlun ! src/hotspot/share/jfr/support/jfrThreadLocal.cpp Changeset: 2af869b1 Branch: hermetic-java-runtime Author: Artur Barashev Date: 2025-06-24 15:32:13 +0000 URL: https://git.openjdk.org/leyden/commit/2af869b193017bbd8bec4cfef9f0870de6ec1285 8156715: TrustStoreManager does not buffer keystore input stream Reviewed-by: ascarpino ! src/java.base/share/classes/sun/security/ssl/TrustStoreManager.java Changeset: 9a726df3 Branch: hermetic-java-runtime Author: Hannes Walln?fer Date: 2025-06-24 15:48:31 +0000 URL: https://git.openjdk.org/leyden/commit/9a726df3731a22bdd4e768d83835aba9240967d2 8359024: Accessibility bugs in API documentation Reviewed-by: vyazici, liach ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Table.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/stylesheet.css ! test/langtools/jdk/javadoc/doclet/testNewApiList/TestNewApiList.java ! test/langtools/jdk/javadoc/doclet/testPreview/TestPreview.java Changeset: f8de5bc5 Branch: hermetic-java-runtime Author: Hannes Walln?fer Date: 2025-06-24 15:50:51 +0000 URL: https://git.openjdk.org/leyden/commit/f8de5bc5827742dd60b8f8f4a0d3625c370af15b 8328848: Inaccuracy in the documentation of the -group option Reviewed-by: liach ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties ! src/jdk.javadoc/share/man/javadoc.md Changeset: cbcf4011 Branch: hermetic-java-runtime Author: Markus Gr?nlund Date: 2025-06-24 16:11:40 +0000 URL: https://git.openjdk.org/leyden/commit/cbcf401170e0600e48ef74770eaa47c84c7e50b0 8360403: Disable constant pool ID assert during troubleshooting Reviewed-by: egahlin ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ConstantMap.java Changeset: ba0c1223 Branch: hermetic-java-runtime Author: David Beaumont Committer: Roger Riggs Date: 2025-06-24 18:40:24 +0000 URL: https://git.openjdk.org/leyden/commit/ba0c12231b0f5b680951e75765b5d292f31a2cbc 8359808: JavaRuntimeURLConnection should only connect to non-directory resources Reviewed-by: alanb, rriggs ! src/java.base/share/classes/sun/net/www/protocol/jrt/JavaRuntimeURLConnection.java ! test/jdk/sun/net/www/protocol/jrt/Basic.java Changeset: 50910576 Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2025-06-24 23:50:35 +0000 URL: https://git.openjdk.org/leyden/commit/509105761492ced0ecdc91aae464dcd016e2a4d7 8351010: Test java/io/File/GetXSpace.java failed: / usable space 56380809216 > free space 14912244940 Reviewed-by: lancea, rriggs ! test/jdk/java/io/File/GetXSpace.java Changeset: 7d6c902c Branch: hermetic-java-runtime Author: Xiaohong Gong Date: 2025-06-25 01:16:08 +0000 URL: https://git.openjdk.org/leyden/commit/7d6c902ce8ffb9b42c264ecff56d4b54206e101b 8357726: Improve C2 to recognize counted loops with multiple casts in trip counter Reviewed-by: chagedorn, epeter, galder ! src/hotspot/share/opto/loopnode.cpp + test/hotspot/jtreg/compiler/loopopts/TestCountedLoopCastIV.java + test/micro/org/openjdk/bench/vm/compiler/CountedLoopCastIV.java Changeset: 263e32bb Branch: hermetic-java-runtime Author: Amit Kumar Date: 2025-06-25 04:39:07 +0000 URL: https://git.openjdk.org/leyden/commit/263e32bb8507310dd4c9a4eca7f6e428303d3a53 8358694: VM asserts if CodeCacheSegmentSize is not a power of 2 Reviewed-by: shade, dfenacci ! src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.cpp + test/hotspot/jtreg/compiler/codecache/CodeCacheSegmentSizeTest.java Changeset: 5c4f92ba Branch: hermetic-java-runtime Author: Igor Veresov Date: 2025-06-25 06:45:32 +0000 URL: https://git.openjdk.org/leyden/commit/5c4f92ba9a2b820fa12920400c9037b5d3c37aa4 8359788: Internal Error: assert(get_instanceKlass()->is_loaded()) failed: must be at least loaded Reviewed-by: kvn, thartmann ! src/hotspot/share/oops/trainingData.hpp Changeset: 75ce44aa Branch: hermetic-java-runtime Author: Roman Kennke Date: 2025-06-25 08:09:03 +0000 URL: https://git.openjdk.org/leyden/commit/75ce44aa84ebf0f48dd73b98f2bf2d6077473ed1 8355319: Update Manpage for Compact Object Headers (Production) Reviewed-by: coleenp, dholmes, phh ! src/java.base/share/man/java.md Changeset: 850bc203 Branch: hermetic-java-runtime Author: Casper Norrbin Date: 2025-06-25 08:32:51 +0000 URL: https://git.openjdk.org/leyden/commit/850bc20306e5101d164566f9a8687707492b296b 8356868: Not all cgroup parameters are made available Reviewed-by: sgehwolf, gziemski ! src/hotspot/os/linux/cgroupSubsystem_linux.cpp ! src/hotspot/os/linux/cgroupSubsystem_linux.hpp ! src/hotspot/os/linux/cgroupV1Subsystem_linux.cpp ! src/hotspot/os/linux/cgroupV1Subsystem_linux.hpp ! src/hotspot/os/linux/cgroupV2Subsystem_linux.cpp ! src/hotspot/os/linux/cgroupV2Subsystem_linux.hpp ! src/hotspot/os/linux/osContainer_linux.cpp ! src/hotspot/os/linux/osContainer_linux.hpp ! src/hotspot/os/linux/os_linux.cpp ! test/hotspot/jtreg/containers/docker/TestMisc.java Changeset: f71d64fb Branch: hermetic-java-runtime Author: Martin Doerr Date: 2025-06-25 08:59:46 +0000 URL: https://git.openjdk.org/leyden/commit/f71d64fbeb0c196fd825241ff86d3a103d05a842 8360405: [PPC64] some environments don't support mfdscr instruction Reviewed-by: haosun, rrich ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/stubGenerator_ppc.cpp ! src/hotspot/cpu/ppc/vm_version_ppc.cpp ! src/hotspot/cpu/ppc/vm_version_ppc.hpp Changeset: 1fa09052 Branch: hermetic-java-runtime Author: Michael McMahon Date: 2025-06-25 09:45:57 +0000 URL: https://git.openjdk.org/leyden/commit/1fa090524a7c3bb5f2c92fb0f7217b9277ade9d9 8359268: 3 JNI exception pending defect groups in 2 files Reviewed-by: djelinski ! src/java.base/share/native/libnet/net_util.c ! src/java.base/share/native/libnet/net_util.h ! src/java.base/unix/native/libnet/net_util_md.c ! src/java.base/windows/native/libnet/Inet4AddressImpl.c ! src/java.base/windows/native/libnet/Inet6AddressImpl.c Changeset: f2ef8097 Branch: hermetic-java-runtime Author: Manuel H?ssig Date: 2025-06-25 13:00:08 +0000 URL: https://git.openjdk.org/leyden/commit/f2ef809719cbb14f90a0a5f673e10e7c74fa0f45 8354727: CompilationPolicy creates too many compiler threads when code cache space is scarce Co-authored-by: Aleksey Shipilev Reviewed-by: kvn, shade ! src/hotspot/share/compiler/compilationPolicy.cpp Changeset: 878497fb Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-06-25 15:16:44 +0000 URL: https://git.openjdk.org/leyden/commit/878497fb85b9f7d066829b745324028f9f8cdc60 8360178: TestArguments.atojulong gtest has incorrect format string Reviewed-by: dholmes ! test/hotspot/gtest/runtime/test_arguments.cpp Changeset: 4e1bf313 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-25 15:36:02 +0000 URL: https://git.openjdk.org/leyden/commit/4e1bf31368df9f6ba110a2b8c678cf1a22607535 8360523: Parallel: Remove unused local variable in MutableNUMASpace::initialize Reviewed-by: stefank, kbarrett ! src/hotspot/share/gc/parallel/mutableNUMASpace.cpp Changeset: 52c6044f Branch: hermetic-java-runtime Author: Suchismith Roy Committer: Albert Mingkun Yang Date: 2025-06-25 15:39:57 +0000 URL: https://git.openjdk.org/leyden/commit/52c6044fe48f2e964be4c4603a865143f0d43f90 8349077: Rename GenerationCounters::update_all Reviewed-by: ayang, stefank ! src/hotspot/share/gc/epsilon/epsilonMonitoringSupport.cpp ! src/hotspot/share/gc/g1/g1MonitoringSupport.cpp ! src/hotspot/share/gc/parallel/psOldGen.cpp ! src/hotspot/share/gc/parallel/psYoungGen.cpp ! src/hotspot/share/gc/serial/defNewGeneration.cpp ! src/hotspot/share/gc/serial/tenuredGeneration.cpp ! src/hotspot/share/gc/shared/generationCounters.cpp ! src/hotspot/share/gc/shared/generationCounters.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMonitoringSupport.cpp ! src/hotspot/share/gc/z/zServiceability.cpp Changeset: c90c31b0 Branch: hermetic-java-runtime Author: Paul Hohensee Date: 2025-06-25 15:52:30 +0000 URL: https://git.openjdk.org/leyden/commit/c90c31b07ef64eca65be5018a7757b960552f88a 8279005: sun/tools/jstat tests do not check for test case exit codes after JDK-8245129 Reviewed-by: cjplummer, rkennke ! test/jdk/sun/tools/jstat/jstatGcCapacityOutput1.sh ! test/jdk/sun/tools/jstat/jstatGcCauseOutput1.sh ! test/jdk/sun/tools/jstat/jstatGcMetaCapacityOutput1.sh ! test/jdk/sun/tools/jstat/jstatGcNewCapacityOutput1.sh ! test/jdk/sun/tools/jstat/jstatGcNewOutput1.sh ! test/jdk/sun/tools/jstat/jstatGcOldCapacityOutput1.sh ! test/jdk/sun/tools/jstat/jstatGcOldOutput1.sh ! test/jdk/sun/tools/jstat/jstatGcOutput1.sh ! test/jdk/sun/tools/jstat/jstatLineCounts1.sh ! test/jdk/sun/tools/jstat/jstatLineCounts2.sh ! test/jdk/sun/tools/jstat/jstatLineCounts3.sh ! test/jdk/sun/tools/jstat/jstatLineCounts4.sh ! test/jdk/sun/tools/jstat/lineCounts1.awk ! test/jdk/sun/tools/jstat/lineCounts2.awk ! test/jdk/sun/tools/jstat/lineCounts3.awk ! test/jdk/sun/tools/jstat/lineCounts4.awk Changeset: 74472764 Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-06-25 16:02:47 +0000 URL: https://git.openjdk.org/leyden/commit/744727647564ee79349380eb819fefc81ca7dc3a 8360045: StringTokenizer.hasMoreTokens() throws NPE after nextToken(null) Reviewed-by: liach, alanb ! src/java.base/share/classes/java/util/StringTokenizer.java + test/jdk/java/util/StringTokenizer/NextTokenWithNullDelimTest.java Changeset: 56c75453 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-06-25 18:22:06 +0000 URL: https://git.openjdk.org/leyden/commit/56c75453cd69e80b9411b4e1794c953998406342 8352565: Add native method implementation of Reference.get() Reviewed-by: vlivanov, tschatzl, lmesnik ! src/hotspot/share/c1/c1_Compiler.cpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_LIRGenerator.hpp ! src/hotspot/share/classfile/vmIntrinsics.cpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/abstractInterpreter.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.cpp ! src/hotspot/share/interpreter/zero/zeroInterpreterGenerator.cpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/library_call.hpp ! src/hotspot/share/prims/jvm.cpp ! src/java.base/share/classes/java/lang/ref/Reference.java ! src/java.base/share/native/libjava/Reference.c + test/hotspot/jtreg/gc/TestNativeReferenceGet.java Changeset: f799cf18 Branch: hermetic-java-runtime Author: Chen Liang Date: 2025-06-25 18:48:47 +0000 URL: https://git.openjdk.org/leyden/commit/f799cf180a00c6844a994c651852773a519dff2b 8360303: Remove two unused invoke files Reviewed-by: rriggs, jrose - src/java.base/share/classes/java/lang/invoke/InvokeDynamic.java ! src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java - src/java.base/share/classes/sun/invoke/empty/Empty.java ! src/java.base/share/classes/sun/invoke/util/VerifyType.java Changeset: 52526080 Branch: hermetic-java-runtime Author: Serguei Spitsyn Date: 2025-06-25 19:21:14 +0000 URL: https://git.openjdk.org/leyden/commit/52526080bae4fb69172d8c87403510aa4d3c8942 8225354: serviceability/jvmti/ModuleAwareAgents/ThreadStart failed with Didn't get ThreadStart events in VM early start phase! Reviewed-by: amenkov, cjplummer ! test/hotspot/jtreg/ProblemList.txt - test/hotspot/jtreg/serviceability/jvmti/ModuleAwareAgents/ThreadStart/MAAThreadStart.java - test/hotspot/jtreg/serviceability/jvmti/ModuleAwareAgents/ThreadStart/libMAAThreadStart.c Changeset: cf75f1f9 Branch: hermetic-java-runtime Author: Dean Long Date: 2025-06-25 19:25:34 +0000 URL: https://git.openjdk.org/leyden/commit/cf75f1f9c6d2bc70c7133cb81c73a0ce0946dff9 8358821: patch_verified_entry causes problems, use nmethod entry barriers instead Co-authored-by: Martin Doerr Co-authored-by: Amit Kumar Reviewed-by: mdoerr, eosterlund ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp ! src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp ! src/hotspot/cpu/arm/gc/shared/barrierSetAssembler_arm.cpp ! src/hotspot/cpu/arm/nativeInst_arm_32.cpp ! src/hotspot/cpu/arm/nativeInst_arm_32.hpp ! src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/nativeInst_ppc.cpp ! src/hotspot/cpu/ppc/nativeInst_ppc.hpp ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/riscv/nativeInst_riscv.cpp ! src/hotspot/cpu/riscv/nativeInst_riscv.hpp ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/s390/gc/shared/barrierSetAssembler_s390.cpp ! src/hotspot/cpu/s390/nativeInst_s390.cpp ! src/hotspot/cpu/s390/nativeInst_s390.hpp ! src/hotspot/cpu/s390/stubGenerator_s390.cpp ! src/hotspot/cpu/x86/c1_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/nativeInst_x86.cpp ! src/hotspot/cpu/x86/nativeInst_x86.hpp - src/hotspot/cpu/zero/nativeInst_zero.cpp ! src/hotspot/cpu/zero/nativeInst_zero.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp ! src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.cpp ! src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp ! src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp ! src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp ! src/hotspot/os_cpu/linux_riscv/os_linux_riscv.cpp ! src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/gc/shared/barrierSetNMethod.cpp ! src/hotspot/share/gc/shared/barrierSetNMethod.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp ! src/hotspot/share/gc/z/zBarrierSetNMethod.cpp ! src/hotspot/share/gc/z/zBarrierSetNMethod.hpp ! src/hotspot/share/gc/z/zMark.cpp ! src/hotspot/share/gc/z/zNMethod.cpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp Changeset: 1ca008fd Branch: hermetic-java-runtime Author: David Holmes Date: 2025-06-26 01:02:03 +0000 URL: https://git.openjdk.org/leyden/commit/1ca008fd02496dc33e2707c102560cae1690fba5 8360255: runtime/jni/checked/TestLargeUTF8Length.java fails with -XX:-CompactStrings Reviewed-by: shade, kbarrett ! test/hotspot/jtreg/runtime/jni/checked/TestLargeUTF8Length.java Changeset: 5039b42d Branch: hermetic-java-runtime Author: Anton Artemov Committer: David Holmes Date: 2025-06-26 07:41:22 +0000 URL: https://git.openjdk.org/leyden/commit/5039b42de170769797312969185ee9d67f34cf24 8359437: Make users and test suite not able to set LockingMode flag 8358542: Remove RTM test VMProps Co-authored-by: Fredrik Bredberg Reviewed-by: coleenp, lmesnik, fbredberg, alanb, dholmes ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/utilities/globalDefinitions.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/LockingMode.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Threads.java ! test/hotspot/jtreg/ProblemList-StaticJdk.txt ! test/hotspot/jtreg/TEST.groups ! test/hotspot/jtreg/compiler/locks/TestSynchronizeWithEmptyBlock.java - test/hotspot/jtreg/gtest/LockStackGtests.java ! test/hotspot/jtreg/runtime/Monitor/ConcurrentDeflation.java ! test/hotspot/jtreg/runtime/Monitor/StressWrapper_TestRecursiveLocking_36M.java ! test/hotspot/jtreg/runtime/Monitor/TestRecursiveLocking.java ! test/hotspot/jtreg/runtime/lockStack/TestLockStackCapacity.java ! test/hotspot/jtreg/runtime/locking/TestRecursiveMonitorChurn.java - test/hotspot/jtreg/runtime/vthread/JNIMonitor/JNIMonitor.java ! test/hotspot/jtreg/serviceability/jvmti/vthread/StopThreadTest/StopThreadTest.java ! test/jdk/com/sun/jdi/EATests.java ! test/jdk/java/lang/Thread/virtual/CarrierThreadInfo.java - test/jdk/java/lang/Thread/virtual/LockingMode.java ! test/jdk/java/lang/Thread/virtual/MiscMonitorTests.java ! test/jdk/java/lang/Thread/virtual/MonitorEnterExit.java ! test/jdk/java/lang/Thread/virtual/MonitorWaitNotify.java ! test/jdk/java/lang/Thread/virtual/Parking.java ! test/jdk/java/lang/Thread/virtual/RetryMonitorEnterWhenPinned.java ! test/jdk/java/lang/Thread/virtual/ThreadAPI.java ! test/jdk/java/lang/Thread/virtual/stress/LotsOfContendedMonitorEnter.java ! test/jdk/java/lang/Thread/virtual/stress/LotsOfUncontendedMonitorEnter.java ! test/jdk/java/lang/Thread/virtual/stress/Skynet100kWithMonitors.java ! test/jdk/java/util/concurrent/ConcurrentHashMap/MapLoops.java ! test/jdk/jdk/internal/vm/Continuation/Basic.java ! test/jdk/jdk/internal/vm/Continuation/Fuzz.java ! test/jtreg-ext/requires/VMProps.java Changeset: 5a1301df Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-06-26 09:15:32 +0000 URL: https://git.openjdk.org/leyden/commit/5a1301df19553c7ba04c746b4002164f3b833e70 8360548: Parallel: Remove outdated comments in MutableNUMASpace::bias_region Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/mutableNUMASpace.cpp Changeset: ff24088c Branch: hermetic-java-runtime Author: Doug Lea
Date: 2025-06-26 12:04:42 +0000 URL: https://git.openjdk.org/leyden/commit/ff24088c866864fa670bbfdd068b1a50b6bcf0db 8359919: Minor java.util.concurrent doc improvements 8187775: AtomicReferenceFieldUpdater does not support static fields 8254060: SubmissionPublisher close hangs if a publication is pending 8210149: Example in JavaDoc for java.util.concurrent.Flow violates Reactive Streams spec 8199501: Improve documentation of CompletableFuture, CompletionStage 8233050: CompletableFuture `whenComplete` and `thenApply` change exceptional result 8210312: JavaDoc example in SubmissionPublisher will potentially crash 8292365: CompletableFuture and CompletionStage should document Memory Model guarantees 8356304: Define "enabled" in ScheduledExecutorService 8353155: FutureTask#run(): doc implies synchronous, implementation is async 8186959: Clarify that Executors.newScheduledThreadPool() is fixed-size 8190889: TimeUnit.wait should document IllegalMonitorStateException 6351533: CyclicBarrier reset() should return the number of awaiters 6317534: CyclicBarrier should have a cancel() method 8195628: Documentation for lock(), trylock(), lockInterruptibly?() of ReentrantReadWriteLock.WriteLock needs to be corrected 8333172: Document a recommendation to use VarHandles instead of java.util.concurrent.atomic.*FieldUpdater 6374942: Improve thread safety of collection .equals() methods 7176957: ExecutorService submit method javaDoc enhancement 8172177: Improve documentation for CompletionException handling 6714849: ReentrantReadWriteLock: Abnormal behavior in non-fair mode 6625724: Allow ReentrantReadWriteLock to not track per-thread read holds 6526284: Improve AbstractExecutorService javadoc 8137156: Javadoc for Future is misleading with respect to cancellation 6663476: FutureTask.get() may return null if set() is not called from run() 8311131: ConcurrentHashMap.forEachKey parallelismThreshold description could be clearer Reviewed-by: alanb ! src/java.base/share/classes/java/util/concurrent/AbstractExecutorService.java ! src/java.base/share/classes/java/util/concurrent/CompletionStage.java ! src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java ! src/java.base/share/classes/java/util/concurrent/CyclicBarrier.java ! src/java.base/share/classes/java/util/concurrent/ExecutorService.java ! src/java.base/share/classes/java/util/concurrent/Executors.java ! src/java.base/share/classes/java/util/concurrent/Flow.java ! src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java ! src/java.base/share/classes/java/util/concurrent/Future.java ! src/java.base/share/classes/java/util/concurrent/FutureTask.java ! src/java.base/share/classes/java/util/concurrent/RunnableFuture.java ! src/java.base/share/classes/java/util/concurrent/ScheduledExecutorService.java ! src/java.base/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java ! src/java.base/share/classes/java/util/concurrent/SubmissionPublisher.java ! src/java.base/share/classes/java/util/concurrent/TimeUnit.java ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicLongFieldUpdater.java ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java ! src/java.base/share/classes/java/util/concurrent/locks/ReentrantReadWriteLock.java ! src/java.base/share/classes/java/util/concurrent/package-info.java Changeset: 8df6b2c4 Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2025-06-26 13:37:13 +0000 URL: https://git.openjdk.org/leyden/commit/8df6b2c4a355751cd8ca37cc5932be66bccaa123 8359830: Incorrect os.version reported on macOS Tahoe 26 (Beta) Reviewed-by: rriggs, lancea, kcr ! src/java.base/macosx/native/libjava/java_props_macosx.c ! test/jdk/java/lang/System/OsVersionTest.java Changeset: 7576064a Branch: hermetic-java-runtime Author: Damon Nguyen Date: 2025-06-26 14:09:27 +0000 URL: https://git.openjdk.org/leyden/commit/7576064a10c0f7a1fbfe88fc39254f32005d88f8 8359061: Update and ProblemList manual test java/awt/Cursor/CursorDragTest/ListDragCursor.java Reviewed-by: honkar, aivanov ! test/jdk/ProblemList.txt ! test/jdk/java/awt/Cursor/CursorDragTest/ListDragCursor.java Changeset: a0c3efa6 Branch: hermetic-java-runtime Author: Kelvin Nilsen Date: 2025-06-26 14:36:33 +0000 URL: https://git.openjdk.org/leyden/commit/a0c3efa6a80fe95e22faf5a732e42f1e1291fb4c 8359947: GenShen: use smaller TLABs by default Reviewed-by: phh, xpeng ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! test/hotspot/jtreg/gc/shenandoah/generational/TestOldGrowthTriggers.java Changeset: bd666f90 Branch: hermetic-java-runtime Author: Ivan Walulya Date: 2025-06-26 15:01:56 +0000 URL: https://git.openjdk.org/leyden/commit/bd666f90eb7325c5a8c51cb2b9c28e177c5fe3a3 8360522: G1: Flag constraint functions for G1SATBBufferSize and G1UpdateBufferSize are skipped during argument validation Reviewed-by: tschatzl, ayang ! src/hotspot/share/gc/g1/g1_globals.hpp Changeset: 7f702cf4 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-06-26 15:12:35 +0000 URL: https://git.openjdk.org/leyden/commit/7f702cf483018155a22a32736da8d80a11c9eca9 8360458: Rename Deferred<> to DeferredStatic<> and improve usage description Reviewed-by: jsikstro, jsjolen, stefank ! src/hotspot/share/nmt/memTracker.cpp ! src/hotspot/share/nmt/memTracker.hpp ! src/hotspot/share/nmt/memoryFileTracker.cpp ! src/hotspot/share/nmt/memoryFileTracker.hpp - src/hotspot/share/utilities/deferred.hpp + src/hotspot/share/utilities/deferredStatic.hpp + test/hotspot/gtest/utilities/test_deferredStatic.cpp Changeset: a49ecb26 Branch: hermetic-java-runtime Author: Jatin Bhateja Date: 2025-06-26 15:42:43 +0000 URL: https://git.openjdk.org/leyden/commit/a49ecb26c5ff2f949851937f3bb036d7946a103e 8352635: Improve inferencing of Float16 operations with constant inputs Reviewed-by: epeter, sviswanathan ! src/hotspot/share/opto/convertnode.cpp ! src/hotspot/share/opto/divnode.cpp ! src/hotspot/share/opto/subnode.cpp ! src/hotspot/share/opto/type.hpp ! test/hotspot/jtreg/compiler/c2/irTests/TestFloat16ScalarOperations.java ! test/hotspot/jtreg/compiler/lib/generators/Generators.java ! test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorOperations.java Changeset: 83fe688d Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-06-26 16:35:43 +0000 URL: https://git.openjdk.org/leyden/commit/83fe688d809ca783f8ebf6528a1cf4540d698fb1 8360554: Use the title from the JSON RFC for the @spec tag Reviewed-by: alanb, kevinw ! src/jdk.management/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java Changeset: 20e0055e Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-06-26 17:23:55 +0000 URL: https://git.openjdk.org/leyden/commit/20e0055e202e523b40e8b066e2f71c21d8cc5ea9 8344165: Trace exceptions with a complete call-stack Reviewed-by: coleenp, dholmes ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/utilities/exceptions.cpp ! src/hotspot/share/utilities/exceptions.hpp ! test/hotspot/jtreg/runtime/logging/ExceptionsTest.java ! test/hotspot/jtreg/runtime/logging/ExceptionsTest_options_file Changeset: 334683e6 Branch: hermetic-java-runtime Author: David Holmes Date: 2025-06-26 21:48:46 +0000 URL: https://git.openjdk.org/leyden/commit/334683e634c23a3672585e4309a528d0944d942e 8358645: Access violation in ThreadsSMRSupport::print_info_on during thread dump Reviewed-by: fbredberg, shade, dcubed ! src/hotspot/share/runtime/threadSMR.cpp Changeset: 8ea544c3 Branch: hermetic-java-runtime Author: Erik Gahlin Date: 2025-06-26 22:18:56 +0000 URL: https://git.openjdk.org/leyden/commit/8ea544c33fc502208577249fb83544f8d876bc17 8360287: JFR: PlatformTracer class should be loaded lazily Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/JDKEvents.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/settings/MethodSetting.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/PlatformTracer.java + test/jdk/jdk/jfr/event/tracing/TestLazyPlatformTracer.java Changeset: 6d05a1d3 Branch: hermetic-java-runtime Author: Luigi Montoya Committer: Erik Joelsson Date: 2025-06-27 06:11:33 +0000 URL: https://git.openjdk.org/leyden/commit/6d05a1d3f492b6f06b603ae2bb0d03dfb6c8b8f2 8357079: Fix Windows AArch64 DevKit Creation Reviewed-by: erikj, ihse ! make/devkit/createWindowsDevkit.sh Changeset: 01b15bc1 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2025-06-27 06:43:50 +0000 URL: https://git.openjdk.org/leyden/commit/01b15bc1f961f43ae11db0c15f45763c4ec4180b 8360518: Docker tests do not work when asan is configured Reviewed-by: sgehwolf ! 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/TestJcmdWithSideCar.java ! test/hotspot/jtreg/containers/docker/TestLimitsUpdating.java ! test/hotspot/jtreg/containers/docker/TestMemoryWithCgroupV1.java ! test/hotspot/jtreg/containers/docker/TestMemoryWithSubgroups.java ! test/hotspot/jtreg/containers/docker/TestMisc.java ! test/hotspot/jtreg/containers/docker/TestPids.java ! 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/TestDockerMemoryMetricsSubgroup.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 Changeset: 97ec9d3e Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2025-06-27 07:37:44 +0000 URL: https://git.openjdk.org/leyden/commit/97ec9d3e0a6e3455579b567e1f58026f5b168c09 8360533: ContainerRuntimeVersionTestUtils fromVersionString fails with some docker versions Reviewed-by: lucy, mdoerr, dholmes ! test/lib/jdk/test/lib/containers/docker/ContainerRuntimeVersionTestUtils.java Changeset: 20e983a9 Branch: hermetic-java-runtime Author: Andrey Turbanov Date: 2025-06-27 07:53:49 +0000 URL: https://git.openjdk.org/leyden/commit/20e983a97c66902c61ee2fa1959a7e612266732b 8360487: Remove unnecessary List.indexOf key from AbstractMidiDevice.TransmitterList.remove Reviewed-by: azvegint, serb, aivanov ! src/java.desktop/share/classes/com/sun/media/sound/AbstractMidiDevice.java Changeset: aa26cede Branch: hermetic-java-runtime Author: Qizheng Xing Committer: Stefan Karlsson Date: 2025-06-27 08:17:13 +0000 URL: https://git.openjdk.org/leyden/commit/aa26cede635011f5cc075cd528934ce8d8e8eef9 8360474: Add missing include guards for some HotSpot headers Reviewed-by: mhaessig, stefank, dholmes ! src/hotspot/os/aix/decoder_aix.hpp ! src/hotspot/share/gc/g1/g1SharedClosures.hpp ! src/hotspot/share/opto/library_call.hpp ! src/hotspot/share/utilities/packedTable.hpp Changeset: d8f9b188 Branch: hermetic-java-runtime Author: Coleen Phillimore Date: 2025-06-27 11:20:49 +0000 URL: https://git.openjdk.org/leyden/commit/d8f9b188fa488c9c6e343c62a148cfe9fc8a563b 8268406: Deallocate jmethodID native memory Reviewed-by: dholmes, sspitsyn, dcubed, eosterlund, aboldtch ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/nmt/memTag.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/instanceKlass.inline.hpp + src/hotspot/share/oops/jmethodIDTable.cpp + src/hotspot/share/oops/jmethodIDTable.hpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/method.hpp ! src/hotspot/share/prims/jniCheck.cpp ! src/hotspot/share/prims/jvmtiEnv.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/runtime/mutexLocker.cpp + test/hotspot/gtest/oops/test_jmethodIDTable.cpp Changeset: ecd2d830 Branch: hermetic-java-runtime Author: Evgeny Astigeevich Date: 2025-06-27 12:49:20 +0000 URL: https://git.openjdk.org/leyden/commit/ecd2d83096a1fea7d5086736306770bcffa4fdb6 8359435: AArch64: add support for SB instruction to MacroAssembler::spin_wait Reviewed-by: shade, aph ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/globals_aarch64.hpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/spin_wait_aarch64.hpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.hpp ! src/hotspot/os_cpu/bsd_aarch64/vm_version_bsd_aarch64.cpp ! src/hotspot/os_cpu/linux_aarch64/vm_version_linux_aarch64.cpp ! src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/aarch64/AArch64.java ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64.java Changeset: 839cede1 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2025-06-27 14:06:12 +0000 URL: https://git.openjdk.org/leyden/commit/839cede1a46b05d27abeaffbbd82c241910035cd 8357289: Break down the String constructor into smaller methods Reviewed-by: liach, rriggs ! src/java.base/share/classes/java/lang/String.java Changeset: a471fe99 Branch: hermetic-java-runtime Author: Artur Barashev Date: 2025-06-27 14:15:55 +0000 URL: https://git.openjdk.org/leyden/commit/a471fe992fc0d71ba65b5fdbcc44b97a2783b90a 8360539: DTLS handshakes fails due to improper cookie validation logic Reviewed-by: ascarpino, hchao ! src/java.base/share/classes/sun/security/ssl/HelloCookieManager.java Changeset: 12196baf Branch: hermetic-java-runtime Author: Kevin Walls Date: 2025-06-27 14:54:12 +0000 URL: https://git.openjdk.org/leyden/commit/12196baf6700d00c244747cfa22767e532a4a963 8358624: ImmutableDescriptor violates equals/hashCode contract after deserialization Reviewed-by: cjplummer, sspitsyn ! src/java.management/share/classes/javax/management/ImmutableDescriptor.java + test/jdk/javax/management/descriptor/ImmutableDescriptorSerialHashCodeTest.java Changeset: 4edf791a Branch: hermetic-java-runtime Author: Coleen Phillimore Date: 2025-06-27 16:11:41 +0000 URL: https://git.openjdk.org/leyden/commit/4edf791aecd432ecde00652acfaabddf136f4ca7 8295851: Do not use ttyLock in BytecodeTracer::trace Reviewed-by: dholmes, matsaave ! src/hotspot/share/interpreter/bytecodeTracer.cpp ! test/hotspot/jtreg/runtime/interpreter/TraceBytecodes.java Changeset: da7080ff Branch: hermetic-java-runtime Author: Alisen Chung Date: 2025-06-27 16:13:03 +0000 URL: https://git.openjdk.org/leyden/commit/da7080fffb2389465dc9afca6d02e9085fe15302 8359761: JDK 25 RDP1 L10n resource files update Reviewed-by: aivanov, almatvee, nbenalla, jlu, dnguyen, cstein, naoto ! src/demo/share/jfc/SwingSet2/resources/swingset_de.properties ! src/java.base/share/classes/sun/launcher/resources/launcher_de.properties ! src/java.base/share/classes/sun/launcher/resources/launcher_ja.properties ! src/java.base/share/classes/sun/launcher/resources/launcher_zh_CN.properties ! src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_de.properties ! src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_ja.properties ! src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_zh_CN.properties ! src/java.base/share/classes/sun/security/util/resources/auth_zh_CN.properties ! src/java.base/share/classes/sun/security/util/resources/security_ja.properties ! src/java.base/share/classes/sun/security/util/resources/security_zh_CN.properties ! src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_de.properties ! src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_ja.properties ! src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_zh_CN.properties ! src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java ! src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java ! src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_de.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_ja.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac_de.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac_ja.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/launcher_de.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/launcher_ja.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/launcher_zh_CN.properties ! src/jdk.compiler/share/classes/sun/tools/serialver/resources/serialver_de.properties ! src/jdk.compiler/share/classes/sun/tools/serialver/resources/serialver_ja.properties ! src/jdk.compiler/share/classes/sun/tools/serialver/resources/serialver_zh_CN.properties ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner_de.properties ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner_ja.properties ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner_zh_CN.properties ! src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_de.properties ! src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ja.properties ! src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_CN.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_de.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_ja.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_zh_CN.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_de.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_ja.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_zh_CN.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc_de.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc_ja.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc_zh_CN.properties ! src/jdk.jconsole/share/classes/sun/tools/jconsole/resources/messages_de.properties ! src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTYResources_de.java + src/jdk.jlink/share/classes/jdk/tools/jimage/resources/jimage_de.properties + src/jdk.jlink/share/classes/jdk/tools/jimage/resources/jimage_ja.properties + src/jdk.jlink/share/classes/jdk/tools/jimage/resources/jimage_zh_CN.properties ! src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_de.properties ! src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_ja.properties ! src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_zh_CN.properties ! src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod_de.properties ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/resources/LinuxResources_de.properties ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/resources/LinuxResources_ja.properties ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/resources/LinuxResources_zh_CN.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 ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/HelpResources_de.properties ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources_de.properties ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources_ja.properties ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources_zh_CN.properties ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_de.wxl ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_ja.wxl ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_zh_CN.wxl ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/WinResources_de.properties ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/WinResources_ja.properties ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/WinResources_zh_CN.properties ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_de.properties ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_ja.properties ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_zh_CN.properties Changeset: 712d866b Branch: hermetic-java-runtime Author: Chris Plummer Date: 2025-06-27 17:19:22 +0000 URL: https://git.openjdk.org/leyden/commit/712d866b72b43c839c57c3303dfb215f94c0db3b 8360312: Serviceability Agent tests fail with JFR enabled due to unknown thread type JfrRecorderThread Reviewed-by: sspitsyn, kevinw, dholmes ! src/hotspot/share/jfr/recorder/service/jfrRecorderThread.cpp ! src/hotspot/share/jfr/recorder/service/jfrRecorderThread.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Threads.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbJstackWithConcurrentLock.java Changeset: 3525a40f Branch: hermetic-java-runtime Author: Archie Cobbs Date: 2025-06-27 18:25:27 +0000 URL: https://git.openjdk.org/leyden/commit/3525a40f39a966b8592f694a9b3cd4c5dc449266 8359596: Behavior change when both -Xlint:options and -Xlint:-options flags are given Reviewed-by: mcimadamore, uschindler ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Lint.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Options.java + test/langtools/tools/javac/lint/LintOptions.java + test/langtools/tools/javac/lint/LintOptions.out Changeset: a23de2ec Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2025-06-27 19:10:02 +0000 URL: https://git.openjdk.org/leyden/commit/a23de2ec090628b52532ee5d9bd4364a97499f5b 8360478: libjsig related tier3 jtreg tests fail when asan is configured Reviewed-by: dholmes, ihse ! make/data/asan/asan_default_options.c Changeset: 240541e1 Branch: hermetic-java-runtime Author: Sergey Bylokhov Date: 2025-06-29 19:44:01 +0000 URL: https://git.openjdk.org/leyden/commit/240541e1c1e3aee633da08e7d12117b8ea38b8f4 8359266: Delete the usage of AppContext in the GraphicsDevice Reviewed-by: aivanov, azvegint ! src/java.desktop/share/classes/java/awt/GraphicsDevice.java + test/jdk/java/awt/GraphicsDevice/FullScreenWindowRace.java Changeset: 4dd1b3a6 Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2025-06-30 01:58:54 +0000 URL: https://git.openjdk.org/leyden/commit/4dd1b3a6100f9e379c7cee3c699d63d0d01144a7 8330940: Impossible to create a socket backlog greater than 200 on Windows 8+ Reviewed-by: michaelm, dfuchs, alanb ! src/java.base/windows/native/libnio/ch/Net.c + test/jdk/java/net/ServerSocket/LargeBacklogTest.java Changeset: c2d76f98 Branch: hermetic-java-runtime Author: Tobias Hartmann Date: 2025-06-30 05:41:37 +0000 URL: https://git.openjdk.org/leyden/commit/c2d76f9844aadf77a0b213a9169a7c5c8c8f1ffb 8361032: Problem list TestOnSpinWaitAArch64 until JDK-8360936 is fixed Reviewed-by: alanb ! test/hotspot/jtreg/ProblemList.txt Changeset: 00adbbe5 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2025-06-30 11:22:46 +0000 URL: https://git.openjdk.org/leyden/commit/00adbbe5538ec5c26dc5bd17ca94cc29db9bc478 8274051: Remove supports_vtime()/elapsedVTime() Reviewed-by: kbarrett, iwalulya ! 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 ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMarkThread.cpp ! src/hotspot/share/gc/g1/g1ConcurrentMarkThread.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMarkThread.inline.hpp ! src/hotspot/share/gc/g1/g1ConcurrentRefineThread.cpp ! src/hotspot/share/gc/g1/g1ConcurrentRefineThread.hpp ! src/hotspot/share/gc/g1/g1RemSetSummary.cpp ! src/hotspot/share/gc/g1/g1RemSetSummary.hpp ! src/hotspot/share/gc/g1/g1ServiceThread.cpp ! src/hotspot/share/gc/g1/g1ServiceThread.hpp ! src/hotspot/share/runtime/os.hpp Changeset: aa191119 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-06-30 12:55:36 +0000 URL: https://git.openjdk.org/leyden/commit/aa1911191cf8c2b855268a76baf0757909d66d1b 8360867: CTW: Disable inline cache verification Reviewed-by: kvn, thartmann ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/runtime/globals.hpp ! test/hotspot/jtreg/testlibrary/ctw/src/sun/hotspot/tools/ctw/CtwRunner.java Changeset: 5cc8fbb4 Branch: hermetic-java-runtime Author: Jiangli Zhou Date: 2025-06-30 10:36:27 +0000 URL: https://git.openjdk.org/leyden/commit/5cc8fbb40df692020da52d89560a233f4284fb88 Merge branch 'master' into hermetic-java-runtime ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/java.base/share/classes/sun/security/ssl/TrustStoreManager.java ! src/java.base/unix/native/libjava/childproc.c ! src/jdk.jlink/share/man/jmod.md ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/java.base/share/classes/sun/security/ssl/TrustStoreManager.java ! src/java.base/unix/native/libjava/childproc.c ! src/jdk.jlink/share/man/jmod.md From kvn at openjdk.org Mon Jun 30 17:38:56 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Mon, 30 Jun 2025 17:38:56 GMT Subject: RFR: [leyden] Do not enable -XX:AOTMode=on by default [v2] In-Reply-To: References: Message-ID: <4V60kOJK5zJdktm1YgMuMatav1F9nY7Q41uXfpVaFGU=.1be4e908-5a3d-416e-8f74-1d2f21e652c9@github.com> On Mon, 30 Jun 2025 15:29:36 GMT, Ioi Lam wrote: >> During early Leyden development, we decided to make `-XX:AOTMode=on` the default to make it easier to diagnose mismatches between training and production runs. However, this make it impossible to run the `make test JTREG=AOT_JDK...` tests: >> >> >> $ make test JTREG=AOT_JDK=onestep TEST=open/test/hotspot/jtreg/runtime/invokedynamic >> [...] >> Running test 'jtreg:open/test/hotspot/jtreg/runtime/invokedynamic' >> [0.010s][error][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details. >> [0.010s][error][aot] Mismatched values for property jdk.module.addexports: java.base/jdk.internal.foreign=ALL-UNNAMED,java.base/jdk.internal.misc=ALL-UNNAMED specified during runtime but not during dump time >> [0.010s][error][aot] Disabling optimized module handling >> [0.010s][error][aot] AOT cache has aot-linked classes. It cannot be used when archived full module graph is not used. >> [0.011s][error][aot] Unable to map shared spaces >> failed to get JDK properties: >> >> >> Now people should be familiar with using the AOT cache, so this nanny mode isn't necessary more. > > Ioi Lam has updated the pull request incrementally with one additional commit since the last revision: > > Fixed test failure I am working on merge from mainline. Please wait with integration. ------------- PR Comment: https://git.openjdk.org/leyden/pull/82#issuecomment-3020130851