From duke at openjdk.org Mon Sep 1 22:08:11 2025 From: duke at openjdk.org (duke) Date: Mon, 1 Sep 2025 22:08:11 GMT Subject: git: openjdk/leyden: hermetic-java-runtime: 72 new changesets Message-ID: <5a0bce2d-62e0-40c7-a165-155e63d8f321@openjdk.org> Changeset: 0d543293 Branch: hermetic-java-runtime Author: Dingli Zhang Committer: Feilong Jiang Date: 2025-08-27 02:15:02 +0000 URL: https://git.openjdk.org/leyden/commit/0d543293045d0037791774a1414ef279a1f6768b 8366127: RISC-V: compiler/intrinsics/TestVerifyIntrinsicChecks.java fails when running without RVV Reviewed-by: fyang, fjiang ! test/hotspot/jtreg/compiler/intrinsics/TestVerifyIntrinsicChecks.java Changeset: aaff9dec Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-08-27 04:27:43 +0000 URL: https://git.openjdk.org/leyden/commit/aaff9dec241e4d8eebefd6beaf287582621f315c 8362566: Use -Xlog:aot+map to print contents of existing AOT cache Reviewed-by: vlivanov, kvn + src/hotspot/share/cds/aotMapLogger.cpp + src/hotspot/share/cds/aotMapLogger.hpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveBuilder.hpp ! src/hotspot/share/cds/archiveHeapWriter.cpp ! src/hotspot/share/cds/archiveHeapWriter.hpp ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/oops/cpCache.hpp ! src/hotspot/share/oops/objArrayOop.hpp ! test/hotspot/jtreg/runtime/cds/CDSMapTest.java + test/hotspot/jtreg/runtime/cds/appcds/aotCache/AOTMapTest.java Changeset: 88c39793 Branch: hermetic-java-runtime Author: Johan Sj?len Date: 2025-08-27 07:55:57 +0000 URL: https://git.openjdk.org/leyden/commit/88c39793670f2d36490530993feb60e138f43a70 8365256: RelocIterator should use indexes instead of pointers Reviewed-by: kvn, dlong ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/relocInfo.cpp ! src/hotspot/share/code/relocInfo.hpp Changeset: b39c7369 Branch: hermetic-java-runtime Author: Joel Sikstr?m Date: 2025-08-27 09:08:13 +0000 URL: https://git.openjdk.org/leyden/commit/b39c73696d0421b218e301403d589af5a91b037f 8359683: ZGC: NUMA-Aware Relocation Reviewed-by: aboldtch, sjohanss ! src/hotspot/share/gc/z/zArray.hpp ! src/hotspot/share/gc/z/zArray.inline.hpp ! src/hotspot/share/gc/z/zForwarding.hpp ! src/hotspot/share/gc/z/zForwarding.inline.hpp ! src/hotspot/share/gc/z/zHeap.cpp ! src/hotspot/share/gc/z/zHeap.hpp ! src/hotspot/share/gc/z/zHeuristics.cpp ! src/hotspot/share/gc/z/zObjectAllocator.cpp ! src/hotspot/share/gc/z/zPage.inline.hpp ! src/hotspot/share/gc/z/zPageAllocator.cpp ! src/hotspot/share/gc/z/zPageAllocator.hpp ! src/hotspot/share/gc/z/zRelocate.cpp ! src/hotspot/share/gc/z/zRelocate.hpp ! src/hotspot/share/gc/z/zRelocationSet.hpp ! src/hotspot/share/gc/z/zRelocationSet.inline.hpp Changeset: 0ca38bdc Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-08-27 09:30:48 +0000 URL: https://git.openjdk.org/leyden/commit/0ca38bdc4d503158fda57bbc8bc9adc420628079 8365919: Replace currentTimeMillis with nanoTime in Stresser.java Reviewed-by: tschatzl, phh ! test/hotspot/jtreg/vmTestbase/nsk/share/test/Stresser.java Changeset: 19f0755c Branch: hermetic-java-runtime Author: Per Minborg Date: 2025-08-27 09:41:12 +0000 URL: https://git.openjdk.org/leyden/commit/19f0755c48e998b5b136ca58ea21eb3b54bc7b33 8365203: defineClass with direct buffer can cause use-after-free Reviewed-by: jpai ! src/java.base/share/classes/java/lang/ClassLoader.java + test/jdk/java/lang/ClassLoader/defineClass/TestGuardByteBuffer.java Changeset: 32df2d17 Branch: hermetic-java-runtime Author: Hamlin Li Date: 2025-08-27 10:15:25 +0000 URL: https://git.openjdk.org/leyden/commit/32df2d17f3c0407ad7e90eacfdc0fd7a65f67551 8365772: RISC-V: correctly prereserve NaN payload when converting from float to float16 in vector way Reviewed-by: fyang, rehn ! src/hotspot/cpu/riscv/assembler_riscv.hpp ! src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp ! test/hotspot/jtreg/compiler/vectorization/TestFloatConversionsVectorNaN.java Changeset: 124575b4 Branch: hermetic-java-runtime Author: Ivan Walulya Date: 2025-08-27 11:45:43 +0000 URL: https://git.openjdk.org/leyden/commit/124575b4c2b52328a8efddb40e67057a53b44a04 8359348: G1: Improve cpu usage measurements for heap sizing Reviewed-by: tschatzl, ayang, manc ! src/hotspot/share/gc/g1/g1Analytics.cpp ! src/hotspot/share/gc/g1/g1Analytics.hpp ! src/hotspot/share/gc/g1/g1HeapSizingPolicy.cpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! test/hotspot/gtest/gc/g1/test_g1Analytics.cpp Changeset: 1d53ac30 Branch: hermetic-java-runtime Author: Chen Liang Date: 2025-08-27 14:25:39 +0000 URL: https://git.openjdk.org/leyden/commit/1d53ac30f1db88df9a97b63b3ff56d26975d3a57 8366028: MethodType::fromMethodDescriptorString should not throw UnsupportedOperationException for invalid descriptors Reviewed-by: jvernee ! src/java.base/share/classes/sun/invoke/util/BytecodeDescriptor.java ! test/jdk/java/lang/invoke/MethodTypeTest.java Changeset: 79cea6dd Branch: hermetic-java-runtime Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-08-27 14:37:39 +0000 URL: https://git.openjdk.org/leyden/commit/79cea6dd174c22f99b4cafc835e6c843c1b4ec38 8365975: Sort share/memory includes Reviewed-by: shade, ayang, jwaters ! src/hotspot/share/memory/allocation.cpp ! src/hotspot/share/memory/arena.cpp ! src/hotspot/share/memory/classLoaderMetaspace.cpp ! src/hotspot/share/memory/heapInspection.hpp ! src/hotspot/share/memory/iterator.inline.hpp ! src/hotspot/share/memory/memRegion.cpp ! src/hotspot/share/memory/metadataFactory.hpp ! src/hotspot/share/memory/metaspace/blockTree.cpp ! src/hotspot/share/memory/metaspace/metablock.inline.hpp ! src/hotspot/share/memory/metaspace/virtualSpaceList.cpp ! src/hotspot/share/memory/metaspaceClosure.hpp ! src/hotspot/share/memory/resourceArea.inline.hpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: b43c2c66 Branch: hermetic-java-runtime Author: Manuel H?ssig Date: 2025-08-27 14:48:33 +0000 URL: https://git.openjdk.org/leyden/commit/b43c2c663567e59f8b5c84b1b45536078190605b 8366225: Linux Alpine (fast)debug build fails after JDK-8365909 Reviewed-by: mbaesken, thartmann ! src/hotspot/os/linux/compilerThreadTimeout_linux.cpp Changeset: f1c0b4ed Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2025-08-27 15:30:01 +0000 URL: https://git.openjdk.org/leyden/commit/f1c0b4ed722bf4cc5f262e804cec26d59ceb6e8b 8361495: (fc) Async close of streams connected to uninterruptible FileChannel doesn't throw AsynchronousCloseException in all cases Reviewed-by: alanb ! src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java + test/jdk/java/nio/channels/Channels/AsyncCloseStreams.java Changeset: bd4c0f4a Branch: hermetic-java-runtime Author: Nizar Benalla Date: 2025-08-27 15:30:17 +0000 URL: https://git.openjdk.org/leyden/commit/bd4c0f4a7da9122527dd25df74797c42deaced3c 8358618: UnsupportedOperationException constructors javadoc is not clear Reviewed-by: liach, aivanov, rriggs ! src/java.base/share/classes/java/lang/UnsupportedOperationException.java Changeset: 075ddef8 Branch: hermetic-java-runtime Author: Weijun Wang Date: 2025-08-27 17:49:17 +0000 URL: https://git.openjdk.org/leyden/commit/075ddef831f059cad1639bb6834a0923e725e15f 8364039: Adding implNote to DOMSignContext and DOMValidateContext on JDK-specific properties Reviewed-by: mullan ! src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/dom/DOMSignContext.java ! src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/dom/DOMValidateContext.java Changeset: 501e6aed Branch: hermetic-java-runtime Author: Axel Boldt-Christmas Date: 2025-08-28 05:02:25 +0000 URL: https://git.openjdk.org/leyden/commit/501e6aed4407d63b000320168dc5d0553ce8a23b 8366223: ZGC: ZPageAllocator::cleanup_failed_commit_multi_partition is broken Reviewed-by: stefank, jsikstro ! src/hotspot/share/gc/z/zPageAllocator.cpp ! src/hotspot/share/gc/z/zPhysicalMemoryManager.cpp ! src/hotspot/share/gc/z/z_globals.hpp + test/hotspot/jtreg/gc/z/TestCommitFailure.java Changeset: 443b1726 Branch: hermetic-java-runtime Author: Emanuel Peter Date: 2025-08-28 05:53:23 +0000 URL: https://git.openjdk.org/leyden/commit/443b17263876355ef508ae68ddad6c108de29db8 8324751: C2 SuperWord: Aliasing Analysis runtime check Reviewed-by: kvn, mhaessig ! src/hotspot/share/compiler/compilerDefinitions.cpp ! src/hotspot/share/opto/c2_globals.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/loopUnswitch.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/mempointer.cpp ! src/hotspot/share/opto/mempointer.hpp ! src/hotspot/share/opto/predicates.hpp ! src/hotspot/share/opto/superword.cpp ! src/hotspot/share/opto/superword.hpp ! src/hotspot/share/opto/superwordVTransformBuilder.cpp ! src/hotspot/share/opto/traceAutoVectorizationTag.hpp ! src/hotspot/share/opto/vectorization.cpp ! src/hotspot/share/opto/vectorization.hpp ! src/hotspot/share/opto/vtransform.cpp ! src/hotspot/share/opto/vtransform.hpp ! test/hotspot/jtreg/compiler/c2/irTests/TestVectorizationMismatchedAccess.java + test/hotspot/jtreg/compiler/loopopts/superword/TestAliasing.java + test/hotspot/jtreg/compiler/loopopts/superword/TestAliasingFuzzer.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestCyclicDependency.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestDependencyOffsets.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestMemorySegment.java + test/hotspot/jtreg/compiler/loopopts/superword/TestMemorySegmentAliasing.java + test/hotspot/jtreg/compiler/loopopts/superword/TestMemorySegment_8359688.java + test/hotspot/jtreg/compiler/loopopts/superword/TestMemorySegment_8360204.java + test/hotspot/jtreg/compiler/loopopts/superword/TestMemorySegment_8365982.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestSplitPacks.java ! test/hotspot/jtreg/compiler/vectorization/runner/LoopArrayIndexComputeTest.java + test/micro/org/openjdk/bench/vm/compiler/VectorAliasing.java Changeset: 57df267e Branch: hermetic-java-runtime Author: Manuel H?ssig Date: 2025-08-28 06:30:25 +0000 URL: https://git.openjdk.org/leyden/commit/57df267e4269b26f7450309b54c55ddee458f75c 8365262: [IR-Framework] Add simple way to add cross-product of flags Reviewed-by: bmaillard, epeter ! test/hotspot/jtreg/compiler/lib/ir_framework/README.md ! test/hotspot/jtreg/compiler/lib/ir_framework/TestFramework.java ! test/hotspot/jtreg/compiler/vectorization/TestFloatConversionsVector.java + test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestScenariosCrossProduct.java Changeset: ab1f2af4 Branch: hermetic-java-runtime Author: David Beaumont Committer: David Holmes Date: 2025-08-28 06:57:57 +0000 URL: https://git.openjdk.org/leyden/commit/ab1f2af4f0e9d3bea53f394413720c19fc7cae62 8366255: Remove 'package_to_module' function from imageFile.cpp Reviewed-by: rriggs, coleenp ! src/java.base/share/native/libjimage/imageFile.cpp ! src/java.base/share/native/libjimage/imageFile.hpp ! src/java.base/share/native/libjimage/jimage.cpp ! src/java.base/share/native/libjimage/jimage.hpp Changeset: d06c66f7 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2025-08-28 09:21:26 +0000 URL: https://git.openjdk.org/leyden/commit/d06c66f7f5a6d3c649c0a10ad735f0cc7c673b2a 8365055: G1: Merge Heap Roots phase incorrectly clears young gen remembered set every time Reviewed-by: kbarrett, iwalulya ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectionSet.cpp ! src/hotspot/share/gc/g1/g1Policy.hpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/g1YoungCollector.cpp Changeset: 7469a274 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2025-08-28 09:21:52 +0000 URL: https://git.openjdk.org/leyden/commit/7469a274bb70b2cdc8a47e62cc989f86766c605a 8365939: [Redo] G1: Move collection set related full gc reset code into abandon_collection_set() method Reviewed-by: ayang, iwalulya ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1FullCollector.cpp ! src/hotspot/share/gc/g1/g1HeapVerifier.cpp Changeset: a5a23400 Branch: hermetic-java-runtime Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-08-28 09:28:58 +0000 URL: https://git.openjdk.org/leyden/commit/a5a234005414a58f66c7e646a8f9b0042e9f9eec 8365053: Refresh hotspot precompiled.hpp with headers based on current frequency Reviewed-by: shade, ihse, erikj, qamai + make/scripts/update_pch.sh ! src/hotspot/share/precompiled/precompiled.hpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: b0f5b23e Branch: hermetic-java-runtime Author: Leo Korinth Date: 2025-08-28 11:37:48 +0000 URL: https://git.openjdk.org/leyden/commit/b0f5b23ed2a2f3b9d97754ced5382bb3fb3e8f40 8366145: G1: Help diagnose ubsan division by zero in computing pause time ratios (g1Analytics.cpp) Reviewed-by: tschatzl, kbarrett ! src/hotspot/share/gc/g1/g1Analytics.cpp Changeset: 5c78c7cd Branch: hermetic-java-runtime Author: Johan Sj?len Date: 2025-08-28 12:15:03 +0000 URL: https://git.openjdk.org/leyden/commit/5c78c7cd83d2d1ca1ba19151d6be40f5bd6077c8 8366341: [BACKOUT] JDK-8365256: RelocIterator should use indexes instead of pointers Reviewed-by: ayang ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/relocInfo.cpp ! src/hotspot/share/code/relocInfo.hpp Changeset: 8f864fd5 Branch: hermetic-java-runtime Author: Manuel H?ssig Date: 2025-08-28 12:48:29 +0000 URL: https://git.openjdk.org/leyden/commit/8f864fd5637762153f26af5121cabdf21e1ad798 8366222: TestCompileTaskTimeout causes asserts after JDK-8365909 Reviewed-by: chagedorn, thartmann ! test/hotspot/jtreg/compiler/arguments/TestCompileTaskTimeout.java Changeset: 79d8a34a Branch: hermetic-java-runtime Author: Alexey Ivanov Date: 2025-08-28 13:09:46 +0000 URL: https://git.openjdk.org/leyden/commit/79d8a34a92350680848052717c8a1d2a4c4331aa 8365708: Add missing @Override annotations to WindowsMenuItemUIAccessor Reviewed-by: serb, kizune ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsCheckBoxMenuItemUI.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsMenuItemUI.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsMenuUI.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsRadioButtonMenuItemUI.java Changeset: 22ae1374 Branch: hermetic-java-runtime Author: Alexey Ivanov Date: 2025-08-28 13:11:20 +0000 URL: https://git.openjdk.org/leyden/commit/22ae137400c711a4a991153b04b360a0df57bf0b 8365711: Declare menuBarHeight and hotTrackingOn private Reviewed-by: serb, prr, kizune ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsMenuUI.java Changeset: afa8e79b Branch: hermetic-java-runtime Author: Alexey Ivanov Date: 2025-08-28 13:13:10 +0000 URL: https://git.openjdk.org/leyden/commit/afa8e79ba1a76066cf969cb3b5f76ea804780872 8365615: Improve JMenuBar/RightLeftOrientation.java Reviewed-by: prr, psadhukhan ! test/jdk/javax/swing/JMenuBar/RightLeftOrientation.java Changeset: 8051aaf0 Branch: hermetic-java-runtime Author: Rui Li Committer: SendaoYan Date: 2025-08-28 13:54:03 +0000 URL: https://git.openjdk.org/leyden/commit/8051aaf0685f7bb23bf3e23d32ad45b0bffbce7b 8342640: GenShen: Silently ignoring ShenandoahGCHeuristics considered poor user-experience Reviewed-by: ysr, wkemper ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Changeset: 993babb3 Branch: hermetic-java-runtime Author: Mikhail Yankelevich Committer: SendaoYan Date: 2025-08-28 13:54:21 +0000 URL: https://git.openjdk.org/leyden/commit/993babb326f937dc1630a5a8fa5e469a64c51206 8365863: /test/jdk/sun/security/pkcs11/Cipher tests skip without SkippedException Reviewed-by: weijun, djelinski ! test/jdk/sun/security/pkcs11/Cipher/ReinitCipher.java ! test/jdk/sun/security/pkcs11/Cipher/Test4512704.java ! test/jdk/sun/security/pkcs11/Cipher/TestCICOWithGCM.java ! test/jdk/sun/security/pkcs11/Cipher/TestCICOWithGCMAndAAD.java ! test/jdk/sun/security/pkcs11/Cipher/TestChaChaPoly.java ! test/jdk/sun/security/pkcs11/Cipher/TestChaChaPolyKAT.java ! test/jdk/sun/security/pkcs11/Cipher/TestChaChaPolyNoReuse.java ! test/jdk/sun/security/pkcs11/Cipher/TestChaChaPolyOutputSize.java ! test/jdk/sun/security/pkcs11/Cipher/TestCipherMode.java ! test/jdk/sun/security/pkcs11/Cipher/TestGCMKeyAndIvCheck.java ! test/jdk/sun/security/pkcs11/Cipher/TestKATForGCM.java ! test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java ! test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java ! test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java ! test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphers.java ! test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java Changeset: 452b052f Branch: hermetic-java-runtime Author: Igor Veresov Date: 2025-08-28 15:45:17 +0000 URL: https://git.openjdk.org/leyden/commit/452b052fe343a70bc81bf299d08a9f06a1e30fe9 8365726: Test crashed with assert in C1 thread: Possible safepoint reached by thread that does not allow it Reviewed-by: dlong, shade ! src/hotspot/share/oops/trainingData.hpp ! src/hotspot/share/runtime/mutexLocker.cpp Changeset: 8c6d1225 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-08-28 15:58:50 +0000 URL: https://git.openjdk.org/leyden/commit/8c6d12250b524c0f4ee25dbbc6fe959581b7617b 8333783: java/nio/channels/FileChannel/directio/DirectIOTest.java is unstable with AV software Reviewed-by: bpb ! test/jdk/java/nio/channels/FileChannel/directio/DirectIOTest.java ! test/jdk/java/nio/channels/FileChannel/directio/libDirectIO.c Changeset: 33d00a77 Branch: hermetic-java-runtime Author: Hai-May Chao Date: 2025-08-28 16:36:14 +0000 URL: https://git.openjdk.org/leyden/commit/33d00a77f38ea16e4751b216a3bf98a620eb8055 8294035: Remove null ids checking from keytool -gencrl Reviewed-by: weijun ! src/java.base/share/classes/sun/security/tools/keytool/Main.java Changeset: aaac8c06 Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2025-08-28 17:38:09 +0000 URL: https://git.openjdk.org/leyden/commit/aaac8c0636e12c40c46170bf4989bd34bb577430 8366254: (fs) UnixException.translateToIOException should translate ELOOP to FileSystemLoopException Reviewed-by: vyazici, alanb ! src/java.base/unix/classes/sun/nio/fs/UnixException.java ! test/jdk/java/nio/file/Files/IsSameFile.java Changeset: 9f70965b Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-08-28 18:08:55 +0000 URL: https://git.openjdk.org/leyden/commit/9f70965bb9ead2268c02c688c79ec0d80574c725 8366193: Add comments about ResolvedFieldEntry::copy_from() Reviewed-by: adinn, coleenp ! src/hotspot/share/oops/resolvedFieldEntry.hpp ! src/hotspot/share/oops/resolvedIndyEntry.hpp ! src/hotspot/share/oops/resolvedMethodEntry.hpp Changeset: 05da2137 Branch: hermetic-java-runtime Author: Alexander Matveev Date: 2025-08-28 21:23:15 +0000 URL: https://git.openjdk.org/leyden/commit/05da2137f1cb6eef1cfc7693905daf789d315b5c 8362335: [macos] Change value of CFBundleDevelopmentRegion from "English" to "en-US" Reviewed-by: asemenyuk ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/ApplicationRuntime-Info.plist.template ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/Info-lite.plist.template ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/Runtime-Info.plist.template Changeset: b8cdf31a Branch: hermetic-java-runtime Author: Jaikiran Pai Date: 2025-08-29 00:46:53 +0000 URL: https://git.openjdk.org/leyden/commit/b8cdf31a2e52df857df2badb4f365454443dd89d 8365898: Specification of java.lang.module.ModuleDescriptor.packages() method can be improved Reviewed-by: alanb, liach ! src/java.base/share/classes/java/lang/module/ModuleDescriptor.java Changeset: a2da75a6 Branch: hermetic-java-runtime Author: Volkan Yazici Date: 2025-08-29 06:13:34 +0000 URL: https://git.openjdk.org/leyden/commit/a2da75a6b69f56be41741bffba2c6874a93dfa40 8362884: [GCC static analyzer] unix NetworkInterface.c addif leak on early returns Reviewed-by: dfuchs, mbaesken ! src/java.base/unix/native/libnet/NetworkInterface.c Changeset: 86d6a2e0 Branch: hermetic-java-runtime Author: Axel Boldt-Christmas Date: 2025-08-29 07:35:03 +0000 URL: https://git.openjdk.org/leyden/commit/86d6a2e05eb52ea2c603a06bce838a56d5ae507b 8366147: ZGC: ZPageAllocator::cleanup_failed_commit_single_partition may leak memory Reviewed-by: stefank, sjohanss, jsikstro ! src/hotspot/share/gc/z/zPageAllocator.cpp ! test/hotspot/jtreg/gc/z/TestCommitFailure.java Changeset: 937d61bf Branch: hermetic-java-runtime Author: Chen Liang Date: 2025-08-29 14:35:26 +0000 URL: https://git.openjdk.org/leyden/commit/937d61bfbaba61117076c78358570ec4c35c8c42 8364751: ConstantBootstraps.explicitCast contradictory specification for null-to-primitive Reviewed-by: jvernee, rriggs ! src/java.base/share/classes/java/lang/invoke/ConstantBootstraps.java - test/jdk/java/lang/constant/ConvertTest.java ! test/jdk/java/lang/invoke/condy/ConstantBootstrapsTest.java Changeset: ae960772 Branch: hermetic-java-runtime Author: Chen Liang Date: 2025-08-29 14:35:45 +0000 URL: https://git.openjdk.org/leyden/commit/ae9607725c8c6a1b2f2728dbb5f7993722497da7 8361614: Missing sub-int value validation in the Class-File API Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/AccessFlags.java ! src/java.base/share/classes/java/lang/classfile/ClassBuilder.java ! src/java.base/share/classes/java/lang/classfile/ClassFileVersion.java ! src/java.base/share/classes/java/lang/classfile/ClassModel.java ! src/java.base/share/classes/java/lang/classfile/ClassReader.java ! src/java.base/share/classes/java/lang/classfile/CodeBuilder.java ! src/java.base/share/classes/java/lang/classfile/FieldBuilder.java ! src/java.base/share/classes/java/lang/classfile/MethodBuilder.java ! src/java.base/share/classes/java/lang/classfile/TypeAnnotation.java ! src/java.base/share/classes/java/lang/classfile/attribute/CharacterRangeInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/InnerClassInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/LineNumberInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/MethodParameterInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleExportInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleOpenInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleRequireInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleResolutionAttribute.java ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPoolBuilder.java ! src/java.base/share/classes/java/lang/classfile/instruction/CharacterRange.java ! src/java.base/share/classes/java/lang/classfile/instruction/DiscontinuedInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/IncrementInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/LineNumber.java ! src/java.base/share/classes/java/lang/classfile/instruction/LoadInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/LocalVariable.java ! src/java.base/share/classes/java/lang/classfile/instruction/LocalVariableType.java ! src/java.base/share/classes/java/lang/classfile/instruction/StoreInstruction.java ! src/java.base/share/classes/java/lang/classfile/package-info.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPseudoInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AccessFlagsImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectClassBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectFieldBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectMethodBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/LineNumberImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ModuleAttributeBuilderImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java ! src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/UnboundAttribute.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java ! test/jdk/jdk/classfile/InstructionValidationTest.java - test/jdk/jdk/classfile/PreviewMinorVersionTest.java + test/jdk/jdk/classfile/SubIntValidationTest.java Changeset: d594ef3a Branch: hermetic-java-runtime Author: David Holmes Date: 2025-08-29 16:31:13 +0000 URL: https://git.openjdk.org/leyden/commit/d594ef3a3e013b84a392b6d64a54015adc8173cd 8366121: Hotspot Style Guide should document conventions for lock-free code Reviewed-by: stefank, ayang, jsjolen, jwaters, kvn, kbarrett ! doc/hotspot-style.html ! doc/hotspot-style.md Changeset: 849570a9 Branch: hermetic-java-runtime Author: Anthony Scarpino Date: 2025-08-29 17:04:37 +0000 URL: https://git.openjdk.org/leyden/commit/849570a94a3178da7899e5cd36400ef03ad9ae29 8365288: PEMDecoder should throw ClassCastException Reviewed-by: weijun ! src/java.base/share/classes/java/security/PEMDecoder.java ! test/jdk/java/security/PEM/PEMDecoderTest.java Changeset: d4ce630c Branch: hermetic-java-runtime Author: Chen Liang Date: 2025-08-29 20:44:09 +0000 URL: https://git.openjdk.org/leyden/commit/d4ce630cea267e746f7feb5124fe2ecd39d7e13a 8366399: Allow custom base reference for update_copyright_year.sh Reviewed-by: erikj ! make/scripts/update_copyright_year.sh Changeset: f23c1507 Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-08-30 02:20:44 +0000 URL: https://git.openjdk.org/leyden/commit/f23c150709fbd6d9b84261a7c99b67d7d08334b9 8366359: Test should throw SkippedException when there is no lpstat Reviewed-by: aivanov, prr ! test/jdk/javax/print/PrintServiceLookup/CountPrintServices.java Changeset: 0e739931 Branch: hermetic-java-runtime Author: Chen Liang Date: 2025-08-30 14:03:56 +0000 URL: https://git.openjdk.org/leyden/commit/0e7399318b6c33c03a72ed1fdfb671f8cd9342a3 8366264: tools/javac/launcher/SourceLauncherStackTraceTest.java does not cover the scenario for 8362237 Reviewed-by: cstein, jlahoda - test/langtools/tools/javac/launcher/SourceLauncherStackTraceTest.java ! test/langtools/tools/javac/launcher/SourceLauncherTest.java Changeset: 12e6a0b6 Branch: hermetic-java-runtime Author: Sergey Bylokhov Date: 2025-08-30 19:26:45 +0000 URL: https://git.openjdk.org/leyden/commit/12e6a0b6d0086caf156cf5513a604320c619b856 8366208: Unexpected exception in sun.java2d.cmm.lcms.LCMSImageLayout Reviewed-by: aivanov, prr ! src/java.desktop/share/classes/sun/java2d/cmm/lcms/LCMSImageLayout.java + test/jdk/sun/java2d/cmm/ColorConvertOp/FilterSemiCustomImages.java Changeset: 9339a6a2 Branch: hermetic-java-runtime Author: Francesco Andreuzzi Committer: Jaikiran Pai Date: 2025-08-31 00:35:09 +0000 URL: https://git.openjdk.org/leyden/commit/9339a6a23236e783e93f967cf6aba16c2f749fdd 8361593: Commented dead code in JDK-8342868 can be removed Reviewed-by: jlu, naoto, jwaters, jpai ! src/java.base/windows/native/libjava/HostLocaleProviderAdapter_md.c ! src/java.base/windows/native/libjava/TimeZone_md.c ! src/java.base/windows/native/libnet/NTLMAuthSequence.c Changeset: bdc39818 Branch: hermetic-java-runtime Author: Anass Baya Committer: Sergey Bylokhov Date: 2025-08-31 04:34:04 +0000 URL: https://git.openjdk.org/leyden/commit/bdc39818ce7b3c3bad10f4682a2a52fbb696f247 8361521: BogusFocusableWindowState.java fails with StackOverflowError on Linux Reviewed-by: aivanov, serb ! src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java ! test/jdk/ProblemList.txt ! test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java Changeset: 80ab094a Branch: hermetic-java-runtime Author: David Holmes Date: 2025-08-31 21:34:16 +0000 URL: https://git.openjdk.org/leyden/commit/80ab094a75a6474c33214e3347e08ea7b9177ec8 8347707: Standardise the use of os::snprintf and os::snprintf_checked Reviewed-by: kbarrett, fbredberg ! src/hotspot/cpu/aarch64/frame_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/arm/macroAssembler_arm.cpp ! src/hotspot/cpu/arm/vm_version_arm_32.cpp ! src/hotspot/cpu/ppc/vm_version_ppc.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/vm_version_riscv.cpp ! src/hotspot/cpu/s390/vm_version_s390.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/zero/frame_zero.cpp ! src/hotspot/cpu/zero/vm_version_zero.cpp ! src/hotspot/os/aix/attachListener_aix.cpp ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/aix/porting_aix.cpp ! src/hotspot/os/bsd/memMapPrinter_macosx.cpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/gc/z/zPhysicalMemoryBacking_linux.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_perf_linux.cpp ! src/hotspot/os/posix/attachListener_posix.cpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/posix/perfMemory_posix.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/os/windows/perfMemory_windows.cpp ! src/hotspot/os_cpu/linux_riscv/vm_version_linux_riscv.cpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/code/codeHeapState.cpp ! src/hotspot/share/compiler/compilationMemoryStatistic.cpp ! src/hotspot/share/gc/g1/g1YoungCollector.cpp ! src/hotspot/share/gc/shared/oopStorage.cpp ! src/hotspot/share/gc/shared/satbMarkQueue.cpp ! src/hotspot/share/jvmci/jvmciEnv.cpp ! src/hotspot/share/oops/compressedKlass.cpp ! src/hotspot/share/oops/generateOopMap.cpp ! src/hotspot/share/opto/idealGraphPrinter.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/os.hpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/utilities/forbiddenFunctions.hpp ! src/hotspot/share/utilities/virtualizationSupport.cpp ! test/hotspot/gtest/classfile/test_symbolTable.cpp ! test/hotspot/gtest/gtestMain.cpp ! test/hotspot/gtest/logging/test_asynclog.cpp ! test/hotspot/gtest/runtime/test_os_windows.cpp Changeset: 2427c901 Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-09-01 04:03:08 +0000 URL: https://git.openjdk.org/leyden/commit/2427c901b31dbdccc6f8f39404875a0140460479 8366024: Remove unnecessary InstanceKlass::cast() Reviewed-by: coleenp, dholmes ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/fieldLayoutBuilder.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/vmClasses.cpp ! src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp ! src/hotspot/share/jfr/leakprofiler/chains/edgeUtils.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/oops/klassVtable.hpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/vmStructs.cpp Changeset: a668f437 Branch: hermetic-java-runtime Author: Shaojin Wen Date: 2025-09-01 05:54:54 +0000 URL: https://git.openjdk.org/leyden/commit/a668f437e481d02cbb82d4f40dd14ec3a6036399 8365620: Using enhanced switch in MethodHandleDesc Reviewed-by: liach ! src/java.base/share/classes/java/lang/constant/MethodHandleDesc.java Changeset: 28942406 Branch: hermetic-java-runtime Author: Jan Lahoda Date: 2025-09-01 05:55:08 +0000 URL: https://git.openjdk.org/leyden/commit/28942406020881be79b7543105b9eb2a0dda429e 8177650: JShell tool: packages in classpath don't appear in completions Reviewed-by: asotona ! src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysisImpl.java ! test/langtools/jdk/jshell/Compiler.java ! test/langtools/jdk/jshell/CompletionSuggestionTest.java ! test/langtools/jdk/jshell/ReplToolTesting.java + test/langtools/jdk/jshell/ToolCompletionTest.java Changeset: 685da032 Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-09-01 06:25:45 +0000 URL: https://git.openjdk.org/leyden/commit/685da0323b27abda5ab0484f4c8abaaeeff882ea 8345810: Custom launchers must be linked with pthread to avoid dynamic linker issues Reviewed-by: asemenyuk, erikj, dholmes ! make/modules/jdk.jpackage/Lib.gmk ! make/test/JtregNativeJdk.gmk Changeset: 12dc568b Branch: hermetic-java-runtime Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-09-01 06:28:10 +0000 URL: https://git.openjdk.org/leyden/commit/12dc568b3d270e4ab6dcd07e1bcddbb024ad724a 8366331: Sort share/prims includes Reviewed-by: shade, lmesnik ! src/hotspot/share/prims/foreignGlobals.cpp ! src/hotspot/share/prims/foreignGlobals.inline.hpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiAgent.cpp ! src/hotspot/share/prims/jvmtiAgentList.cpp ! src/hotspot/share/prims/jvmtiEnv.cpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp ! src/hotspot/share/prims/jvmtiEnvBase.hpp ! src/hotspot/share/prims/jvmtiEventController.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/prims/jvmtiManageCapabilities.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/prims/jvmtiTagMap.cpp ! src/hotspot/share/prims/jvmtiTrace.cpp ! src/hotspot/share/prims/jvmtiUtil.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/prims/methodHandles.hpp ! src/hotspot/share/prims/nativeEntryPoint.cpp ! src/hotspot/share/prims/nativeLookup.cpp ! src/hotspot/share/prims/stackwalk.cpp ! src/hotspot/share/prims/unsafe.cpp ! src/hotspot/share/prims/vmstorage.hpp ! src/hotspot/share/prims/wbtestmethods/parserTests.cpp ! src/hotspot/share/prims/whitebox.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: 86f48ab5 Branch: hermetic-java-runtime Author: Jonas Norlinder Committer: Thomas Schatzl Date: 2025-09-01 06:35:10 +0000 URL: https://git.openjdk.org/leyden/commit/86f48ab559bb1749109217aaecd1203209a5be19 8366157: Clarify in man pages that only G1 and Parallel supports MaxGCPauseMillis Reviewed-by: tschatzl, sjohanss ! src/java.base/share/man/java.md Changeset: ba90ccc6 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2025-09-01 06:46:23 +0000 URL: https://git.openjdk.org/leyden/commit/ba90ccc6a8ca7b0b728568ea614470c85a5f7f8a 8362516: Support of GCC static analyzer (-fanalyzer) Reviewed-by: erikj ! make/autoconf/configure.ac ! make/autoconf/jdk-options.m4 Changeset: a6e2a329 Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2025-09-01 06:48:48 +0000 URL: https://git.openjdk.org/leyden/commit/a6e2a329a07c71582ac696809fb5349c6a0b681c 8366092: [GCC static analyzer] UnixOperatingSystem.c warning: use of uninitialized value 'systemTicks' Reviewed-by: kevinw, asteiner ! src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c Changeset: dbac620b Branch: hermetic-java-runtime Author: Emanuel Peter Date: 2025-09-01 06:56:48 +0000 URL: https://git.openjdk.org/leyden/commit/dbac620b996713087f0d1b1189e543e51a0bb09f 8366357: C2 SuperWord: refactor VTransformNode::apply with VTransformApplyState Reviewed-by: chagedorn, kvn, mhaessig ! src/hotspot/share/opto/superword.cpp ! src/hotspot/share/opto/vtransform.cpp ! src/hotspot/share/opto/vtransform.hpp Changeset: d5d94db1 Branch: hermetic-java-runtime Author: Anton Artemov Committer: David Holmes Date: 2025-09-01 07:43:25 +0000 URL: https://git.openjdk.org/leyden/commit/d5d94db12a6d82a6fe9da18b5f8ce3733a6ee7e7 8357086: os::xxx functions returning memory size should return size_t Reviewed-by: stefank, dholmes ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/aix/os_aix.hpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/bsd/os_bsd.hpp ! src/hotspot/os/linux/cgroupSubsystem_linux.cpp ! src/hotspot/os/linux/cgroupUtil_linux.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_linux.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/os/windows/os_windows.hpp ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/gc/shared/gcInitLogger.cpp ! src/hotspot/share/gc/z/zLargePages.cpp ! src/hotspot/share/jfr/jni/jfrJniMethod.cpp ! src/hotspot/share/jfr/periodic/jfrPeriodic.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/os.hpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/services/management.cpp Changeset: a9f3cb23 Branch: hermetic-java-runtime Author: Axel Boldt-Christmas Date: 2025-09-01 07:47:44 +0000 URL: https://git.openjdk.org/leyden/commit/a9f3cb23d1802ef3d3042a7f521a0747f70bc732 8366462: Test gc/z/TestCommitFailure.java#Normal failed: expected output missing Reviewed-by: dholmes, eosterlund ! test/hotspot/jtreg/gc/z/TestCommitFailure.java Changeset: 48f70d7a Branch: hermetic-java-runtime Author: Anton Artemov Committer: David Holmes Date: 2025-09-01 07:50:35 +0000 URL: https://git.openjdk.org/leyden/commit/48f70d7ad85dde49cc8134d4ac0312978a5cc9f7 8361370: runtime/Thread/TestThreadDumpMonitorContention.java fails due to time out on Windows Reviewed-by: dholmes, amenkov ! test/hotspot/jtreg/runtime/Thread/TestThreadDumpMonitorContention.java Changeset: 3ca44c8d Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2025-09-01 08:03:34 +0000 URL: https://git.openjdk.org/leyden/commit/3ca44c8dea035588070644e5c1f8f25559f66e53 8364352: Some tests fail when using a limited number of pregenerated .jsa CDS archives Reviewed-by: dholmes, stuefe ! test/hotspot/jtreg/TEST.ROOT ! test/hotspot/jtreg/runtime/CompressedOops/CompressedCPUSpecificClassSpaceReservation.java ! test/hotspot/jtreg/runtime/cds/TestDefaultArchiveLoading.java ! test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java ! test/jtreg-ext/requires/VMProps.java Changeset: fe4c7a04 Branch: hermetic-java-runtime Author: Jayathirth D V Date: 2025-09-01 08:07:08 +0000 URL: https://git.openjdk.org/leyden/commit/fe4c7a0429a2cf9ef47701d68d0852ce44e1a9ab 8364135: JPEGImageReader.getImageTypes() should throw exception for negative image index Reviewed-by: aivanov, prr, psadhukhan ! src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java + test/jdk/javax/imageio/plugins/jpeg/JpegNegativeImageIndexTest.java Changeset: 56713817 Branch: hermetic-java-runtime Author: Emanuel Peter Date: 2025-09-01 08:47:19 +0000 URL: https://git.openjdk.org/leyden/commit/56713817c0fd060f7106a538b0e795081f4f9d4b 8366361: C2 SuperWord: rename VTransformNode::set_req -> init_req, analogue to Node::init_req Reviewed-by: kvn, chagedorn ! src/hotspot/share/opto/superwordVTransformBuilder.cpp ! src/hotspot/share/opto/superwordVTransformBuilder.hpp ! src/hotspot/share/opto/vtransform.hpp Changeset: dacd9af9 Branch: hermetic-java-runtime Author: Volkan Yazici Date: 2025-09-01 08:50:08 +0000 URL: https://git.openjdk.org/leyden/commit/dacd9af9a02464d2d6144e29d851216641e836c9 8329829: HttpClient: Add a BodyPublishers.ofFileChannel method Reviewed-by: dfuchs, jpai, michaelm ! src/java.net.http/share/classes/java/net/http/HttpRequest.java ! src/java.net.http/share/classes/jdk/internal/net/http/RequestPublishers.java ! src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java + test/jdk/java/net/httpclient/FileChannelPublisherTest.java Changeset: fc77e760 Branch: hermetic-java-runtime Author: Roberto Casta?eda Lozano Date: 2025-09-01 08:55:23 +0000 URL: https://git.openjdk.org/leyden/commit/fc77e7600f217cc91c24d4e512c685e176a66e4a 8365791: IGV: Update build dependencies Reviewed-by: chagedorn, ayang ! src/utils/IdealGraphVisualizer/pom.xml Changeset: 7f0cd648 Branch: hermetic-java-runtime Author: Bhavana Kilambi Committer: Aleksey Shipilev Date: 2025-09-01 09:18:29 +0000 URL: https://git.openjdk.org/leyden/commit/7f0cd6488ba969d5cffe8ebe9b95e4ad70982188 8361582: AArch64: Some ConH values cannot be replicated with SVE Reviewed-by: shade, epeter, aph ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/aarch64_vector.ad ! src/hotspot/cpu/aarch64/aarch64_vector_ad.m4 ! src/hotspot/cpu/aarch64/assembler_aarch64.cpp ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp + test/hotspot/jtreg/compiler/c2/aarch64/TestFloat16Replicate.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Changeset: 98af1892 Branch: hermetic-java-runtime Author: Johan Sj?len Date: 2025-09-01 09:24:52 +0000 URL: https://git.openjdk.org/leyden/commit/98af18921aa3c274ef7ece03005337b58df3da96 8366456: Allow AllocFailStrategy for RBTree Reviewed-by: cnorrbin, aboldtch ! src/hotspot/share/utilities/rbTree.hpp ! test/hotspot/gtest/utilities/test_rbtree.cpp Changeset: 5110d54d Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-09-01 13:08:53 +0000 URL: https://git.openjdk.org/leyden/commit/5110d54d938b7afbdf9cfbc4501674ef7bc1d518 8365922: Parallel: Group uses of GCTimeRatio to a single location Reviewed-by: tschatzl, phh ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/psAdaptiveSizePolicy.cpp ! src/hotspot/share/gc/parallel/psAdaptiveSizePolicy.hpp ! src/hotspot/share/gc/shared/adaptiveSizePolicy.cpp ! src/hotspot/share/gc/shared/adaptiveSizePolicy.hpp Changeset: 99223eea Branch: hermetic-java-runtime Author: Emanuel Peter Date: 2025-09-01 13:48:25 +0000 URL: https://git.openjdk.org/leyden/commit/99223eea03e2ed714f7a5408c356fdf06efc9200 8366427: C2 SuperWord: refactor VTransform scalar nodes Reviewed-by: mhaessig, chagedorn, kvn ! src/hotspot/share/opto/superwordVTransformBuilder.cpp ! src/hotspot/share/opto/superwordVTransformBuilder.hpp ! src/hotspot/share/opto/vtransform.cpp ! src/hotspot/share/opto/vtransform.hpp Changeset: b06459d3 Branch: hermetic-java-runtime Author: Kevin Walls Date: 2025-09-01 14:21:33 +0000 URL: https://git.openjdk.org/leyden/commit/b06459d3a83c13c0fbc7a0a7698435f17265982e 8364227: MBeanServer registerMBean throws NPE Reviewed-by: alanb ! src/java.management/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java + test/jdk/javax/management/MBeanServer/ExceptionTestNulls.java Changeset: d2b2bbf8 Branch: hermetic-java-runtime Author: Jiangli Zhou Date: 2025-09-01 15:04:40 +0000 URL: https://git.openjdk.org/leyden/commit/d2b2bbf847749be512b5db84c190a417c46a4584 Merge branch 'master' into hermetic-java-runtime ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/os.cpp ! src/java.base/share/native/libjimage/imageFile.cpp ! src/java.base/share/native/libjimage/imageFile.hpp ! src/java.base/share/native/libjimage/jimage.cpp ! src/java.base/share/native/libjimage/jimage.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/os.cpp ! src/java.base/share/native/libjimage/imageFile.cpp ! src/java.base/share/native/libjimage/imageFile.hpp ! src/java.base/share/native/libjimage/jimage.cpp ! src/java.base/share/native/libjimage/jimage.hpp From shade at openjdk.org Tue Sep 2 10:45:25 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 2 Sep 2025 10:45:25 GMT Subject: RFR: 8366681: [leyden] Precompile more C1 code Message-ID: Looking at how code goes through AOT+JIT pipeline, I believe we have several issues in the way we include the methods for precompilation. 1. AP4 code gets replaced by more efficient A4 code, which can then deopt. Once it does, we go back to the fully normal JIT pipeline, with C1 compiling, C2 compiling, etc. Training run currently does A2 versions only when there is a tier2/3 training data present. We can pessimistically assume that A4/AP4 method should have A2 method generated for the sake of quicker deopt. 2. I suspect a similar thing, but rarer, happens with A4 -> ... -> T1 transition when compiler queues are overloaded. We can generate A1 method for this case. 3. When training is done with default configuration, but at runtime we enable only C1, we summarily miss almost *all* AOT methods, because A1 methods are rarely generated with a normal tiered policy. Generating A1 methods always would be convenient for hybrid C2 AOT + C1 JIT modes as well. Overall, I think generating more C1 methods even when C2 methods are present in training is beneficial, as we prepare the ground for whatever corner case happens at runtime. Benchmarks show this improves performance model quite a bit. Since we now look at methods at all different tiers when deciding to precompile, compile IDs are not working all that well. I have rewritten that to use counters and method sizes. This seems to work well in practice. Additional testing: - [x] `javac` performance tests (see comments) - [x] Linux x86_64 server fastdebug, `runtime/cds` ------------- Commit messages: - Fix Changes: https://git.openjdk.org/leyden/pull/93/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=93&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8366681 Stats: 121 lines in 4 files changed: 64 ins; 27 del; 30 mod Patch: https://git.openjdk.org/leyden/pull/93.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/93/head:pull/93 PR: https://git.openjdk.org/leyden/pull/93 From shade at openjdk.org Tue Sep 2 10:45:25 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 2 Sep 2025 10:45:25 GMT Subject: RFR: 8366681: [leyden] Precompile more C1 code In-Reply-To: References: Message-ID: On Tue, 2 Sep 2025 10:29:33 GMT, Aleksey Shipilev wrote: > Looking at how code goes through AOT+JIT pipeline, I believe we have several issues in the way we include the methods for precompilation. > > 1. AP4 code gets replaced by more efficient A4 code, which can then deopt. Once it does, we go back to the fully normal JIT pipeline, with C1 compiling, C2 compiling, etc. Training run currently does A2 versions only when there is a tier2/3 training data present. We can pessimistically assume that A4/AP4 method should have A2 method generated for the sake of quicker deopt. > > 2. I suspect a similar thing, but rarer, happens with A4 -> ... -> T1 transition when compiler queues are overloaded. We can generate A1 method for this case. > > 3. When training is done with default configuration, but at runtime we enable only C1, we summarily miss almost *all* AOT methods, because A1 methods are rarely generated with a normal tiered policy. Generating A1 methods always would be convenient for hybrid C2 AOT + C1 JIT modes as well. > > Overall, I think generating more C1 methods even when C2 methods are present in training is beneficial, as we prepare the ground for whatever corner case happens at runtime. Benchmarks show this improves performance model quite a bit. > > Since we now look at methods at all different tiers when deciding to precompile, compile IDs are not working all that well. I have rewritten that to use counters and method sizes. This seems to work well in practice. > > Additional testing: > - [x] `javac` performance tests (see comments) > - [x] Linux x86_64 server fastdebug, `runtime/cds` Test results: Baselines: default and C1 only: Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC \ -cp JavacBenchApp.jar JavacBenchApp 50 Time (mean ? ?): 1.052 s ? 0.014 s [User: 3.694 s, System: 0.144 s] Range (min ? max): 1.029 s ? 1.091 s 30 runs Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC \ -XX:TieredStopAtLevel=1 \ -cp JavacBenchApp.jar JavacBenchApp 50 Time (mean ? ?): 795.4 ms ? 5.4 ms [User: 1469.7 ms, System: 109.0 ms] Range (min ? max): 787.3 ms ? 809.4 ms 30 runs Premain baseline: Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC \ -XX:AOTCache=app.aot \ -cp JavacBenchApp.jar JavacBenchApp 50 Time (mean ? ?): 584.4 ms ? 23.1 ms [User: 2177.1 ms, System: 156.4 ms] Range (min ? max): 540.6 ms ? 640.7 ms 30 runs Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC \ -XX:AOTCache=app.aot -XX:TieredStopAtLevel=1 \ -cp JavacBenchApp.jar JavacBenchApp 50 Time (mean ? ?): 893.6 ms ? 7.5 ms [User: 1670.2 ms, System: 70.2 ms] Range (min ? max): 881.5 ms ? 921.4 ms 30 runs Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC \ -XX:AOTCache=app.aot -XX:+UnlockExperimentalVMOptions -XX:+PreloadOnly \ -cp JavacBenchApp.jar JavacBenchApp 50 Time (mean ? ?): 474.7 ms ? 3.9 ms [User: 470.8 ms, System: 57.2 ms] Range (min ? max): 468.0 ms ? 482.5 ms 30 runs Premain fixed: Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC \ -XX:AOTCache=app.aot \ -cp JavacBenchApp.jar JavacBenchApp 50 Time (mean ? ?): 483.8 ms ? 8.7 ms [User: 1454.7 ms, System: 167.3 ms] Range (min ? max): 471.2 ms ? 510.4 ms 30 runs Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC \ -XX:AOTCache=app.aot -XX:TieredStopAtLevel=1 \ -cp JavacBenchApp.jar JavacBenchApp 50 Time (mean ? ?): 440.0 ms ? 3.6 ms [User: 469.2 ms, System: 69.5 ms] Range (min ? max): 434.4 ms ? 447.7 ms 30 runs Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC \ -XX:AOTCache=app.aot -XX:+UnlockExperimentalVMOptions -XX:+PreloadOnly \ -cp JavacBenchApp.jar JavacBenchApp 50 Time (mean ? ?): 435.8 ms ? 3.3 ms [User: 440.5 ms, System: 63.1 ms] Range (min ? max): 429.0 ms ? 441.7 ms 30 runs Note massive improvements in both out of the box and C1-only modes. Out of the box mode improves significantly, because there are unfortunate deopts from A4, which involve the compilers to generate new methods. It looks that pre-compiling A2 code allows this process to reach T4 code with fewer overheads. C1-only improves significantly, because now we have A1 methods in AOT cache. It even gets very close to C2-AOT-only (`+PreloadOnly`) mode! There are more things to do on that path: I have a patch that build on this and implements the hybrid C2 AOT + C1 JIT mode, beating all these configs by 25% more. I suspect a modest improvement to `+PreloadOnly` is likely due to new method sorting code that sorts by hotness. The downside is the size of AOTCache. For Javac test, the AOTCache grows from `54M` to `78M`. I would think this is a fair price for much flatter performance model, _and_ I think we need to deal with generated code density more thoroughly anyway. ------------- PR Comment: https://git.openjdk.org/leyden/pull/93#issuecomment-3244753665 PR Comment: https://git.openjdk.org/leyden/pull/93#issuecomment-3244762639 From duke at openjdk.org Tue Sep 2 23:16:04 2025 From: duke at openjdk.org (duke) Date: Tue, 2 Sep 2025 23:16:04 GMT Subject: git: openjdk/leyden: premain: Port 8365407: Race condition in MethodTrainingData::verify() Message-ID: <3fd495d5-2871-4ef2-9157-eef10a796955@openjdk.org> Changeset: ca21af49 Branch: premain Author: Igor Veresov Date: 2025-09-02 16:14:03 +0000 URL: https://git.openjdk.org/leyden/commit/ca21af49a1de66b623d5a7481877766e91543c7f Port 8365407: Race condition in MethodTrainingData::verify() And other minor fixes ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/compiler/compilationPolicy.hpp ! src/hotspot/share/compiler/recompilationPolicy.cpp ! src/hotspot/share/compiler/recompilationPolicy.hpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/oops/trainingData.hpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/runtime/threads.cpp From shade at openjdk.org Wed Sep 3 09:37:16 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 3 Sep 2025 09:37:16 GMT Subject: RFR: 8358343: [leyden] Drop notify_all in CompilationPolicyUtils::Queue::pop [v3] In-Reply-To: References: Message-ID: <5eIYgxx-1BF2ZvFkf_m-2ALjuANlXomT6bhbQjhphzE=.4edb57a1-2f36-4f34-8a3a-bbdb7bd2a93f@github.com> > 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 four additional commits since the last revision: - Coordinate with replay thread shutdown - Merge branch 'premain' into JDK-8358343-leyden-training-notify-all - 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/8af7ae69..f8c4debb Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=74&range=02 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=74&range=01-02 Stats: 182204 lines in 3878 files changed: 112334 ins; 45443 del; 24427 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 shade at openjdk.org Wed Sep 3 09:40:02 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 3 Sep 2025 09:40:02 GMT Subject: RFR: 8358343: [leyden] Drop notify_all in CompilationPolicyUtils::Queue::pop [v2] In-Reply-To: References: Message-ID: <2HDTg9a2xvn_lgYyeLbTWVvmsa8rhMf73-yvB9UopUQ=.987df439-a398-4b90-b956-e37ecfa37d68@github.com> 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 Dang, too late. I think this was fixed in `premain` with: https://github.com/openjdk/leyden/commit/ca21af49a1de66b623d5a7481877766e91543c7f ------------- PR Comment: https://git.openjdk.org/leyden/pull/74#issuecomment-3248479147 From shade at openjdk.org Wed Sep 3 09:40:02 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 3 Sep 2025 09:40:02 GMT Subject: Withdrawn: 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) This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/leyden/pull/74 From shade at openjdk.org Wed Sep 3 10:18:38 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 3 Sep 2025 10:18:38 GMT Subject: RFR: 8366681: [leyden] Precompile more C1 code [v2] In-Reply-To: References: Message-ID: > Looking at how code goes through AOT+JIT pipeline, I believe we have several issues in the way we include the methods for precompilation. > > 1. AP4 code gets replaced by more efficient A4 code, which can then deopt. Once it does, we go back to the fully normal JIT pipeline, with C1 compiling, C2 compiling, etc. Training run currently does A2 versions only when there is a tier2/3 training data present. We can pessimistically assume that A4/AP4 method should have A2 method generated for the sake of quicker deopt. > > 2. I suspect a similar thing, but rarer, happens with A4 -> ... -> T1 transition when compiler queues are overloaded. We can generate A1 method for this case. > > 3. When training is done with default configuration, but at runtime we enable only C1, we summarily miss almost *all* AOT methods, because A1 methods are rarely generated with a normal tiered policy. Generating A1 methods always would be convenient for hybrid C2 AOT + C1 JIT modes as well. > > Overall, I think generating more C1 methods even when C2 methods are present in training is beneficial, as we prepare the ground for whatever corner case happens at runtime. Benchmarks show this improves performance model quite a bit. > > Since we now look at methods at all different tiers when deciding to precompile, compile IDs are not working all that well. I have rewritten that to use counters and method sizes. This seems to work well in practice. > > Additional testing: > - [x] `javac` performance tests (see comments) > - [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 two additional commits since the last revision: - Merge branch 'premain' into JDK-8366681-precompile-more-c1 - Fix ------------- Changes: - all: https://git.openjdk.org/leyden/pull/93/files - new: https://git.openjdk.org/leyden/pull/93/files/0bdea338..fe24290f Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=93&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=93&range=00-01 Stats: 114 lines in 9 files changed: 36 ins; 30 del; 48 mod Patch: https://git.openjdk.org/leyden/pull/93.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/93/head:pull/93 PR: https://git.openjdk.org/leyden/pull/93 From shade at openjdk.org Wed Sep 3 14:43:16 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 3 Sep 2025 14:43:16 GMT Subject: RFR: 8366811: [leyden] Expose nmethod AOT entry in VMStructs Message-ID: <9k2f484zMyeGtpP4jNxxOTsEMYdfU8Y7IBeXw-uZoTU=.a7094501-9e30-43bb-b2f6-0c86aa4eb9c7@github.com> This is needed for external tools like async-profiler to disambiguate the frames that are executed with nmethod from AOT. I have an async-profiler branch that is able to access this and give us interesting flamegraphs. So I am sure this thing works. Additional testing: - [x] Linux x86_64 server fastdebug, `runtime/cds` ------------- Commit messages: - Fix builds - Fix Changes: https://git.openjdk.org/leyden/pull/94/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=94&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8366811 Stats: 3 lines in 1 file changed: 3 ins; 0 del; 0 mod Patch: https://git.openjdk.org/leyden/pull/94.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/94/head:pull/94 PR: https://git.openjdk.org/leyden/pull/94 From kvn at openjdk.org Wed Sep 3 15:40:09 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Wed, 3 Sep 2025 15:40:09 GMT Subject: RFR: 8366811: [leyden] Expose nmethod AOT entry in VMStructs In-Reply-To: <9k2f484zMyeGtpP4jNxxOTsEMYdfU8Y7IBeXw-uZoTU=.a7094501-9e30-43bb-b2f6-0c86aa4eb9c7@github.com> References: <9k2f484zMyeGtpP4jNxxOTsEMYdfU8Y7IBeXw-uZoTU=.a7094501-9e30-43bb-b2f6-0c86aa4eb9c7@github.com> Message-ID: On Wed, 3 Sep 2025 14:37:16 GMT, Aleksey Shipilev wrote: > This is needed for external tools like async-profiler to disambiguate the frames that are executed with nmethod from AOT. I have an async-profiler branch that is able to access this and give us interesting flamegraphs. So I am sure this thing works. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` Good. ------------- Marked as reviewed by kvn (Committer). PR Review: https://git.openjdk.org/leyden/pull/94#pullrequestreview-3181241864 From shade at openjdk.org Wed Sep 3 16:56:15 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 3 Sep 2025 16:56:15 GMT Subject: git: openjdk/leyden: premain: 8366811: [leyden] Expose nmethod AOT entry in VMStructs Message-ID: <192a2738-4cb7-4fef-8777-64f6cb49d361@openjdk.org> Changeset: 10346364 Branch: premain Author: Aleksey Shipilev Date: 2025-09-03 16:55:22 +0000 URL: https://git.openjdk.org/leyden/commit/10346364cb63c3b130731b282e6793bd85cebe4c 8366811: [leyden] Expose nmethod AOT entry in VMStructs Reviewed-by: kvn ! src/hotspot/share/runtime/vmStructs.cpp From shade at openjdk.org Wed Sep 3 16:57:59 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 3 Sep 2025 16:57:59 GMT Subject: RFR: 8366811: [leyden] Expose nmethod AOT entry in VMStructs In-Reply-To: <9k2f484zMyeGtpP4jNxxOTsEMYdfU8Y7IBeXw-uZoTU=.a7094501-9e30-43bb-b2f6-0c86aa4eb9c7@github.com> References: <9k2f484zMyeGtpP4jNxxOTsEMYdfU8Y7IBeXw-uZoTU=.a7094501-9e30-43bb-b2f6-0c86aa4eb9c7@github.com> Message-ID: <54-YZjqN8KJOsCLMWlvTeuSpkpY7BK4c6vJRBHszWiE=.9043216c-8ef7-4a9e-a908-3140678957b9@github.com> On Wed, 3 Sep 2025 14:37:16 GMT, Aleksey Shipilev wrote: > This is needed for external tools like async-profiler to disambiguate the frames that are executed with nmethod from AOT. I have an async-profiler branch that is able to access this and give us interesting flamegraphs. So I am sure this thing works. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` Thanks! Basic tests have finished in GHA, so I am integrating. ------------- PR Comment: https://git.openjdk.org/leyden/pull/94#issuecomment-3250025053 From shade at openjdk.org Wed Sep 3 16:57:59 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 3 Sep 2025 16:57:59 GMT Subject: Integrated: 8366811: [leyden] Expose nmethod AOT entry in VMStructs In-Reply-To: <9k2f484zMyeGtpP4jNxxOTsEMYdfU8Y7IBeXw-uZoTU=.a7094501-9e30-43bb-b2f6-0c86aa4eb9c7@github.com> References: <9k2f484zMyeGtpP4jNxxOTsEMYdfU8Y7IBeXw-uZoTU=.a7094501-9e30-43bb-b2f6-0c86aa4eb9c7@github.com> Message-ID: On Wed, 3 Sep 2025 14:37:16 GMT, Aleksey Shipilev wrote: > This is needed for external tools like async-profiler to disambiguate the frames that are executed with nmethod from AOT. I have an async-profiler branch that is able to access this and give us interesting flamegraphs. So I am sure this thing works. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` This pull request has now been integrated. Changeset: 10346364 Author: Aleksey Shipilev URL: https://git.openjdk.org/leyden/commit/10346364cb63c3b130731b282e6793bd85cebe4c Stats: 3 lines in 1 file changed: 3 ins; 0 del; 0 mod 8366811: [leyden] Expose nmethod AOT entry in VMStructs Reviewed-by: kvn ------------- PR: https://git.openjdk.org/leyden/pull/94 From shade at openjdk.org Wed Sep 3 16:59:46 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 3 Sep 2025 16:59:46 GMT Subject: RFR: 8366681: [leyden] Precompile more C1 code [v3] In-Reply-To: References: Message-ID: > Looking at how code goes through AOT+JIT pipeline, I believe we have several issues in the way we include the methods for precompilation. > > 1. AP4 code gets replaced by more efficient A4 code, which can then deopt. Once it does, we go back to the fully normal JIT pipeline, with C1 compiling, C2 compiling, etc. Training run currently does A2 versions only when there is a tier2/3 training data present. We can pessimistically assume that A4/AP4 method should have A2 method generated for the sake of quicker deopt. > > 2. I suspect a similar thing, but rarer, happens with A4 -> ... -> T1 transition when compiler queues are overloaded. We can generate A1 method for this case. > > 3. When training is done with default configuration, but at runtime we enable only C1, we summarily miss almost *all* AOT methods, because A1 methods are rarely generated with a normal tiered policy. Generating A1 methods always would be convenient for hybrid C2 AOT + C1 JIT modes as well. > > Overall, I think generating more C1 methods even when C2 methods are present in training is beneficial, as we prepare the ground for whatever corner case happens at runtime. Benchmarks show this improves performance model quite a bit. > > Since we now look at methods at all different tiers when deciding to precompile, compile IDs are not working all that well. I have rewritten that to use counters and method sizes. This seems to work well in practice. > > Additional testing: > - [x] `javac` performance tests (see comments) > - [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: - Merge branch 'premain' into JDK-8366681-precompile-more-c1 - Merge branch 'premain' into JDK-8366681-precompile-more-c1 - Fix ------------- Changes: - all: https://git.openjdk.org/leyden/pull/93/files - new: https://git.openjdk.org/leyden/pull/93/files/fe24290f..ee1e5672 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=93&range=02 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=93&range=01-02 Stats: 3 lines in 1 file changed: 3 ins; 0 del; 0 mod Patch: https://git.openjdk.org/leyden/pull/93.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/93/head:pull/93 PR: https://git.openjdk.org/leyden/pull/93 From asmehra at openjdk.org Wed Sep 3 23:37:32 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Wed, 3 Sep 2025 23:37:32 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately Message-ID: Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | and then the whole memory block is copied into the final buffer. This means the size of the temporary buffer needs to be a bit more than required. Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. This PR is an attempt to fix above issues. It does final assembly in following steps: 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer 2. Now the payload for the preload entries is marked 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer 4. Then add the payload for these entries 5. Finally add the search table | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. ------------- Commit messages: - Minor changes - Fix compile failure - Move the new code under UseNewCode flag - Store preload entries separately - Restore Method* for every AOTCodeEntry Changes: https://git.openjdk.org/leyden/pull/95/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=95&range=00 Stats: 384 lines in 4 files changed: 298 ins; 33 del; 53 mod Patch: https://git.openjdk.org/leyden/pull/95.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/95/head:pull/95 PR: https://git.openjdk.org/leyden/pull/95 From shade at openjdk.org Thu Sep 4 08:28:00 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 4 Sep 2025 08:28:00 GMT Subject: RFR: 8366681: [leyden] Precompile more C1 code [v3] In-Reply-To: References: Message-ID: <8iXLGB8qqJAaKgRNdzg6PfaLZ41Picxzh8aO_0719xE=.42acef39-4076-4454-a6d6-b17827c6ac9d@github.com> On Wed, 3 Sep 2025 16:59:46 GMT, Aleksey Shipilev wrote: >> Looking at how code goes through AOT+JIT pipeline, I believe we have several issues in the way we include the methods for precompilation. >> >> 1. AP4 code gets replaced by more efficient A4 code, which can then deopt. Once it does, we go back to the fully normal JIT pipeline, with C1 compiling, C2 compiling, etc. Training run currently does A2 versions only when there is a tier2/3 training data present. We can pessimistically assume that A4/AP4 method should have A2 method generated for the sake of quicker deopt. >> >> 2. I suspect a similar thing, but rarer, happens with A4 -> ... -> T1 transition when compiler queues are overloaded. We can generate A1 method for this case. >> >> 3. When training is done with default configuration, but at runtime we enable only C1, we summarily miss almost *all* AOT methods, because A1 methods are rarely generated with a normal tiered policy. Generating A1 methods always would be convenient for hybrid C2 AOT + C1 JIT modes as well. >> >> Overall, I think generating more C1 methods even when C2 methods are present in training is beneficial, as we prepare the ground for whatever corner case happens at runtime. Benchmarks show this improves performance model quite a bit. >> >> Since we now look at methods at all different tiers when deciding to precompile, compile IDs are not working all that well. I have rewritten that to use counters and method sizes. This seems to work well in practice. >> >> Additional testing: >> - [x] `javac` performance tests (see comments) >> - [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: > > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Fix Running other benchmarks shows improvement as well. It is mostly a wash when you have lots of CPUs available to absorb the compilation overhead. But when you constrain the resources, the JIT compilers start to compete with the application quite hard. I am seeing 5..10% improvements on the benchmarks with this change. spring-petclinic: $ ls -lah *.aot -rw-rw-r-- 1 shade shade 157M Sep 4 10:07 spring-petclinic.new.aot -rw-rw-r-- 1 shade shade 138M Sep 4 10:06 spring-petclinic.old.aot $ taskset -c 0-3 make ... compare_premain_builds Run,Old CDS + AOT,New CDS + AOT 1,1535,1442 2,1524,1437 3,1514,1434 4,1526,1434 5,1543,1434 6,1522,1442 7,1527,1431 8,1543,1432 9,1526,1441 10,1524,1441 Geomean,1528.37,1436.79 (-6.4%) Stdev,8.78,4.12 $ taskset -c 0-1 make ... compare_premain_builds Run,Old CDS + AOT,New CDS + AOT 1,1901,1847 2,1896,1838 3,1943,1809 4,1886,1743 5,1868,1787 6,1882,1847 7,1868,1777 8,1874,1781 9,1896,1758 10,1869,1803 Geomean,1888.18,1798.67 (-5.0%) Stdev,21.72,34.66 $ taskset -c 0-0 make ... compare_premain_builds Run,Old CDS + AOT,New CDS + AOT 1,3706,3418 2,3581,3361 3,3596,3368 4,3597,3312 5,3581,3361 6,3608,3373 7,3668,3391 8,3576,3432 9,3701,3443 10,3686,3343 Geomean,3629.65,3379.98 (-7.4%) Stdev,50.84,38.92 quarkus-getting-started: $ ls -lah *.aot -rw-rw-r-- 1 shade shade 47M Sep 4 10:02 quarkus-getting-started.new.aot -rw-rw-r-- 1 shade shade 42M Sep 4 10:02 quarkus-getting-started.old.aot $ taskset -c 0-3 make ... compare_premain_builds Run,Old CDS + AOT,New CDS + AOT 1,171,165 2,174,167 3,176,166 4,176,169 5,170,165 6,176,165 7,173,164 8,176,169 9,178,166 10,172,166 Geomean,174.18,166.19 (-4.8%) Stdev,2.48,1.60 $ taskset -c 0-1 make ... compare_premain_builds Run,Old CDS + AOT,New CDS + AOT 1,221,211 2,227,214 3,223,217 4,242,206 5,224,202 6,218,200 7,225,217 8,235,208 9,235,205 10,235,226 Geomean,228.38,210.46 (-8.6%) Stdev,7.35,7.59 $ taskset -c 0-0 make ... compare_premain_builds Run,Old CDS + AOT,New CDS + AOT 1,418,379 2,424,367 3,415,384 4,421,367 5,418,388 6,421,378 7,411,376 8,420,371 9,404,375 10,429,380 Geomean,418.05,376.44 (-11.2%) Stdev,6.58,6.50 helidon-quickstart-se: $ ls -lah *.aot -rw-rw-r-- 1 shade shade 37M Sep 4 10:11 helidon-quickstart-se.new.aot -rw-rw-r-- 1 shade shade 32M Sep 4 10:11 helidon-quickstart-se.old.aot $ taskset -c 0-3 make ... compare_premain_builds Run,Old CDS + AOT,New CDS + AOT 1,118,116 2,118,117 3,117,116 4,118,115 5,117,116 6,117,117 7,119,116 8,117,116 9,118,117 10,119,118 Geomean,117.80,116.40 (-1.2%) Stdev,0.75,0.80 $ taskset -c 0-1 make ... compare_premain_builds Run,Old CDS + AOT,New CDS + AOT 1,151,155 2,150,146 3,154,145 4,155,144 5,153,134 6,160,159 7,153,150 8,159,155 9,162,156 10,162,150 Geomean,155.84,149.23 (-4.3%) Stdev,4.25,7.05 $ taskset -c 0-0 make ... compare_premain_builds Run,Old CDS + AOT,New CDS + AOT 1,286,257 2,282,268 3,286,267 4,284,248 5,290,260 6,305,266 7,282,271 8,290,263 9,286,257 10,291,265 Geomean,288.13,262.12 (-9.9%) Stdev,6.37,6.46 ------------- PR Comment: https://git.openjdk.org/leyden/pull/93#issuecomment-3252479967 From adinn at openjdk.org Thu Sep 4 13:30:06 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Thu, 4 Sep 2025 13:30:06 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately In-Reply-To: References: Message-ID: <8jMNM6Q9kv13jnBVQrJcNciYhT9Y29_RQ97MJmL000E=.4d48648a-aea2-483d-a54a-1c0c4790b8cb@github.com> On Wed, 3 Sep 2025 23:32:47 GMT, Ashutosh Mehra wrote: > Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. > Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. > > In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. > > > | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: > > > | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > and then the whole memory block is copied into the final buffer. > This means the size of the temporary buffer needs to be a bit more than required. > > Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. > > This PR is an attempt to fix above issues. It does final assembly in following steps: > 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer > 2. Now the payload for the preload entries is marked > 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer > 4. Then add the payload for these entries > 5. Finally add the search table > > > | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | > > > This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. > > I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. > > **Performance impact:** > > Startup numbers for spring-boot-getting-started: > > Run,Old CDS + AOT,New CDS + AOT > 1,263,275 > 2,265,278 > 3,266,272 > 4,277,271 > 5,265,265 > 6,264,261 > 7,266,263 > 8,258,266 > 9,275,268 > 10,277,263 > Geomean,267.53,268.15 > Stdev,6.14,5.34 > > > AOTCache size comparison: > > -XX:-UseNewCode: 65613824 bytes > -XX:+UseNewCode: 65597440 bytes > > Shows a reducti... src/hotspot/share/code/aotCodeCache.cpp line 1294: > 1292: current += entries_size; > 1293: > 1294: //log_stats_on_exit(); Not sure if this matters since I assume this method is going to be deleted but why comment this out? ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/95#discussion_r2322161232 From asmehra at openjdk.org Thu Sep 4 13:49:02 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Thu, 4 Sep 2025 13:49:02 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately In-Reply-To: <8jMNM6Q9kv13jnBVQrJcNciYhT9Y29_RQ97MJmL000E=.4d48648a-aea2-483d-a54a-1c0c4790b8cb@github.com> References: <8jMNM6Q9kv13jnBVQrJcNciYhT9Y29_RQ97MJmL000E=.4d48648a-aea2-483d-a54a-1c0c4790b8cb@github.com> Message-ID: On Thu, 4 Sep 2025 13:27:38 GMT, Andrew Dinn wrote: >> Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. >> Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. >> >> In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. >> >> ACE=AOTCodeEntry >> >> | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: >> >> >> | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> and then the whole memory block is copied into the final buffer. >> This means the size of the temporary buffer needs to be a bit more than required. >> >> Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. >> >> This PR is an attempt to fix above issues. It does final assembly in following steps: >> 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer >> 2. Now the payload for the preload entries is marked >> 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer >> 4. Then add the payload for these entries >> 5. Finally add the search table >> >> >> | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | >> >> >> This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. >> >> I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. >> >> **Performance impact:** >> >> Startup numbers for spring-boot-getting-started: >> >> Run,Old CDS + AOT,New CDS + AOT >> 1,263,275 >> 2,265,278 >> 3,266,272 >> 4,277,271 >> 5,265,265 >> 6,264,261 >> 7,266,263 >> 8,258,266 >> 9,275,268 >> 10,277,263 >> Geomean,267.53,268.15 >> St... > > src/hotspot/share/code/aotCodeCache.cpp line 1294: > >> 1292: current += entries_size; >> 1293: >> 1294: //log_stats_on_exit(); > > Not sure if this matters since I assume this method is going to be deleted but why comment this out? you are right, this version of `finish_write()` would go away. I was just lazy to update the code to pass the parameter that `log_stats_on_exit()` needs :) ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/95#discussion_r2322232683 From adinn at openjdk.org Thu Sep 4 15:08:10 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Thu, 4 Sep 2025 15:08:10 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately In-Reply-To: References: Message-ID: On Wed, 3 Sep 2025 23:32:47 GMT, Ashutosh Mehra wrote: > Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. > Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. > > In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. > > ACE=AOTCodeEntry > > | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: > > > | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > and then the whole memory block is copied into the final buffer. > This means the size of the temporary buffer needs to be a bit more than required. > > Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. > > This PR is an attempt to fix above issues. It does final assembly in following steps: > 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer > 2. Now the payload for the preload entries is marked > 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer > 4. Then add the payload for these entries > 5. Finally add the search table > > > | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | > > > This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. > > I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. > > **Performance impact:** > > Startup numbers for spring-boot-getting-started: > > Run,Old CDS + AOT,New CDS + AOT > 1,263,275 > 2,265,278 > 3,266,272 > 4,277,271 > 5,265,265 > 6,264,261 > 7,266,263 > 8,258,266 > 9,275,268 > 10,277,263 > Geomean,267.53,268.15 > Stdev,6.14,5.34 > > > AOTCache size comparison: > > -XX:-UseNewCode: 65613824 bytes > -XX:+UseNewCode: 65597440 bytes... src/hotspot/share/code/aotCodeCache.cpp line 1448: > 1446: > 1447: if (preload_entries_cnt == 0 && entries_count == 0) { > 1448: log_info(aot, codecache, exit)("AOT Code Cache was not created: no entires"); Suggestion: log_info(aot, codecache, exit)("AOT Code Cache was not created: no entries"); ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/95#discussion_r2322494731 From adinn at openjdk.org Thu Sep 4 15:27:55 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Thu, 4 Sep 2025 15:27:55 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately In-Reply-To: References: Message-ID: <948py8Y2UTcysHwod5V024iL9hCgCIivzSHWESgiErY=.e3e56be4-c920-421b-a8e6-af3b63ef252b@github.com> On Wed, 3 Sep 2025 23:32:47 GMT, Ashutosh Mehra wrote: > Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. > Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. > > In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. > > ACE=AOTCodeEntry > > | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: > > > | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > and then the whole memory block is copied into the final buffer. > This means the size of the temporary buffer needs to be a bit more than required. > > Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. > > This PR is an attempt to fix above issues. It does final assembly in following steps: > 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer > 2. Now the payload for the preload entries is marked > 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer > 4. Then add the payload for these entries > 5. Finally add the search table > > > | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | > > > This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. > > I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. > > **Performance impact:** > > Startup numbers for spring-boot-getting-started: > > Run,Old CDS + AOT,New CDS + AOT > 1,263,275 > 2,265,278 > 3,266,272 > 4,277,271 > 5,265,265 > 6,264,261 > 7,266,263 > 8,258,266 > 9,275,268 > 10,277,263 > Geomean,267.53,268.15 > Stdev,6.14,5.34 > > > AOTCache size comparison: > > -XX:-UseNewCode: 65613824 bytes > -XX:+UseNewCode: 65597440 bytes... Looks ok modulo the few changes I noted. src/hotspot/share/code/aotCodeCache.cpp line 511: > 509: } > 510: log_info (aot, codecache, init)("Loaded %u AOT code entries from AOT Code Cache", _load_header->entries_count()); > 511: log_debug(aot, codecache, init)(" %s: total=%u", aot_code_entry_kind_name[AOTCodeEntry::Adapter], _load_header->adapters_count()); You need to fix the exit trace at line 1300 onwards to call `aot_code_entry_kind_name()` ------------- Marked as reviewed by adinn (Committer). PR Review: https://git.openjdk.org/leyden/pull/95#pullrequestreview-3185861940 PR Review Comment: https://git.openjdk.org/leyden/pull/95#discussion_r2322544522 From ioi.lam at oracle.com Thu Sep 4 16:21:32 2025 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Thu, 4 Sep 2025 09:21:32 -0700 Subject: Naming things in the AOT cache Message-ID: <0116baef-3cf1-467e-99b4-10a4760595fb@oracle.com> I have started to refactor/rename code from "CDS" to "AOT". This is the umbrella JBS issue https://bugs.openjdk.org/browse/JDK-8366473 One thing I need to decide is how to call the things that we store inside the AOT cache. In CDS, they are called "shared xxx". Specifically, the words "shared class" is used a lot. It's grammatically correct, but semantically it doesn't make sense anymore. An obvious new name would be "AOT class", but this is not actually grammatically correct. You can't read it as is: ? ? "an ahead-of-time class" It needs to be understood to be a class with some AOT operations performed on it. It could mean any of the following ? ? "an ahead-of-time (parsed) class" ? ? "an ahead-of-time (linked) class" ? ? "an ahead-of-time (inited) class" So to be 100% correct, the correct interpretation is rather loose: ? ? "an ahead-of-time (processed) class" An alternative would be to call it ? ? "a class in the AOT cache" But this is rather verbose, and doesn't look good in C++. I.e., ? ? void do_something(Klass* aot_class);? vs ? ? void do_something(Klass* class_in_aot_cache); So, do we want to adopt the convention of using "AOT" as a prefix for the objects in the AOT cache, and interpreted them as ? ? "AOT xyz" = "an ahead-of-time (processed) xyz" i.e., ? ? Klass* aot_class; ? ? Method* aot_method; ? ? nmethod* aot_nmethod; ? ? oop aot_obj, aot_mirror; ? ? // Copy this AOT nmethod from the temporary buffer into its final location ? ? install(aot_nmethod); ? ? // Initialize this AOT class ? ? aot_ik->initialize(); ? ? // Copy fields in this AOT mirror ? ? copy_fields(aot_mirror); Thanks - Ioi From vlivanov at openjdk.org Thu Sep 4 19:23:01 2025 From: vlivanov at openjdk.org (Vladimir Ivanov) Date: Thu, 4 Sep 2025 19:23:01 GMT Subject: RFR: 8366681: [leyden] Precompile more C1 code [v3] In-Reply-To: References: Message-ID: On Wed, 3 Sep 2025 16:59:46 GMT, Aleksey Shipilev wrote: >> Looking at how code goes through AOT+JIT pipeline, I believe we have several issues in the way we include the methods for precompilation. >> >> 1. AP4 code gets replaced by more efficient A4 code, which can then deopt. Once it does, we go back to the fully normal JIT pipeline, with C1 compiling, C2 compiling, etc. Training run currently does A2 versions only when there is a tier2/3 training data present. We can pessimistically assume that A4/AP4 method should have A2 method generated for the sake of quicker deopt. >> >> 2. I suspect a similar thing, but rarer, happens with A4 -> ... -> T1 transition when compiler queues are overloaded. We can generate A1 method for this case. >> >> 3. When training is done with default configuration, but at runtime we enable only C1, we summarily miss almost *all* AOT methods, because A1 methods are rarely generated with a normal tiered policy. Generating A1 methods always would be convenient for hybrid C2 AOT + C1 JIT modes as well. >> >> Overall, I think generating more C1 methods even when C2 methods are present in training is beneficial, as we prepare the ground for whatever corner case happens at runtime. Benchmarks show this improves performance model quite a bit. >> >> Since we now look at methods at all different tiers when deciding to precompile, compile IDs are not working all that well. I have rewritten that to use counters and method sizes. This seems to work well in practice. >> >> Additional testing: >> - [x] `javac` performance tests (see comments) >> - [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: > > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Fix Interesting idea. 2 observations: * There are already AP4 versions present in the AOT cache. Why can't they be used instead of A2 until T3 arrives? * There were some rare discrepancies in compilation behavior between training and production runs which lead to AOT-cache mismatches and trigger unnecessary JIT-compilations. While proposed change alleviates the symptoms, It's beneficial to fix the root cause. ------------- PR Comment: https://git.openjdk.org/leyden/pull/93#issuecomment-3255259379 From iklam at openjdk.org Fri Sep 5 00:57:58 2025 From: iklam at openjdk.org (Ioi Lam) Date: Fri, 5 Sep 2025 00:57:58 GMT Subject: git: openjdk/leyden: premain: 102 new changesets Message-ID: <1b8fecb4-1e5e-4de6-9238-4fc4398a5861@openjdk.org> Changeset: 33d00a77 Branch: premain Author: Hai-May Chao Date: 2025-08-28 16:36:14 +0000 URL: https://git.openjdk.org/leyden/commit/33d00a77f38ea16e4751b216a3bf98a620eb8055 8294035: Remove null ids checking from keytool -gencrl Reviewed-by: weijun ! src/java.base/share/classes/sun/security/tools/keytool/Main.java Changeset: aaac8c06 Branch: premain Author: Brian Burkhalter Date: 2025-08-28 17:38:09 +0000 URL: https://git.openjdk.org/leyden/commit/aaac8c0636e12c40c46170bf4989bd34bb577430 8366254: (fs) UnixException.translateToIOException should translate ELOOP to FileSystemLoopException Reviewed-by: vyazici, alanb ! src/java.base/unix/classes/sun/nio/fs/UnixException.java ! test/jdk/java/nio/file/Files/IsSameFile.java Changeset: 9f70965b Branch: premain Author: Ioi Lam Date: 2025-08-28 18:08:55 +0000 URL: https://git.openjdk.org/leyden/commit/9f70965bb9ead2268c02c688c79ec0d80574c725 8366193: Add comments about ResolvedFieldEntry::copy_from() Reviewed-by: adinn, coleenp ! src/hotspot/share/oops/resolvedFieldEntry.hpp ! src/hotspot/share/oops/resolvedIndyEntry.hpp ! src/hotspot/share/oops/resolvedMethodEntry.hpp Changeset: 05da2137 Branch: premain Author: Alexander Matveev Date: 2025-08-28 21:23:15 +0000 URL: https://git.openjdk.org/leyden/commit/05da2137f1cb6eef1cfc7693905daf789d315b5c 8362335: [macos] Change value of CFBundleDevelopmentRegion from "English" to "en-US" Reviewed-by: asemenyuk ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/ApplicationRuntime-Info.plist.template ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/Info-lite.plist.template ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/Runtime-Info.plist.template Changeset: b8cdf31a Branch: premain Author: Jaikiran Pai Date: 2025-08-29 00:46:53 +0000 URL: https://git.openjdk.org/leyden/commit/b8cdf31a2e52df857df2badb4f365454443dd89d 8365898: Specification of java.lang.module.ModuleDescriptor.packages() method can be improved Reviewed-by: alanb, liach ! src/java.base/share/classes/java/lang/module/ModuleDescriptor.java Changeset: a2da75a6 Branch: premain Author: Volkan Yazici Date: 2025-08-29 06:13:34 +0000 URL: https://git.openjdk.org/leyden/commit/a2da75a6b69f56be41741bffba2c6874a93dfa40 8362884: [GCC static analyzer] unix NetworkInterface.c addif leak on early returns Reviewed-by: dfuchs, mbaesken ! src/java.base/unix/native/libnet/NetworkInterface.c Changeset: 86d6a2e0 Branch: premain Author: Axel Boldt-Christmas Date: 2025-08-29 07:35:03 +0000 URL: https://git.openjdk.org/leyden/commit/86d6a2e05eb52ea2c603a06bce838a56d5ae507b 8366147: ZGC: ZPageAllocator::cleanup_failed_commit_single_partition may leak memory Reviewed-by: stefank, sjohanss, jsikstro ! src/hotspot/share/gc/z/zPageAllocator.cpp ! test/hotspot/jtreg/gc/z/TestCommitFailure.java Changeset: 937d61bf Branch: premain Author: Chen Liang Date: 2025-08-29 14:35:26 +0000 URL: https://git.openjdk.org/leyden/commit/937d61bfbaba61117076c78358570ec4c35c8c42 8364751: ConstantBootstraps.explicitCast contradictory specification for null-to-primitive Reviewed-by: jvernee, rriggs ! src/java.base/share/classes/java/lang/invoke/ConstantBootstraps.java - test/jdk/java/lang/constant/ConvertTest.java ! test/jdk/java/lang/invoke/condy/ConstantBootstrapsTest.java Changeset: ae960772 Branch: premain Author: Chen Liang Date: 2025-08-29 14:35:45 +0000 URL: https://git.openjdk.org/leyden/commit/ae9607725c8c6a1b2f2728dbb5f7993722497da7 8361614: Missing sub-int value validation in the Class-File API Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/AccessFlags.java ! src/java.base/share/classes/java/lang/classfile/ClassBuilder.java ! src/java.base/share/classes/java/lang/classfile/ClassFileVersion.java ! src/java.base/share/classes/java/lang/classfile/ClassModel.java ! src/java.base/share/classes/java/lang/classfile/ClassReader.java ! src/java.base/share/classes/java/lang/classfile/CodeBuilder.java ! src/java.base/share/classes/java/lang/classfile/FieldBuilder.java ! src/java.base/share/classes/java/lang/classfile/MethodBuilder.java ! src/java.base/share/classes/java/lang/classfile/TypeAnnotation.java ! src/java.base/share/classes/java/lang/classfile/attribute/CharacterRangeInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/InnerClassInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/LineNumberInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/MethodParameterInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleExportInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleOpenInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleRequireInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleResolutionAttribute.java ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPoolBuilder.java ! src/java.base/share/classes/java/lang/classfile/instruction/CharacterRange.java ! src/java.base/share/classes/java/lang/classfile/instruction/DiscontinuedInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/IncrementInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/LineNumber.java ! src/java.base/share/classes/java/lang/classfile/instruction/LoadInstruction.java ! src/java.base/share/classes/java/lang/classfile/instruction/LocalVariable.java ! src/java.base/share/classes/java/lang/classfile/instruction/LocalVariableType.java ! src/java.base/share/classes/java/lang/classfile/instruction/StoreInstruction.java ! src/java.base/share/classes/java/lang/classfile/package-info.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPseudoInstruction.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AccessFlagsImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectClassBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectFieldBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectMethodBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/LineNumberImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/ModuleAttributeBuilderImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java ! src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/UnboundAttribute.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java ! test/jdk/jdk/classfile/InstructionValidationTest.java - test/jdk/jdk/classfile/PreviewMinorVersionTest.java + test/jdk/jdk/classfile/SubIntValidationTest.java Changeset: d594ef3a Branch: premain Author: David Holmes Date: 2025-08-29 16:31:13 +0000 URL: https://git.openjdk.org/leyden/commit/d594ef3a3e013b84a392b6d64a54015adc8173cd 8366121: Hotspot Style Guide should document conventions for lock-free code Reviewed-by: stefank, ayang, jsjolen, jwaters, kvn, kbarrett ! doc/hotspot-style.html ! doc/hotspot-style.md Changeset: 849570a9 Branch: premain Author: Anthony Scarpino Date: 2025-08-29 17:04:37 +0000 URL: https://git.openjdk.org/leyden/commit/849570a94a3178da7899e5cd36400ef03ad9ae29 8365288: PEMDecoder should throw ClassCastException Reviewed-by: weijun ! src/java.base/share/classes/java/security/PEMDecoder.java ! test/jdk/java/security/PEM/PEMDecoderTest.java Changeset: d4ce630c Branch: premain Author: Chen Liang Date: 2025-08-29 20:44:09 +0000 URL: https://git.openjdk.org/leyden/commit/d4ce630cea267e746f7feb5124fe2ecd39d7e13a 8366399: Allow custom base reference for update_copyright_year.sh Reviewed-by: erikj ! make/scripts/update_copyright_year.sh Changeset: f23c1507 Branch: premain Author: SendaoYan Date: 2025-08-30 02:20:44 +0000 URL: https://git.openjdk.org/leyden/commit/f23c150709fbd6d9b84261a7c99b67d7d08334b9 8366359: Test should throw SkippedException when there is no lpstat Reviewed-by: aivanov, prr ! test/jdk/javax/print/PrintServiceLookup/CountPrintServices.java Changeset: 0e739931 Branch: premain Author: Chen Liang Date: 2025-08-30 14:03:56 +0000 URL: https://git.openjdk.org/leyden/commit/0e7399318b6c33c03a72ed1fdfb671f8cd9342a3 8366264: tools/javac/launcher/SourceLauncherStackTraceTest.java does not cover the scenario for 8362237 Reviewed-by: cstein, jlahoda - test/langtools/tools/javac/launcher/SourceLauncherStackTraceTest.java ! test/langtools/tools/javac/launcher/SourceLauncherTest.java Changeset: 12e6a0b6 Branch: premain Author: Sergey Bylokhov Date: 2025-08-30 19:26:45 +0000 URL: https://git.openjdk.org/leyden/commit/12e6a0b6d0086caf156cf5513a604320c619b856 8366208: Unexpected exception in sun.java2d.cmm.lcms.LCMSImageLayout Reviewed-by: aivanov, prr ! src/java.desktop/share/classes/sun/java2d/cmm/lcms/LCMSImageLayout.java + test/jdk/sun/java2d/cmm/ColorConvertOp/FilterSemiCustomImages.java Changeset: 9339a6a2 Branch: premain Author: Francesco Andreuzzi Committer: Jaikiran Pai Date: 2025-08-31 00:35:09 +0000 URL: https://git.openjdk.org/leyden/commit/9339a6a23236e783e93f967cf6aba16c2f749fdd 8361593: Commented dead code in JDK-8342868 can be removed Reviewed-by: jlu, naoto, jwaters, jpai ! src/java.base/windows/native/libjava/HostLocaleProviderAdapter_md.c ! src/java.base/windows/native/libjava/TimeZone_md.c ! src/java.base/windows/native/libnet/NTLMAuthSequence.c Changeset: bdc39818 Branch: premain Author: Anass Baya Committer: Sergey Bylokhov Date: 2025-08-31 04:34:04 +0000 URL: https://git.openjdk.org/leyden/commit/bdc39818ce7b3c3bad10f4682a2a52fbb696f247 8361521: BogusFocusableWindowState.java fails with StackOverflowError on Linux Reviewed-by: aivanov, serb ! src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java ! test/jdk/ProblemList.txt ! test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java Changeset: 80ab094a Branch: premain Author: David Holmes Date: 2025-08-31 21:34:16 +0000 URL: https://git.openjdk.org/leyden/commit/80ab094a75a6474c33214e3347e08ea7b9177ec8 8347707: Standardise the use of os::snprintf and os::snprintf_checked Reviewed-by: kbarrett, fbredberg ! src/hotspot/cpu/aarch64/frame_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/arm/macroAssembler_arm.cpp ! src/hotspot/cpu/arm/vm_version_arm_32.cpp ! src/hotspot/cpu/ppc/vm_version_ppc.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/vm_version_riscv.cpp ! src/hotspot/cpu/s390/vm_version_s390.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/zero/frame_zero.cpp ! src/hotspot/cpu/zero/vm_version_zero.cpp ! src/hotspot/os/aix/attachListener_aix.cpp ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/aix/porting_aix.cpp ! src/hotspot/os/bsd/memMapPrinter_macosx.cpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/gc/z/zPhysicalMemoryBacking_linux.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_perf_linux.cpp ! src/hotspot/os/posix/attachListener_posix.cpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/posix/perfMemory_posix.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/os/windows/perfMemory_windows.cpp ! src/hotspot/os_cpu/linux_riscv/vm_version_linux_riscv.cpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/code/codeHeapState.cpp ! src/hotspot/share/compiler/compilationMemoryStatistic.cpp ! src/hotspot/share/gc/g1/g1YoungCollector.cpp ! src/hotspot/share/gc/shared/oopStorage.cpp ! src/hotspot/share/gc/shared/satbMarkQueue.cpp ! src/hotspot/share/jvmci/jvmciEnv.cpp ! src/hotspot/share/oops/compressedKlass.cpp ! src/hotspot/share/oops/generateOopMap.cpp ! src/hotspot/share/opto/idealGraphPrinter.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/os.hpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/utilities/forbiddenFunctions.hpp ! src/hotspot/share/utilities/virtualizationSupport.cpp ! test/hotspot/gtest/classfile/test_symbolTable.cpp ! test/hotspot/gtest/gtestMain.cpp ! test/hotspot/gtest/logging/test_asynclog.cpp ! test/hotspot/gtest/runtime/test_os_windows.cpp Changeset: 2427c901 Branch: premain Author: Ioi Lam Date: 2025-09-01 04:03:08 +0000 URL: https://git.openjdk.org/leyden/commit/2427c901b31dbdccc6f8f39404875a0140460479 8366024: Remove unnecessary InstanceKlass::cast() Reviewed-by: coleenp, dholmes ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/fieldLayoutBuilder.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/vmClasses.cpp ! src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp ! src/hotspot/share/jfr/leakprofiler/chains/edgeUtils.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/oops/klassVtable.hpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/vmStructs.cpp Changeset: a668f437 Branch: premain Author: Shaojin Wen Date: 2025-09-01 05:54:54 +0000 URL: https://git.openjdk.org/leyden/commit/a668f437e481d02cbb82d4f40dd14ec3a6036399 8365620: Using enhanced switch in MethodHandleDesc Reviewed-by: liach ! src/java.base/share/classes/java/lang/constant/MethodHandleDesc.java Changeset: 28942406 Branch: premain Author: Jan Lahoda Date: 2025-09-01 05:55:08 +0000 URL: https://git.openjdk.org/leyden/commit/28942406020881be79b7543105b9eb2a0dda429e 8177650: JShell tool: packages in classpath don't appear in completions Reviewed-by: asotona ! src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysisImpl.java ! test/langtools/jdk/jshell/Compiler.java ! test/langtools/jdk/jshell/CompletionSuggestionTest.java ! test/langtools/jdk/jshell/ReplToolTesting.java + test/langtools/jdk/jshell/ToolCompletionTest.java Changeset: 685da032 Branch: premain Author: Aleksey Shipilev Date: 2025-09-01 06:25:45 +0000 URL: https://git.openjdk.org/leyden/commit/685da0323b27abda5ab0484f4c8abaaeeff882ea 8345810: Custom launchers must be linked with pthread to avoid dynamic linker issues Reviewed-by: asemenyuk, erikj, dholmes ! make/modules/jdk.jpackage/Lib.gmk ! make/test/JtregNativeJdk.gmk Changeset: 12dc568b Branch: premain Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-09-01 06:28:10 +0000 URL: https://git.openjdk.org/leyden/commit/12dc568b3d270e4ab6dcd07e1bcddbb024ad724a 8366331: Sort share/prims includes Reviewed-by: shade, lmesnik ! src/hotspot/share/prims/foreignGlobals.cpp ! src/hotspot/share/prims/foreignGlobals.inline.hpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiAgent.cpp ! src/hotspot/share/prims/jvmtiAgentList.cpp ! src/hotspot/share/prims/jvmtiEnv.cpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp ! src/hotspot/share/prims/jvmtiEnvBase.hpp ! src/hotspot/share/prims/jvmtiEventController.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/prims/jvmtiManageCapabilities.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/prims/jvmtiTagMap.cpp ! src/hotspot/share/prims/jvmtiTrace.cpp ! src/hotspot/share/prims/jvmtiUtil.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/prims/methodHandles.hpp ! src/hotspot/share/prims/nativeEntryPoint.cpp ! src/hotspot/share/prims/nativeLookup.cpp ! src/hotspot/share/prims/stackwalk.cpp ! src/hotspot/share/prims/unsafe.cpp ! src/hotspot/share/prims/vmstorage.hpp ! src/hotspot/share/prims/wbtestmethods/parserTests.cpp ! src/hotspot/share/prims/whitebox.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: 86f48ab5 Branch: premain Author: Jonas Norlinder Committer: Thomas Schatzl Date: 2025-09-01 06:35:10 +0000 URL: https://git.openjdk.org/leyden/commit/86f48ab559bb1749109217aaecd1203209a5be19 8366157: Clarify in man pages that only G1 and Parallel supports MaxGCPauseMillis Reviewed-by: tschatzl, sjohanss ! src/java.base/share/man/java.md Changeset: ba90ccc6 Branch: premain Author: Matthias Baesken Date: 2025-09-01 06:46:23 +0000 URL: https://git.openjdk.org/leyden/commit/ba90ccc6a8ca7b0b728568ea614470c85a5f7f8a 8362516: Support of GCC static analyzer (-fanalyzer) Reviewed-by: erikj ! make/autoconf/configure.ac ! make/autoconf/jdk-options.m4 Changeset: a6e2a329 Branch: premain Author: Matthias Baesken Date: 2025-09-01 06:48:48 +0000 URL: https://git.openjdk.org/leyden/commit/a6e2a329a07c71582ac696809fb5349c6a0b681c 8366092: [GCC static analyzer] UnixOperatingSystem.c warning: use of uninitialized value 'systemTicks' Reviewed-by: kevinw, asteiner ! src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c Changeset: dbac620b Branch: premain Author: Emanuel Peter Date: 2025-09-01 06:56:48 +0000 URL: https://git.openjdk.org/leyden/commit/dbac620b996713087f0d1b1189e543e51a0bb09f 8366357: C2 SuperWord: refactor VTransformNode::apply with VTransformApplyState Reviewed-by: chagedorn, kvn, mhaessig ! src/hotspot/share/opto/superword.cpp ! src/hotspot/share/opto/vtransform.cpp ! src/hotspot/share/opto/vtransform.hpp Changeset: d5d94db1 Branch: premain Author: Anton Artemov Committer: David Holmes Date: 2025-09-01 07:43:25 +0000 URL: https://git.openjdk.org/leyden/commit/d5d94db12a6d82a6fe9da18b5f8ce3733a6ee7e7 8357086: os::xxx functions returning memory size should return size_t Reviewed-by: stefank, dholmes ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/aix/os_aix.hpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/bsd/os_bsd.hpp ! src/hotspot/os/linux/cgroupSubsystem_linux.cpp ! src/hotspot/os/linux/cgroupUtil_linux.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_linux.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/os/windows/os_windows.hpp ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/gc/shared/gcInitLogger.cpp ! src/hotspot/share/gc/z/zLargePages.cpp ! src/hotspot/share/jfr/jni/jfrJniMethod.cpp ! src/hotspot/share/jfr/periodic/jfrPeriodic.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/os.hpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/services/management.cpp Changeset: a9f3cb23 Branch: premain Author: Axel Boldt-Christmas Date: 2025-09-01 07:47:44 +0000 URL: https://git.openjdk.org/leyden/commit/a9f3cb23d1802ef3d3042a7f521a0747f70bc732 8366462: Test gc/z/TestCommitFailure.java#Normal failed: expected output missing Reviewed-by: dholmes, eosterlund ! test/hotspot/jtreg/gc/z/TestCommitFailure.java Changeset: 48f70d7a Branch: premain Author: Anton Artemov Committer: David Holmes Date: 2025-09-01 07:50:35 +0000 URL: https://git.openjdk.org/leyden/commit/48f70d7ad85dde49cc8134d4ac0312978a5cc9f7 8361370: runtime/Thread/TestThreadDumpMonitorContention.java fails due to time out on Windows Reviewed-by: dholmes, amenkov ! test/hotspot/jtreg/runtime/Thread/TestThreadDumpMonitorContention.java Changeset: 3ca44c8d Branch: premain Author: Matthias Baesken Date: 2025-09-01 08:03:34 +0000 URL: https://git.openjdk.org/leyden/commit/3ca44c8dea035588070644e5c1f8f25559f66e53 8364352: Some tests fail when using a limited number of pregenerated .jsa CDS archives Reviewed-by: dholmes, stuefe ! test/hotspot/jtreg/TEST.ROOT ! test/hotspot/jtreg/runtime/CompressedOops/CompressedCPUSpecificClassSpaceReservation.java ! test/hotspot/jtreg/runtime/cds/TestDefaultArchiveLoading.java ! test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java ! test/jtreg-ext/requires/VMProps.java Changeset: fe4c7a04 Branch: premain Author: Jayathirth D V Date: 2025-09-01 08:07:08 +0000 URL: https://git.openjdk.org/leyden/commit/fe4c7a0429a2cf9ef47701d68d0852ce44e1a9ab 8364135: JPEGImageReader.getImageTypes() should throw exception for negative image index Reviewed-by: aivanov, prr, psadhukhan ! src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java + test/jdk/javax/imageio/plugins/jpeg/JpegNegativeImageIndexTest.java Changeset: 56713817 Branch: premain Author: Emanuel Peter Date: 2025-09-01 08:47:19 +0000 URL: https://git.openjdk.org/leyden/commit/56713817c0fd060f7106a538b0e795081f4f9d4b 8366361: C2 SuperWord: rename VTransformNode::set_req -> init_req, analogue to Node::init_req Reviewed-by: kvn, chagedorn ! src/hotspot/share/opto/superwordVTransformBuilder.cpp ! src/hotspot/share/opto/superwordVTransformBuilder.hpp ! src/hotspot/share/opto/vtransform.hpp Changeset: dacd9af9 Branch: premain Author: Volkan Yazici Date: 2025-09-01 08:50:08 +0000 URL: https://git.openjdk.org/leyden/commit/dacd9af9a02464d2d6144e29d851216641e836c9 8329829: HttpClient: Add a BodyPublishers.ofFileChannel method Reviewed-by: dfuchs, jpai, michaelm ! src/java.net.http/share/classes/java/net/http/HttpRequest.java ! src/java.net.http/share/classes/jdk/internal/net/http/RequestPublishers.java ! src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java + test/jdk/java/net/httpclient/FileChannelPublisherTest.java Changeset: fc77e760 Branch: premain Author: Roberto Casta?eda Lozano Date: 2025-09-01 08:55:23 +0000 URL: https://git.openjdk.org/leyden/commit/fc77e7600f217cc91c24d4e512c685e176a66e4a 8365791: IGV: Update build dependencies Reviewed-by: chagedorn, ayang ! src/utils/IdealGraphVisualizer/pom.xml Changeset: 7f0cd648 Branch: premain Author: Bhavana Kilambi Committer: Aleksey Shipilev Date: 2025-09-01 09:18:29 +0000 URL: https://git.openjdk.org/leyden/commit/7f0cd6488ba969d5cffe8ebe9b95e4ad70982188 8361582: AArch64: Some ConH values cannot be replicated with SVE Reviewed-by: shade, epeter, aph ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/aarch64_vector.ad ! src/hotspot/cpu/aarch64/aarch64_vector_ad.m4 ! src/hotspot/cpu/aarch64/assembler_aarch64.cpp ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp + test/hotspot/jtreg/compiler/c2/aarch64/TestFloat16Replicate.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Changeset: 98af1892 Branch: premain Author: Johan Sj?len Date: 2025-09-01 09:24:52 +0000 URL: https://git.openjdk.org/leyden/commit/98af18921aa3c274ef7ece03005337b58df3da96 8366456: Allow AllocFailStrategy for RBTree Reviewed-by: cnorrbin, aboldtch ! src/hotspot/share/utilities/rbTree.hpp ! test/hotspot/gtest/utilities/test_rbtree.cpp Changeset: 5110d54d Branch: premain Author: Albert Mingkun Yang Date: 2025-09-01 13:08:53 +0000 URL: https://git.openjdk.org/leyden/commit/5110d54d938b7afbdf9cfbc4501674ef7bc1d518 8365922: Parallel: Group uses of GCTimeRatio to a single location Reviewed-by: tschatzl, phh ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/psAdaptiveSizePolicy.cpp ! src/hotspot/share/gc/parallel/psAdaptiveSizePolicy.hpp ! src/hotspot/share/gc/shared/adaptiveSizePolicy.cpp ! src/hotspot/share/gc/shared/adaptiveSizePolicy.hpp Changeset: 99223eea Branch: premain Author: Emanuel Peter Date: 2025-09-01 13:48:25 +0000 URL: https://git.openjdk.org/leyden/commit/99223eea03e2ed714f7a5408c356fdf06efc9200 8366427: C2 SuperWord: refactor VTransform scalar nodes Reviewed-by: mhaessig, chagedorn, kvn ! src/hotspot/share/opto/superwordVTransformBuilder.cpp ! src/hotspot/share/opto/superwordVTransformBuilder.hpp ! src/hotspot/share/opto/vtransform.cpp ! src/hotspot/share/opto/vtransform.hpp Changeset: b06459d3 Branch: premain Author: Kevin Walls Date: 2025-09-01 14:21:33 +0000 URL: https://git.openjdk.org/leyden/commit/b06459d3a83c13c0fbc7a0a7698435f17265982e 8364227: MBeanServer registerMBean throws NPE Reviewed-by: alanb ! src/java.management/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java + test/jdk/javax/management/MBeanServer/ExceptionTestNulls.java Changeset: f58d612b Branch: premain Author: Saint Wesonga Committer: David Holmes Date: 2025-09-02 04:01:32 +0000 URL: https://git.openjdk.org/leyden/commit/f58d612b6111658f01fa6b927bb2b2032c685620 8366483: ShowRegistersOnAssertTest uses wrong register pattern string for Windows on AArch64 Reviewed-by: dholmes, shade ! test/hotspot/jtreg/runtime/ErrorHandling/ShowRegistersOnAssertTest.java Changeset: 8f11d83a Branch: premain Author: Philippe Marschall Committer: Jaikiran Pai Date: 2025-09-02 05:49:06 +0000 URL: https://git.openjdk.org/leyden/commit/8f11d83a0126f8179d72e714595588b631e6451d 8362893: Improve performance for MemorySegment::getString Reviewed-by: pminborg, mcimadamore ! src/java.base/share/classes/jdk/internal/foreign/StringSupport.java Changeset: efb81daf Branch: premain Author: SendaoYan Date: 2025-09-02 06:50:15 +0000 URL: https://git.openjdk.org/leyden/commit/efb81dafaf6da334674e52dbb509208d7d872440 8366031: Mark com/sun/nio/sctp/SctpChannel/CloseDescriptors.java as intermittent Reviewed-by: jpai ! test/jdk/com/sun/nio/sctp/SctpChannel/CloseDescriptors.java Changeset: 55e7af05 Branch: premain Author: Leo Korinth Date: 2025-09-02 07:27:12 +0000 URL: https://git.openjdk.org/leyden/commit/55e7af0560335ef69af072cee60956cf8e6d00a1 8260555: Change the default TIMEOUT_FACTOR from 4 to 1 Reviewed-by: alanb, sspitsyn, lmesnik, ihse ! doc/testing.html ! doc/testing.md ! make/RunTests.gmk ! test/hotspot/jtreg/compiler/arguments/TestCompileTaskTimeout.java ! test/hotspot/jtreg/compiler/arraycopy/stress/TestStressArrayCopy.java ! test/hotspot/jtreg/compiler/c1/TestConcurrentPatching.java ! test/hotspot/jtreg/compiler/c1/TestPinnedIntrinsics.java ! test/hotspot/jtreg/compiler/c2/TestMergeStores.java ! test/hotspot/jtreg/compiler/c2/TestScalarReplacementMaxLiveNodes.java ! test/hotspot/jtreg/compiler/c2/TestStressRecompilation.java ! test/hotspot/jtreg/compiler/classUnloading/methodUnloading/TestOverloadCompileQueues.java ! test/hotspot/jtreg/compiler/codegen/TestAntiDependenciesHighMemUsage2.java ! test/hotspot/jtreg/compiler/codegen/aes/TestCipherBlockChainingEncrypt.java ! test/hotspot/jtreg/compiler/controldependency/TestLoadBypassesClassCast.java ! test/hotspot/jtreg/compiler/floatingpoint/TestFloatSyncJNIArgs.java ! test/hotspot/jtreg/compiler/intrinsics/TestLongUnsignedDivMod.java ! test/hotspot/jtreg/compiler/jsr292/ContinuousCallSiteTargetChange.java ! test/hotspot/jtreg/compiler/jsr292/RedefineMethodUsedByMultipleMethodHandles.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/RedefineClassTest.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaMethod.java ! test/hotspot/jtreg/compiler/loopopts/TestMaxLoopOptsCountReached.java ! test/hotspot/jtreg/compiler/loopopts/TestPartialPeelAtUnsignedTestsNegativeLimit.java ! test/hotspot/jtreg/compiler/loopopts/superword/ProdRed_Double.java ! test/hotspot/jtreg/compiler/loopopts/superword/ProdRed_Float.java ! test/hotspot/jtreg/compiler/loopopts/superword/ProdRed_Int.java ! test/hotspot/jtreg/compiler/loopopts/superword/SumRedAbsNeg_Double.java ! test/hotspot/jtreg/compiler/loopopts/superword/SumRedAbsNeg_Float.java ! test/hotspot/jtreg/compiler/loopopts/superword/SumRedSqrt_Double.java ! test/hotspot/jtreg/compiler/loopopts/superword/SumRed_Double.java ! test/hotspot/jtreg/compiler/loopopts/superword/SumRed_Float.java ! test/hotspot/jtreg/compiler/loopopts/superword/SumRed_Int.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestDependencyOffsets.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestEquivalentInvariants.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestMovingLoadBeforeStore.java ! test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMining.java ! test/hotspot/jtreg/compiler/profiling/TestProfileCounterOverflow.java ! test/hotspot/jtreg/compiler/profiling/spectrapredefineclass/Launcher.java ! test/hotspot/jtreg/compiler/profiling/spectrapredefineclass_classloaders/Launcher.java ! test/hotspot/jtreg/compiler/tiered/Level2RecompilationTest.java ! test/hotspot/jtreg/compiler/uncommontrap/TestDeoptOOM.java ! test/hotspot/jtreg/compiler/vectorapi/TestRawOopAtSafepoint.java ! test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorOperations.java ! test/hotspot/jtreg/compiler/vectorization/TestVectorZeroCount.java ! test/hotspot/jtreg/gc/g1/TestGreyReclaimedHumongousObjects.java ! test/hotspot/jtreg/gc/g1/humongousObjects/TestHumongousClassLoader.java ! test/hotspot/jtreg/gc/g1/humongousObjects/TestHumongousNonArrayAllocation.java ! test/hotspot/jtreg/gc/g1/ihop/TestIHOPErgo.java ! test/hotspot/jtreg/gc/stress/TestMultiThreadStressRSet.java ! test/hotspot/jtreg/gc/stress/TestReclaimStringsLeaksMemory.java ! test/hotspot/jtreg/gc/stress/TestStressG1Humongous.java ! test/hotspot/jtreg/gc/stress/TestStressRSetCoarsening.java ! test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithG1.java ! test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithParallel.java ! test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithSerial.java ! test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithShenandoah.java ! test/hotspot/jtreg/gc/z/TestUncommit.java ! test/hotspot/jtreg/gtest/GTestWrapper.java ! test/hotspot/jtreg/runtime/8176717/TestInheritFD.java ! test/hotspot/jtreg/runtime/CreateMirror/ArraysNewInstanceBug.java ! test/hotspot/jtreg/runtime/ErrorHandling/CreateCoredumpOnCrash.java ! test/hotspot/jtreg/runtime/InvocationTests/invocationC1Tests.java ! test/hotspot/jtreg/runtime/InvocationTests/invokeinterfaceTests.java ! test/hotspot/jtreg/runtime/LoadClass/TestResize.java ! test/hotspot/jtreg/runtime/NMT/VirtualAllocCommitMerge.java ! test/hotspot/jtreg/runtime/SelectionResolution/InvokeInterfaceICCE.java ! test/hotspot/jtreg/runtime/SelectionResolution/InvokeInterfaceSuccessTest.java ! test/hotspot/jtreg/runtime/SelectionResolution/InvokeVirtualICCE.java ! test/hotspot/jtreg/runtime/SelectionResolution/InvokeVirtualSuccessTest.java ! test/hotspot/jtreg/runtime/Thread/TestThreadDumpMonitorContention.java ! test/hotspot/jtreg/runtime/cds/DeterministicDump.java ! test/hotspot/jtreg/runtime/cds/appcds/LotsOfSyntheticClasses.java ! test/hotspot/jtreg/runtime/cds/appcds/TestCommon.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCode/AOTCodeCompressedOopsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotProfile/AOTProfileFlags.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsStress.java ! test/hotspot/jtreg/runtime/exceptionMsgs/ArrayIndexOutOfBoundsException/ArrayIndexOutOfBoundsExceptionTest.java ! test/hotspot/jtreg/runtime/logging/RedefineClasses.java ! test/hotspot/jtreg/runtime/reflect/ReflectOutOfMemoryError.java ! test/hotspot/jtreg/serviceability/HeapDump/UnmountedVThreadNativeMethodAtTop.java ! test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorThreadTest.java ! test/hotspot/jtreg/serviceability/jvmti/SetTag/TagMapTest.java ! test/hotspot/jtreg/serviceability/jvmti/vthread/SuspendResume2/SuspendResume2.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbDumpheap.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbJstackXcompStress.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbThreadContext.java ! test/hotspot/jtreg/serviceability/sa/TestJhsdbJstackLineNumbers.java ! test/hotspot/jtreg/serviceability/sa/TestObjectAlignment.java ! test/hotspot/jtreg/serviceability/sa/sadebugd/SADebugDTest.java ! test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestNotCompilable.java ! test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_inMemoryCompilation_keep_class/TestDescription.java ! test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_inMemoryCompilation_keep_obj/TestDescription.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/LargeObjects/large001/large001.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/LargeObjects/large002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/LargeObjects/large003/TestDescription.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/LargeObjects/large004/TestDescription.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/LargeObjects/large005/TestDescription.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/SoftReference/soft004/soft004.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/WeakReference/weak004/weak004.java ! test/hotspot/jtreg/vmTestbase/gc/vector/CircularListLow/TestDescription.java ! test/hotspot/jtreg/vmTestbase/jit/escape/AdaptiveBlocking/AdaptiveBlocking001/AdaptiveBlocking001.java ! test/hotspot/jtreg/vmTestbase/metaspace/shrink_grow/CompressedClassSpaceSize/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/shrink_grow/ShrinkGrowMultiJVM/ShrinkGrowMultiJVM.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy003/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy004/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy005/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy006/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy007/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy008/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy009/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy010/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy011/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy012/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy013/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy014/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy015/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects001/referringObjects001.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/StepEvent/_itself_/stepEvent004/stepEvent004.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadDeathEvent/thread/thread001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/stress/serial/mixed002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdwp/VirtualMachine/HoldEvents/holdevents002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/ThreadInfo/isSuspended/issuspended002.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/stress/thread/strace001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/stress/thread/strace002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/stress/thread/strace003/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace006.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/thread/thread001.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/thread/thread002.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/thread/thread005.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/thread/thread006.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/thread/thread007.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/thread/thread008.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree001/btree001.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree002/btree002.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree003/btree003.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree004/btree004.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree005/btree005.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree006/btree006.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree007/btree007.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree008/btree008.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree009/btree009.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree010/btree010.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree011/btree011.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree012/btree012.java ! test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/func/jvmti/mergeCP_indy2manyDiff_a/TestDescription.java ! test/hotspot/jtreg/vmTestbase/vm/mlvm/meth/stress/compiler/i2c_c2i/Test.java ! test/hotspot/jtreg/vmTestbase/vm/mlvm/meth/stress/compiler/sequences/Test.java ! test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java ! test/jdk/com/sun/jdi/InterruptHangTest.java ! test/jdk/com/sun/jdi/MethodEntryExitEvents.java ! test/jdk/com/sun/jdi/ThreadMemoryLeakTest.java ! test/jdk/com/sun/jndi/ldap/LdapPoolTimeoutTest.java ! test/jdk/com/sun/nio/sctp/SctpChannel/Connect.java ! test/jdk/com/sun/nio/sctp/SctpServerChannel/NonBlockingAccept.java ! test/jdk/java/awt/font/NumericShaper/MTTest.java ! test/jdk/java/beans/XMLDecoder/8028054/TestMethodFinder.java ! test/jdk/java/foreign/StdLibTest.java ! test/jdk/java/foreign/TestAccessModes.java ! test/jdk/java/foreign/TestBufferStackStress2.java ! test/jdk/java/foreign/TestConcurrentClose.java ! test/jdk/java/foreign/TestDeadlock.java ! test/jdk/java/foreign/TestMismatch.java ! test/jdk/java/foreign/TestStringEncodingJumbo.java ! test/jdk/java/foreign/TestStubAllocFailure.java ! test/jdk/java/foreign/TestUpcallStack.java ! test/jdk/java/foreign/loaderLookup/TestLoaderLookup.java ! test/jdk/java/io/FileInputStream/UnreferencedFISClosesFd.java ! test/jdk/java/io/FileOutputStream/UnreferencedFOSClosesFd.java ! test/jdk/java/io/RandomAccessFile/UnreferencedRAFClosesFd.java ! test/jdk/java/lang/Class/getDeclaredField/FieldSetAccessibleTest.java ! test/jdk/java/lang/Math/IntegralPowTest.java ! test/jdk/java/lang/ProcessBuilder/FDLeakTest/FDLeakTest.java ! test/jdk/java/lang/ProcessBuilder/UnblockSignals.java ! test/jdk/java/lang/StackWalker/LocalsAndOperands.java ! test/jdk/java/lang/String/CompactString/MaxSizeUTF16String.java ! test/jdk/java/lang/StringBuilder/CompactStringBuilder.java ! test/jdk/java/lang/Thread/virtual/CancelTimerWithContention.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/Starvation.java ! test/jdk/java/lang/Thread/virtual/SynchronizedNative.java ! test/jdk/java/lang/Thread/virtual/ThreadPollOnYield.java ! test/jdk/java/lang/Thread/virtual/stress/GetStackTraceALotWhenBlocking.java ! test/jdk/java/lang/Thread/virtual/stress/GetStackTraceALotWithTimedWait.java ! test/jdk/java/lang/Thread/virtual/stress/ParkALot.java ! test/jdk/java/lang/Thread/virtual/stress/PinALot.java ! test/jdk/java/lang/Thread/virtual/stress/Skynet.java ! test/jdk/java/lang/Thread/virtual/stress/Skynet100kWithMonitors.java ! test/jdk/java/lang/Thread/virtual/stress/SleepALot.java ! test/jdk/java/lang/annotation/LoaderLeakTest.java ! test/jdk/java/lang/invoke/TestLambdaFormCustomization.java ! test/jdk/java/lang/reflect/IllegalArgumentsTest.java ! test/jdk/java/math/BigInteger/LargeValueExceptions.java ! test/jdk/java/net/DatagramSocket/UnreferencedDatagramSockets.java ! test/jdk/java/net/MulticastSocket/SetLoopbackModeIPv4.java ! test/jdk/java/net/MulticastSocket/UnreferencedMulticastSockets.java ! test/jdk/java/net/ServerSocket/UnreferencedSockets.java ! test/jdk/java/net/Socket/CloseAvailable.java ! test/jdk/java/net/httpclient/AsFileDownloadTest.java ! test/jdk/java/net/httpclient/BufferingSubscriberTest.java ! test/jdk/java/net/httpclient/CancelledResponse.java ! test/jdk/java/net/httpclient/HttpSlowServerTest.java ! test/jdk/java/net/httpclient/ManyRequests.java ! test/jdk/java/net/httpclient/ResponseBodyBeforeError.java ! test/jdk/java/net/httpclient/ResponsePublisher.java ! test/jdk/java/net/httpclient/SpecialHeadersTest.java ! test/jdk/java/net/httpclient/SplitResponse.java ! test/jdk/java/net/httpclient/SplitResponseAsync.java ! test/jdk/java/net/httpclient/SplitResponseKeepAlive.java ! test/jdk/java/net/httpclient/SplitResponseKeepAliveAsync.java ! test/jdk/java/net/httpclient/SplitResponseSSL.java ! test/jdk/java/net/httpclient/SplitResponseSSLAsync.java ! test/jdk/java/net/httpclient/SplitResponseSSLKeepAlive.java ! test/jdk/java/net/httpclient/SplitResponseSSLKeepAliveAsync.java ! test/jdk/java/net/httpclient/whitebox/FlowTestDriver.java ! test/jdk/java/nio/channels/AsynchronousSocketChannel/StressLoopback.java ! test/jdk/java/nio/channels/Channels/TransferTo.java ! test/jdk/java/nio/channels/Channels/TransferTo_2GB_transferFrom.java ! test/jdk/java/nio/channels/Channels/TransferTo_2GB_transferTo.java ! test/jdk/java/nio/channels/FileChannel/CleanerTest.java ! test/jdk/java/nio/channels/SocketChannel/CloseDuringConnect.java ! test/jdk/java/nio/channels/SocketChannel/OpenLeak.java ! test/jdk/java/nio/channels/unixdomain/IOExchanges.java ! test/jdk/java/nio/channels/vthread/BlockingChannelOps.java ! test/jdk/java/rmi/transport/dgcDeadLock/DGCDeadLock.java ! test/jdk/java/security/SignedObject/Chain.java ! test/jdk/java/text/Format/DateFormat/DateFormatTest.java ! test/jdk/java/util/HashMap/WhiteBoxResizeTest.java ! test/jdk/java/util/PluggableLocale/CurrencyNameProviderTest.java ! test/jdk/java/util/PluggableLocale/LocaleNameProviderTest.java ! test/jdk/java/util/concurrent/ScheduledThreadPoolExecutor/BasicCancelTest.java ! test/jdk/java/util/logging/FileHandlerPath.java ! test/jdk/java/util/logging/LogManager/Configuration/updateConfiguration/HandlersOnComplexResetUpdate.java ! test/jdk/java/util/logging/LogManager/Configuration/updateConfiguration/HandlersOnComplexUpdate.java + test/jdk/java/util/stream/boottest/java.base/java/util/stream/TEST.properties + test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/TEST.properties ! test/jdk/java/util/zip/DeInflate.java ! test/jdk/java/util/zip/ZipFile/TestZipFileEncodings.java ! test/jdk/javax/net/ssl/ciphersuites/DisabledAlgorithms.java ! test/jdk/javax/swing/JFileChooser/6868611/bug6868611.java ! test/jdk/javax/swing/plaf/basic/BasicDirectoryModel/ConcurrentModification.java ! test/jdk/javax/swing/text/html/parser/Parser/8078268/bug8078268.java ! test/jdk/javax/xml/crypto/dsig/GenerationTests.java ! test/jdk/jdk/incubator/vector/AddTest.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/vm/Continuation/BasicExt.java ! test/jdk/jdk/internal/vm/Continuation/Fuzz.java ! test/jdk/jdk/jfr/api/consumer/recordingstream/TestClose.java ! test/jdk/jdk/jfr/api/metadata/annotations/TestStackFilter.java ! test/jdk/jdk/jfr/event/oldobject/TestEmergencyDumpAtOOM.java ! test/jdk/jdk/jfr/event/oldobject/TestObjectDescription.java ! test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleMultipleRecordings.java ! test/jdk/jdk/jfr/jvm/TestModularImage.java ! test/jdk/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java ! test/jdk/sun/nio/ch/TestMaxCachedBufferSize.java ! test/jdk/sun/nio/cs/TestEncoderReplaceUTF16.java ! test/jdk/sun/security/ec/ed/EdDSATest.java ! test/jdk/sun/security/krb5/config/IncludeRandom.java ! test/jdk/sun/security/krb5/name/Constructors.java ! test/jdk/sun/security/pkcs11/KDF/TestHKDF.java ! test/jdk/sun/security/pkcs11/KeyPairGenerator/TestDefaultSize.java ! test/jdk/sun/security/pkcs11/KeyStore/ImportKeyToP12.java ! test/jdk/sun/security/pkcs11/Mac/TestLargeSecretKeys.java ! test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java ! test/jdk/sun/security/provider/acvp/Launcher.java ! test/jdk/sun/security/ssl/SSLSocketImpl/SSLSocketCloseHang.java ! test/jdk/sun/security/ssl/X509KeyManager/CertChecking.java ! test/jdk/sun/security/tools/jarsigner/ConciseJarsigner.java ! test/jdk/sun/security/tools/jarsigner/InsufficientSectionDelimiter.java ! test/jdk/sun/security/tools/jarsigner/RestrictedAlgo.java ! test/jdk/sun/security/tools/jarsigner/SectionNameContinuedVsLineBreak.java ! test/jdk/sun/security/tools/jarsigner/TimestampCheck.java ! test/jdk/sun/security/tools/keytool/GenerateAll.java ! test/jdk/sun/security/tools/keytool/ReadJar.java ! test/jdk/sun/security/tools/keytool/fakecacerts/TrustedCert.java ! test/jdk/sun/tools/jcmd/TestJcmdSanity.java ! test/jdk/sun/util/resources/TimeZone/Bug8139107.java ! test/jdk/tools/jlink/JLink100Modules.java ! test/jdk/tools/jlink/JLink20000Packages.java ! test/jdk/tools/jlink/JLinkTest.java ! test/jdk/tools/jlink/plugins/IncludeLocalesPluginTest.java ! test/jdk/tools/jlink/runtimeImage/JavaSEReproducibleTest.java ! test/jdk/tools/jpackage/macosx/DmgContentTest.java ! test/jdk/tools/jpackage/macosx/MacFileAssociationsTest.java ! test/jdk/tools/jpackage/share/AddLauncherTest.java ! test/jdk/tools/jpackage/share/AppLauncherSubstTest.java ! test/jdk/tools/jpackage/share/AppVersionTest.java ! test/jdk/tools/jpackage/share/BasicTest.java ! test/jdk/tools/jpackage/share/IconTest.java ! test/jdk/tools/jpackage/share/InOutPathTest.java ! test/jdk/tools/jpackage/share/InstallDirTest.java ! test/jdk/tools/jpackage/share/JavaOptionsTest.java ! test/jdk/tools/jpackage/share/MainClassTest.java ! test/jdk/tools/jpackage/share/MultiNameTwoPhaseTest.java ! test/jdk/tools/jpackage/share/PostImageScriptTest.java ! test/jdk/tools/jpackage/windows/WinNoRestartTest.java ! test/jdk/tools/launcher/InstanceMainTest.java ! test/langtools/jdk/javadoc/doclet/testLinkOption/TestRedirectLinks.java ! test/langtools/jdk/jshell/ClassesTest.java ! test/langtools/jdk/jshell/CompletionSuggestionTest.java ! test/langtools/jdk/jshell/HangingRemoteAgent.java ! test/langtools/jdk/jshell/JdiHangingLaunchExecutionControlTest.java ! test/langtools/jdk/jshell/JdiHangingListenExecutionControlTest.java ! test/langtools/jdk/jshell/ToolLocalSimpleTest.java ! test/langtools/jdk/jshell/ToolSimpleTest.java ! test/langtools/jdk/jshell/UITesting.java ! test/langtools/jdk/jshell/VariablesTest.java ! test/langtools/tools/javac/Paths/MineField.java ! test/langtools/tools/javac/Paths/WildcardMineField.java ! test/langtools/tools/javac/diags/CheckExamples.java ! test/langtools/tools/javac/diags/RunExamples.java ! test/langtools/tools/javac/failover/CheckAttributedTree.java ! test/langtools/tools/javac/file/MultiReleaseJar/MultiReleaseJarTest.java ! test/langtools/tools/javac/generics/diamond/7030150/GenericConstructorAndDiamondTest.java ! test/langtools/tools/javac/importscope/NegativeCyclicDependencyTest.java ! test/langtools/tools/javac/lambda/LambdaParserTest.java ! test/langtools/tools/javac/lambda/bridge/template_tests/TEST.properties ! test/langtools/tools/javac/lambda/intersection/IntersectionTargetTypeTest.java ! test/langtools/tools/javac/platform/createsymbols/CreateSymbolsReproducibleTest.java ! test/langtools/tools/javac/tree/JavacTreeScannerTest.java ! test/langtools/tools/javac/tree/SourceDocTreeScannerTest.java ! test/langtools/tools/javac/tree/SourceTreeScannerTest.java ! test/langtools/tools/javac/types/TestComparisons.java ! test/langtools/tools/javac/util/IteratorsTest.java ! test/langtools/tools/javac/varargs/warning/Warn5.java ! test/langtools/tools/lib/toolbox/ToolBox.java ! test/lib/jdk/test/lib/cds/CDSTestUtils.java ! test/lib/jdk/test/lib/util/ForceGC.java Changeset: 3fb9246a Branch: premain Author: Albert Mingkun Yang Date: 2025-09-02 07:54:36 +0000 URL: https://git.openjdk.org/leyden/commit/3fb9246af9a006c0b3a1f9c41d60dff74f7bf140 8366544: Parallel: Inline PSParallelCompact::invoke_no_policy Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psParallelCompact.hpp Changeset: d19eab4f Branch: premain Author: Francesco Andreuzzi Committer: Albert Mingkun Yang Date: 2025-09-02 07:57:03 +0000 URL: https://git.openjdk.org/leyden/commit/d19eab4f08592140229de43689c7d20ff7fbf4ee 8366556: Sort share/runtime includes Reviewed-by: dholmes, ayang ! src/hotspot/share/runtime/basicLock.inline.hpp ! src/hotspot/share/runtime/continuationFreezeThaw.cpp ! src/hotspot/share/runtime/continuationHelper.inline.hpp ! src/hotspot/share/runtime/continuationWrapper.inline.hpp ! src/hotspot/share/runtime/cpuTimeCounters.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/fieldDescriptor.cpp ! src/hotspot/share/runtime/flags/jvmFlag.hpp ! src/hotspot/share/runtime/flags/jvmFlagAccess.cpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.cpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp ! src/hotspot/share/runtime/flags/jvmFlagLimit.cpp ! src/hotspot/share/runtime/flags/jvmFlagLookup.hpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/frame.inline.hpp ! src/hotspot/share/runtime/handles.inline.hpp ! src/hotspot/share/runtime/handshake.cpp ! src/hotspot/share/runtime/interfaceSupport.cpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/keepStackGCProcessed.cpp ! src/hotspot/share/runtime/objectMonitor.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/signature.cpp ! src/hotspot/share/runtime/stackChunkFrameStream.inline.hpp ! src/hotspot/share/runtime/stubCodeGenerator.cpp ! src/hotspot/share/runtime/stubRoutines.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/threadSMR.inline.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/runtime/vframe.cpp ! src/hotspot/share/runtime/vframeArray.cpp ! src/hotspot/share/runtime/vframe_hp.cpp ! src/hotspot/share/runtime/vmOperations.cpp ! src/hotspot/share/runtime/vmOperations.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: af532cc1 Branch: premain Author: Joakim Nordstr?m Committer: David Holmes Date: 2025-09-02 07:58:38 +0000 URL: https://git.openjdk.org/leyden/commit/af532cc1b227c56cd03caca7d7558d58687d8584 8365913: Support latest MSC_VER in abstract_vm_version.cpp Reviewed-by: dholmes ! src/hotspot/share/runtime/abstract_vm_version.cpp Changeset: 523bc779 Branch: premain Author: Anton Artemov Committer: Joel Sikstr?m Date: 2025-09-02 08:15:27 +0000 URL: https://git.openjdk.org/leyden/commit/523bc77981cfe82956d2176f74917c41788da6db 8364816: GetLastError() in os_windows.cpp should not store value to errno Reviewed-by: dholmes, jsikstro ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/cds/aotClassLocation.cpp Changeset: ef7872cc Branch: premain Author: Afshin Zafari Date: 2025-09-02 09:08:26 +0000 URL: https://git.openjdk.org/leyden/commit/ef7872cc31d4d7c0a9f311eafc28132ead3476b6 8365163: [ubsan] left-shift issue in globalDefinitions.hpp Reviewed-by: kbarrett, stefank, aph ! src/hotspot/share/utilities/globalDefinitions.hpp ! test/hotspot/gtest/utilities/test_globalDefinitions.cpp Changeset: e66ed4d7 Branch: premain Author: Leo Korinth Date: 2025-09-02 09:30:29 +0000 URL: https://git.openjdk.org/leyden/commit/e66ed4d72948a56863f2979b976ef81c0fc43f75 8366666: Bump timeout on StressAsyncUL Reviewed-by: stefank ! test/hotspot/jtreg/runtime/logging/StressAsyncUL.java Changeset: 31847149 Branch: premain Author: Matthew Donovan Date: 2025-09-02 11:17:56 +0000 URL: https://git.openjdk.org/leyden/commit/31847149c1956b23c19a99309982660b4bbdd2d6 8325766: Extend CertificateBuilder to create trust and end entity certificates programmatically Reviewed-by: mullan, abarashev ! test/jdk/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java + test/jdk/sun/net/www/protocol/https/HttpsURLConnection/TEST.properties ! test/lib/jdk/test/lib/security/CertificateBuilder.java Changeset: eea50fbc Branch: premain Author: Volkan Yazici Date: 2025-09-02 12:42:46 +0000 URL: https://git.openjdk.org/leyden/commit/eea50fbc1b24710b18eff4b59dc90dee3736cd95 8356439: Rename JavaLangAccess::*NoRepl methods Reviewed-by: alanb, liach, rriggs ! src/java.base/share/classes/java/lang/String.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/nio/file/Files.java ! src/java.base/share/classes/java/util/zip/ZipCoder.java ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java ! src/java.base/unix/classes/sun/nio/fs/UnixPath.java - test/jdk/java/lang/String/NoReplTest.java + test/jdk/java/lang/String/OrThrowTest.java Changeset: 1feb9bd5 Branch: premain Author: Albert Mingkun Yang Date: 2025-09-02 12:46:59 +0000 URL: https://git.openjdk.org/leyden/commit/1feb9bd55946cad8a37745b0c9ceef16f408afd8 8365557: Parallel: Refactor ParallelScavengeHeap::mem_allocate_work Reviewed-by: tschatzl, iwalulya ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/psOldGen.hpp Changeset: 71035436 Branch: premain Author: Albert Mingkun Yang Date: 2025-09-02 13:09:33 +0000 URL: https://git.openjdk.org/leyden/commit/710354369e0131e900afc4ced706a9ed0e23ab9c 8366063: Parallel: Refactor copy_unmarked_to_survivor_space Reviewed-by: tschatzl, iwalulya ! src/hotspot/share/gc/parallel/psPromotionManager.hpp ! src/hotspot/share/gc/parallel/psPromotionManager.inline.hpp Changeset: a029245a Branch: premain Author: SendaoYan Date: 2025-09-02 13:25:32 +0000 URL: https://git.openjdk.org/leyden/commit/a029245a4e1f04052fa0f0a5af16ae0e770bd822 8365983: Tests should throw SkippedException when SCTP not supported Reviewed-by: jpai ! test/jdk/com/sun/nio/sctp/SctpChannel/Bind.java ! test/jdk/com/sun/nio/sctp/SctpChannel/CloseDescriptors.java ! test/jdk/com/sun/nio/sctp/SctpChannel/CommUp.java ! test/jdk/com/sun/nio/sctp/SctpChannel/Connect.java ! test/jdk/com/sun/nio/sctp/SctpChannel/Receive.java ! test/jdk/com/sun/nio/sctp/SctpChannel/ReceiveIntoDirect.java ! test/jdk/com/sun/nio/sctp/SctpChannel/Send.java ! test/jdk/com/sun/nio/sctp/SctpChannel/Shutdown.java ! test/jdk/com/sun/nio/sctp/SctpChannel/SocketOptionTests.java ! test/jdk/com/sun/nio/sctp/SctpMultiChannel/Branch.java ! test/jdk/com/sun/nio/sctp/SctpMultiChannel/CloseDescriptors.java ! test/jdk/com/sun/nio/sctp/SctpMultiChannel/Send.java ! test/jdk/com/sun/nio/sctp/SctpMultiChannel/SendFailed.java ! test/jdk/com/sun/nio/sctp/SctpMultiChannel/SocketOptionTests.java ! test/jdk/com/sun/nio/sctp/SctpServerChannel/Accept.java ! test/jdk/com/sun/nio/sctp/SctpServerChannel/NonBlockingAccept.java Changeset: 444a8fa1 Branch: premain Author: Ashutosh Mehra Date: 2025-09-02 14:54:50 +0000 URL: https://git.openjdk.org/leyden/commit/444a8fa14e8ab016b8aae018054c5dc1eb843fee 8365501: Remove special AdapterHandlerEntry for abstract methods Reviewed-by: kvn, adinn ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/runtime/javaCalls.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/sharedRuntime.hpp Changeset: ecf05ca5 Branch: premain Author: Volkan Yazici Date: 2025-09-02 15:26:48 +0000 URL: https://git.openjdk.org/leyden/commit/ecf05ca541b32736ab8e8a38d4be4f037a56361d 8366693: Backout recent JavaLangAccess changes breaking the build Reviewed-by: jpai, serb, alanb, syan, rriggs, jwaters ! src/java.base/share/classes/java/lang/String.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/nio/file/Files.java ! src/java.base/share/classes/java/util/zip/ZipCoder.java ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java ! src/java.base/unix/classes/sun/nio/fs/UnixPath.java + test/jdk/java/lang/String/NoReplTest.java - test/jdk/java/lang/String/OrThrowTest.java Changeset: 48ba8ed2 Branch: premain Author: Leo Korinth Date: 2025-09-02 17:00:33 +0000 URL: https://git.openjdk.org/leyden/commit/48ba8ed2439f9a4a5cdca8715ffddad377366347 8366704: Bump timeout on TestInheritFD Reviewed-by: lmesnik ! test/hotspot/jtreg/runtime/8176717/TestInheritFD.java Changeset: c935d1ce Branch: premain Author: Naoto Sato Date: 2025-09-02 17:11:34 +0000 URL: https://git.openjdk.org/leyden/commit/c935d1ce1c42ce98cc6ceffaa4f47eb2dba24dfd 8366375: Collator example for SECONDARY uses wrong code point Reviewed-by: jlu, joehw, smarks ! src/java.base/share/classes/java/text/Collator.java Changeset: 0d85f076 Branch: premain Author: Henry Jen Date: 2025-09-02 18:03:09 +0000 URL: https://git.openjdk.org/leyden/commit/0d85f076cc32494c1162baea3ea6b0db67136d41 8359174: tools/jlink/JLink20000Packages.java timed out Co-authored-by: Vicente Romero Co-authored-by: Eirik Bj?rsn?s Reviewed-by: jpai, liach ! test/jdk/tools/jlink/JLink20000Packages.java ! test/jdk/tools/lib/tests/JImageGenerator.java Changeset: 80fb7088 Branch: premain Author: Justin Lu Date: 2025-09-02 20:43:38 +0000 URL: https://git.openjdk.org/leyden/commit/80fb7088a10136080d23ea93b4840f17d738500c 8365175: Replace Unicode extension anchor elements with link tag Reviewed-by: liach, iris, naoto ! src/java.base/share/classes/java/text/DateFormat.java ! src/java.base/share/classes/java/text/DateFormatSymbols.java ! src/java.base/share/classes/java/text/DecimalFormatSymbols.java ! src/java.base/share/classes/java/text/NumberFormat.java ! src/java.base/share/classes/java/text/spi/DecimalFormatSymbolsProvider.java ! src/java.base/share/classes/java/time/format/DateTimeFormatter.java ! src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java ! src/java.base/share/classes/java/time/format/DecimalStyle.java ! src/java.base/share/classes/java/time/temporal/WeekFields.java ! src/java.base/share/classes/java/util/Calendar.java ! src/java.base/share/classes/java/util/ResourceBundle.java ! src/java.base/share/classes/java/util/spi/LocaleNameProvider.java Changeset: 991ac9e6 Branch: premain Author: Igor Veresov Date: 2025-09-02 21:28:22 +0000 URL: https://git.openjdk.org/leyden/commit/991ac9e6168b2573f78772e2d7936792a43fe336 8365407: Race condition in MethodTrainingData::verify() Reviewed-by: kvn, vlivanov, iklam ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/compiler/compilationPolicy.hpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/oops/trainingData.hpp ! src/hotspot/share/runtime/init.cpp ! src/hotspot/share/runtime/java.cpp Changeset: b50c11f9 Branch: premain Author: Saint Wesonga Committer: Erik Joelsson Date: 2025-09-02 23:04:52 +0000 URL: https://git.openjdk.org/leyden/commit/b50c11f9077f071cf5639de7e82ec261e0338532 8366195: Remove unnecessary quotes around -Ta ml64 assembler argument Reviewed-by: erikj ! make/autoconf/flags.m4 ! make/autoconf/spec.gmk.template ! make/common/native/CompileFile.gmk Changeset: 5052a7ee Branch: premain Author: Rui Li Committer: Kelvin Nilsen Date: 2025-09-02 23:49:23 +0000 URL: https://git.openjdk.org/leyden/commit/5052a7eee57e9d145950a0ab1ca71edc02bfe0be 8246037: Shenandoah: update man pages to mention -XX:+UseShenandoahGC Reviewed-by: ysr, wkemper, cslucas ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp ! src/java.base/share/man/java.md Changeset: e268563a Branch: premain Author: SendaoYan Date: 2025-09-03 00:57:52 +0000 URL: https://git.openjdk.org/leyden/commit/e268563a10b67bdcb3c030743ed3e2b3b7dfd0f7 8366476: Test gc/z/TestSmallHeap.java fails OOM with many NUMA nodes Reviewed-by: jsikstro, aboldtch ! test/hotspot/jtreg/gc/z/TestSmallHeap.java Changeset: 8c4090c2 Branch: premain Author: Galder Zamarre?o Committer: Roland Westrelin Date: 2025-09-03 06:38:27 +0000 URL: https://git.openjdk.org/leyden/commit/8c4090c2cfa00f9c3550669a0726a785b30ac1d5 8329077: C2 SuperWord: Add MoveD2L, MoveL2D, MoveF2I, MoveI2F Reviewed-by: epeter, qamai ! src/hotspot/share/opto/superword.cpp ! src/hotspot/share/opto/vectornode.cpp ! test/hotspot/jtreg/compiler/loopopts/superword/TestCompatibleUseDefTypeSize.java ! test/micro/org/openjdk/bench/vm/compiler/TypeVectorOperations.java Changeset: 7c70e734 Branch: premain Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-09-03 06:45:02 +0000 URL: https://git.openjdk.org/leyden/commit/7c70e7341438ce8a420021005a0f03fe917e5a26 8366660: Sort share/nmt includes Reviewed-by: ayang, shade ! src/hotspot/share/nmt/arrayWithFreeList.hpp ! src/hotspot/share/nmt/mallocLimit.cpp ! src/hotspot/share/nmt/mallocTracker.cpp ! src/hotspot/share/nmt/mallocTracker.inline.hpp ! src/hotspot/share/nmt/memMapPrinter.cpp ! src/hotspot/share/nmt/memReporter.cpp ! src/hotspot/share/nmt/memTracker.hpp ! src/hotspot/share/nmt/memoryFileTracker.cpp ! src/hotspot/share/nmt/memoryFileTracker.hpp ! src/hotspot/share/nmt/nmtNativeCallStackStorage.hpp ! src/hotspot/share/nmt/regionsTree.inline.hpp ! src/hotspot/share/nmt/virtualMemoryTracker.cpp ! src/hotspot/share/nmt/virtualMemoryTracker.hpp ! src/hotspot/share/nmt/vmatree.hpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: 6dda2f6f Branch: premain Author: Albert Mingkun Yang Date: 2025-09-03 07:52:28 +0000 URL: https://git.openjdk.org/leyden/commit/6dda2f6fad5cae95057fbdfa672e3b51aff61af7 8366543: Clean up include headers in numberSeq Reviewed-by: tschatzl ! src/hotspot/share/utilities/numberSeq.cpp ! src/hotspot/share/utilities/numberSeq.hpp Changeset: 3b2f3e53 Branch: premain Author: Leo Korinth Date: 2025-09-03 12:36:36 +0000 URL: https://git.openjdk.org/leyden/commit/3b2f3e53d7f27653c3d4608b141aed6a84829aa8 8366803: Bump timeout on sun/tools/jhsdb/BasicLauncherTest.java Reviewed-by: stefank ! test/jdk/sun/tools/jhsdb/BasicLauncherTest.java Changeset: 2a5f149b Branch: premain Author: Aleksey Shipilev Date: 2025-09-03 12:41:24 +0000 URL: https://git.openjdk.org/leyden/commit/2a5f149bb8e26277778465fff670591c929842de 8363966: GHA: Switch cross-compiling sysroots to Debian trixie Reviewed-by: ayang, fyang, erikj ! .github/workflows/build-cross-compile.yml Changeset: 3abaa836 Branch: premain Author: Stefan Karlsson Date: 2025-09-03 13:51:17 +0000 URL: https://git.openjdk.org/leyden/commit/3abaa83610efb5c8e9b86c6f895d6b58d21e1fa2 8366298: FDLeakTest sometimes takes minutes to complete on Linux Reviewed-by: lkorinth, rriggs, stuefe ! test/jdk/java/lang/ProcessBuilder/FDLeakTest/FDLeakTest.java ! test/jdk/java/lang/ProcessBuilder/FDLeakTest/libFDLeaker.c Changeset: d5935af2 Branch: premain Author: SendaoYan Date: 2025-09-03 14:40:23 +0000 URL: https://git.openjdk.org/leyden/commit/d5935af228d7129d75d6987767de50b019ec30c7 8366768: Problemlist jdk/jshell/ToolSimpleTest.java Reviewed-by: jlahoda ! test/langtools/ProblemList.txt Changeset: a40afdd0 Branch: premain Author: Vanitha B P Committer: Naoto Sato Date: 2025-09-03 15:31:15 +0000 URL: https://git.openjdk.org/leyden/commit/a40afdd08f366afcefb1ac9d5fb184c8e803707e 8366537: Test "java/util/TimeZone/DefaultTimeZoneTest.java" is not updating the zone ID as expected Reviewed-by: naoto, jlu ! test/jdk/java/util/TimeZone/DefaultTimeZoneTest.java Changeset: e3b36e3b Branch: premain Author: Justin Lu Date: 2025-09-03 18:00:13 +0000 URL: https://git.openjdk.org/leyden/commit/e3b36e3babb860d9d24a610160f47d42cfaafaa3 8366401: JCK test api/java_text/DecimalFormatSymbols/serial/InputTests.html fails after JDK-8363972 Reviewed-by: naoto ! src/java.base/share/classes/java/text/DecimalFormatSymbols.java + test/jdk/java/text/Format/DecimalFormat/DFSSerializationTest.java Changeset: 8d236615 Branch: premain Author: Albert Mingkun Yang Date: 2025-09-03 18:47:58 +0000 URL: https://git.openjdk.org/leyden/commit/8d236615b7db2bd5a2a59002b79e59cf4e6a308a 8366155: Serial: Obsolete PretenureSizeThreshold Reviewed-by: tschatzl ! src/hotspot/share/gc/serial/defNewGeneration.cpp ! src/hotspot/share/gc/serial/defNewGeneration.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/gc_globals.hpp ! src/hotspot/share/runtime/arguments.cpp Changeset: 431f4672 Branch: premain Author: Chen Liang Date: 2025-09-03 19:21:38 +0000 URL: https://git.openjdk.org/leyden/commit/431f46724658b703e995e518cb7a2149c50d6a9d 8361635: Missing List length validation in the Class-File API Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/Annotation.java ! src/java.base/share/classes/java/lang/classfile/AnnotationElement.java ! src/java.base/share/classes/java/lang/classfile/AnnotationValue.java ! src/java.base/share/classes/java/lang/classfile/ClassBuilder.java ! src/java.base/share/classes/java/lang/classfile/CodeBuilder.java ! src/java.base/share/classes/java/lang/classfile/Interfaces.java ! src/java.base/share/classes/java/lang/classfile/TypeAnnotation.java ! src/java.base/share/classes/java/lang/classfile/attribute/CharacterRangeTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ExceptionsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/InnerClassesAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/LineNumberTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/MethodParametersAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleExportInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleHashesAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleOpenInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModulePackagesAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleProvideInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/NestMembersAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/PermittedSubclassesAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RecordAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RecordComponentInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleParameterAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleTypeAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleParameterAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleTypeAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/StackMapFrameInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/StackMapTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPoolBuilder.java ! src/java.base/share/classes/java/lang/classfile/constantpool/Utf8Entry.java ! src/java.base/share/classes/java/lang/classfile/package-info.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AttributeHolder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BootstrapMethodEntryImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufWriterImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/InterfacesImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/UnboundAttribute.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java ! test/jdk/jdk/classfile/LimitsTest.java + test/jdk/jdk/classfile/ListValidationTest.java Changeset: becc35f2 Branch: premain Author: Justin Lu Date: 2025-09-03 21:58:26 +0000 URL: https://git.openjdk.org/leyden/commit/becc35f28792a48fac488841d0bc43226d7c96a7 8366400: JCK test api/java_text/DecimalFormat/Parse.html fails after JDK-8363972 Reviewed-by: naoto ! src/java.base/share/classes/java/text/DecimalFormat.java ! test/jdk/java/text/Format/NumberFormat/PositionTest.java Changeset: 02dd2119 Branch: premain Author: SendaoYan Date: 2025-09-04 01:28:25 +0000 URL: https://git.openjdk.org/leyden/commit/02dd21196ed27289a6fad92c4881af484ce9c258 8366692: Several gc/shenandoah tests timed out Reviewed-by: shade, wkemper ! test/hotspot/jtreg/gc/shenandoah/TestAllocObjects.java ! test/hotspot/jtreg/gc/shenandoah/TestSieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/jni/TestJNIGlobalRefs.java Changeset: ed62bda2 Branch: premain Author: SendaoYan Date: 2025-09-04 01:29:34 +0000 URL: https://git.openjdk.org/leyden/commit/ed62bda2e0c51a67baae1fc28e41c9cd878db5f4 8366694: Test JdbStopInNotificationThreadTest.java timed out after 60 second Reviewed-by: cjplummer, ayang, lmesnik ! test/jdk/com/sun/jdi/JdbStopInNotificationThreadTest.java Changeset: 11743b1e Branch: premain Author: SendaoYan Date: 2025-09-04 01:37:42 +0000 URL: https://git.openjdk.org/leyden/commit/11743b1ed3d681ce17c2342616c4040c4b539b31 8366695: Test sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java timed out Reviewed-by: lmesnik, kevinw ! test/jdk/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java Changeset: f4d73d2a Branch: premain Author: Ioi Lam Date: 2025-09-04 02:31:12 +0000 URL: https://git.openjdk.org/leyden/commit/f4d73d2a3dbeccfd04d49c0cfd690086edd0544f 8366584: Add an InstanceKlass::super() method that returns InstanceKlass* Reviewed-by: dholmes, coleenp ! src/hotspot/share/cds/aotArtifactFinder.cpp ! src/hotspot/share/cds/aotClassLinker.cpp ! src/hotspot/share/cds/aotLinkedClassBulkLoader.cpp ! src/hotspot/share/cds/classListParser.cpp ! src/hotspot/share/cds/classListWriter.cpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/ci/ciReplay.cpp ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/defaultMethods.cpp ! src/hotspot/share/classfile/fieldLayoutBuilder.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/vmClasses.cpp ! src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp ! src/hotspot/share/jfr/leakprofiler/chains/edgeUtils.cpp ! src/hotspot/share/memory/heapInspection.cpp ! src/hotspot/share/oops/fieldStreams.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/prims/jvmtiTagMap.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/services/heapDumper.cpp Changeset: 4d1dfabc Branch: premain Author: Anton Artemov Committer: David Holmes Date: 2025-09-04 04:35:51 +0000 URL: https://git.openjdk.org/leyden/commit/4d1dfabcb4e94601995b07b7ecea4249ae375a04 8366038: Thread::SpinRelease should use Atomic::release_store Reviewed-by: dholmes, ayang ! src/hotspot/share/runtime/thread.cpp Changeset: 90a2db1e Branch: premain Author: Ioi Lam Date: 2025-09-04 04:47:48 +0000 URL: https://git.openjdk.org/leyden/commit/90a2db1ecbc3ea25a8e9f15b34a3d8f3941b60d0 8366474: Rename MetaspaceObj::is_shared() to MetaspaceObj::in_aot_cache() Reviewed-by: liach, kvn ! src/hotspot/os/posix/vmError_posix.cpp ! src/hotspot/os/windows/vmError_windows.cpp ! src/hotspot/share/cds/aotArtifactFinder.cpp ! src/hotspot/share/cds/aotClassLinker.cpp ! src/hotspot/share/cds/aotConstantPoolResolver.cpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveUtils.hpp ! src/hotspot/share/cds/archiveUtils.inline.hpp ! src/hotspot/share/cds/cdsProtectionDomain.cpp ! src/hotspot/share/cds/classListWriter.cpp ! src/hotspot/share/cds/cppVtables.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.cpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/lambdaFormInvokers.cpp ! src/hotspot/share/cds/lambdaProxyClassDictionary.cpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/cds/metaspaceShared.hpp ! src/hotspot/share/cds/runTimeClassInfo.cpp ! src/hotspot/share/cds/runTimeClassInfo.hpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/klassFactory.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/vmClasses.cpp ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/rewriter.cpp ! src/hotspot/share/memory/allocation.cpp ! src/hotspot/share/memory/allocation.hpp ! src/hotspot/share/memory/metadataFactory.hpp ! src/hotspot/share/memory/metaspace.cpp ! src/hotspot/share/memory/metaspace.hpp ! src/hotspot/share/memory/metaspace/printCLDMetaspaceInfoClosure.cpp ! src/hotspot/share/memory/metaspace/printMetaspaceInfoKlassClosure.cpp ! src/hotspot/share/oops/arrayKlass.cpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/constantPool.hpp ! src/hotspot/share/oops/cpCache.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceMirrorKlass.inline.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/MetaspaceObj.java Changeset: 62bc7b7c Branch: premain Author: Kim Barrett Date: 2025-09-04 05:42:18 +0000 URL: https://git.openjdk.org/leyden/commit/62bc7b7c4247a62c23ea93cd960c3c0434925c49 8300080: offset_of for GCC/Clang exhibits undefined behavior and is not always a compile-time constant Reviewed-by: stefank, jsjolen ! make/hotspot/lib/CompileJvm.gmk ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/hotspot/share/utilities/globalDefinitions_gcc.hpp ! src/hotspot/share/utilities/globalDefinitions_visCPP.hpp Changeset: a03302d4 Branch: premain Author: Stefan Johansson Date: 2025-09-04 06:33:57 +0000 URL: https://git.openjdk.org/leyden/commit/a03302d41bb9971736d4d56381ca0cad1eb3e34b 8366434: THP not working properly with G1 after JDK-8345655 Co-authored-by: Stefan Karlsson Co-authored-by: Stefan Johansson Reviewed-by: stefank, shade ! src/hotspot/share/memory/memoryReserver.cpp ! src/hotspot/share/memory/memoryReserver.hpp + test/hotspot/jtreg/gc/TestTransparentHugePagesHeap.java Changeset: 2527e9e5 Branch: premain Author: Emanuel Peter Date: 2025-09-04 06:53:35 +0000 URL: https://git.openjdk.org/leyden/commit/2527e9e58d770c50e6d807bf1483c6bb07dd3de7 8366490: C2 SuperWord: wrong result because CastP2X is missing ctrl and floats over SafePoint creating stale oops Reviewed-by: thartmann, chagedorn, mhaessig ! src/hotspot/share/opto/vectorization.cpp ! src/hotspot/share/opto/vectorization.hpp ! src/hotspot/share/opto/vtransform.cpp ! src/hotspot/share/opto/vtransform.hpp + test/hotspot/jtreg/compiler/loopopts/superword/TestAliasingCastP2XCtrl.java Changeset: 49fd6a0c Branch: premain Author: Arno Zeller Committer: Matthias Baesken Date: 2025-09-04 07:03:10 +0000 URL: https://git.openjdk.org/leyden/commit/49fd6a0cb4ddabaa865155bbfd4290077b7d13ea 8366558: Gtests leave /tmp/cgroups-test* files Reviewed-by: mbaesken, stuefe, lmesnik ! test/hotspot/gtest/runtime/test_cgroupSubsystem_linux.cpp Changeset: 222ae365 Branch: premain Author: Thomas Schatzl Date: 2025-09-04 07:03:28 +0000 URL: https://git.openjdk.org/leyden/commit/222ae365c89e7bcd2cd920f60aa34eebee2c83b6 8366688: G1: Rename G1HeapRegionRemSet::is_added_to_cset_group() to has_cset_group() Reviewed-by: ayang, iwalulya ! src/hotspot/share/gc/g1/g1CardSet.cpp ! src/hotspot/share/gc/g1/g1CollectionSet.cpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1HeapRegionRemSet.cpp ! src/hotspot/share/gc/g1/g1HeapRegionRemSet.hpp ! src/hotspot/share/gc/g1/g1HeapRegionRemSet.inline.hpp ! src/hotspot/share/gc/g1/g1RemSetSummary.cpp ! src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp Changeset: 1495dd94 Branch: premain Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-09-04 07:13:41 +0000 URL: https://git.openjdk.org/leyden/commit/1495dd94e97fc023dede71f957ce3b166d20d5ac 8366778: Sort share/asm, share/gc, share/include includes Reviewed-by: shade, ayang, jsikstro ! src/hotspot/share/asm/assembler.cpp ! src/hotspot/share/asm/codeBuffer.hpp ! src/hotspot/share/asm/codeBuffer.inline.hpp ! src/hotspot/share/gc/epsilon/epsilonHeap.cpp ! src/hotspot/share/gc/g1/g1FullGCResetMetadataTask.hpp ! src/hotspot/share/gc/serial/serialHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/referenceProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.cpp ! src/hotspot/share/gc/z/zUncoloredRoot.inline.hpp ! src/hotspot/share/include/jvm_io.h ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: 986ecff5 Branch: premain Author: SendaoYan Date: 2025-09-04 07:14:59 +0000 URL: https://git.openjdk.org/leyden/commit/986ecff5f9b16f1b41ff15ad94774d65f3a4631d 8366849: Problemlist jdk/jshell/ToolSimpleTest.java as generic-all Reviewed-by: liach, jlahoda ! test/langtools/ProblemList.txt Changeset: ab9f70dd Branch: premain Author: Matthias Baesken Date: 2025-09-04 08:01:01 +0000 URL: https://git.openjdk.org/leyden/commit/ab9f70dd5acd73744e3d82e9884985904f280c26 8366420: AOTMapTest fails when default jsa is missing from JDK Reviewed-by: iklam, azeller ! test/hotspot/jtreg/runtime/cds/CDSMapTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/AOTMapTest.java Changeset: 53d4e928 Branch: premain Author: Casper Norrbin Date: 2025-09-04 09:47:42 +0000 URL: https://git.openjdk.org/leyden/commit/53d4e928ef2851f3e16d1d200b5c3fb036e15e00 8366238: Improve RBTree API with stricter comparator semantics and pluggable validation/printing hooks Reviewed-by: jsjolen, ayang ! src/hotspot/share/gc/z/zMappedCache.cpp ! src/hotspot/share/gc/z/zMappedCache.hpp ! src/hotspot/share/nmt/vmatree.hpp ! src/hotspot/share/opto/printinlining.hpp ! src/hotspot/share/utilities/rbTree.hpp ! src/hotspot/share/utilities/rbTree.inline.hpp ! test/hotspot/gtest/utilities/test_rbtree.cpp Changeset: 8c50bed8 Branch: premain Author: Casper Norrbin Date: 2025-09-04 10:48:57 +0000 URL: https://git.openjdk.org/leyden/commit/8c50bed86709a45615743dd7953b8c6861f1da0c 8366872: Wrong number of template arguments in test in test_rbtree.cpp Reviewed-by: ayang, syan ! test/hotspot/gtest/utilities/test_rbtree.cpp Changeset: 80873a09 Branch: premain Author: Magnus Ihse Bursie Date: 2025-09-04 13:17:29 +0000 URL: https://git.openjdk.org/leyden/commit/80873a09bf8392d98d20273e0688b17c62252242 8366836: Don't execute post-IncludeCustomExtension if file was not included Reviewed-by: erikj ! make/common/MakeIncludeEnd.gmk ! make/common/MakeIncludeStart.gmk Changeset: e1903557 Branch: premain Author: David Beaumont Committer: Roger Riggs Date: 2025-09-04 13:19:12 +0000 URL: https://git.openjdk.org/leyden/commit/e19035577724f40aca14ef7d5dad0906ce9e89ab 8365467: Issues with jrtfs implementation for exploded run-time images Reviewed-by: rriggs, sundar ! src/java.base/share/classes/jdk/internal/jrtfs/ExplodedImage.java ! src/java.base/share/classes/jdk/internal/jrtfs/SystemImage.java + test/jdk/jdk/internal/jrtfs/whitebox/ExplodedImageTestDriver.java + test/jdk/jdk/internal/jrtfs/whitebox/TEST.properties + test/jdk/jdk/internal/jrtfs/whitebox/java.base/jdk/internal/jrtfs/ExplodedImageTest.java Changeset: 79a1a98c Branch: premain Author: Ioi Lam Date: 2025-09-04 16:19:35 +0000 URL: https://git.openjdk.org/leyden/commit/79a1a98cabb579a5de504144abacb386486fba7e 8366498: Simplify ClassFileParser::parse_super_class Reviewed-by: dholmes, coleenp ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classFileParser.hpp Changeset: f90d5203 Branch: premain Author: Ioi Lam Date: 2025-09-04 16:23:46 +0000 URL: https://git.openjdk.org/leyden/commit/f90d520308d5fa72497dc59bee7258931c2a3d95 8366475: Rename MetaspaceShared class to AOTMetaspace Reviewed-by: kvn, asmehra ! src/hotspot/os/posix/vmError_posix.cpp ! src/hotspot/os/windows/vmError_windows.cpp ! src/hotspot/os_cpu/bsd_aarch64/javaThread_bsd_aarch64.cpp ! src/hotspot/share/cds/aotCacheAccess.cpp ! src/hotspot/share/cds/aotClassLocation.cpp ! src/hotspot/share/cds/aotLinkedClassBulkLoader.cpp ! src/hotspot/share/cds/aotMapLogger.cpp = src/hotspot/share/cds/aotMetaspace.cpp = src/hotspot/share/cds/aotMetaspace.hpp ! src/hotspot/share/cds/aotReferenceObjSupport.cpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveHeapLoader.cpp ! src/hotspot/share/cds/archiveUtils.cpp ! src/hotspot/share/cds/archiveUtils.inline.hpp ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/cdsHeapVerifier.cpp ! src/hotspot/share/cds/cdsProtectionDomain.cpp ! src/hotspot/share/cds/classListParser.cpp ! src/hotspot/share/cds/cppVtables.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.hpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/dynamicArchive.hpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/cds/finalImageRecipes.cpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp ! src/hotspot/share/cds/lambdaFormInvokers.cpp ! src/hotspot/share/cds/lambdaProxyClassDictionary.hpp ! src/hotspot/share/cds/runTimeClassInfo.cpp ! src/hotspot/share/cds/runTimeClassInfo.hpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/modules.cpp ! src/hotspot/share/classfile/stringTable.cpp ! src/hotspot/share/classfile/symbolTable.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/include/cds.h ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/rewriter.cpp ! src/hotspot/share/memory/metaspace.cpp ! src/hotspot/share/memory/metaspace.hpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/memory/universe.hpp ! src/hotspot/share/oops/arrayKlass.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/symbol.cpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/utilities/vmError.cpp ! test/hotspot/jtreg/runtime/cds/SpaceUtilizationCheck.java ! test/hotspot/jtreg/runtime/cds/appcds/SharedArchiveConsistency.java ! test/lib/jdk/test/lib/cds/CDSArchiveUtils.java Changeset: 8520fd3f Branch: premain Author: Vladimir Ivanov Committer: Sandhya Viswanathan Date: 2025-09-04 16:50:58 +0000 URL: https://git.openjdk.org/leyden/commit/8520fd3f6a8d00d3ab0b01af6ce2307f74258fb6 8366365: [test] test/lib-test/jdk/test/whitebox/CPUInfoTest.java should be updated Reviewed-by: kvn, sviswanathan ! test/lib-test/jdk/test/whitebox/CPUInfoTest.java Changeset: 1dc1d56f Branch: premain Author: Vladimir Ivanov Committer: Sandhya Viswanathan Date: 2025-09-04 16:57:36 +0000 URL: https://git.openjdk.org/leyden/commit/1dc1d56f79e10c9b4c5c8b42a80a191f7b14c738 8363858: [perf] OptimizeFill may use wide set of intrinsics Reviewed-by: roland, sviswanathan ! src/hotspot/cpu/x86/vm_version_x86.cpp Changeset: 945aaf89 Branch: premain Author: Casper Norrbin Date: 2025-09-04 19:00:39 +0000 URL: https://git.openjdk.org/leyden/commit/945aaf893219f9ead94fd8aae4994f7b520f64bf 8366897: RBTreeTest.IntrusiveCustomVerifyTest and RBTreeTest.CustomVerify tests fail on non-debug builds Reviewed-by: ayang ! src/hotspot/share/utilities/rbTree.inline.hpp Changeset: c3bf3b5d Branch: premain Author: Ioi Lam Date: 2025-09-04 15:27:22 +0000 URL: https://git.openjdk.org/leyden/commit/c3bf3b5d4b7217c701c4aacf2c12f55b3526a555 Merge master 09-04-25 ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/share/asm/codeBuffer.hpp ! src/hotspot/share/cds/aotCacheAccess.cpp ! src/hotspot/share/cds/aotClassLinker.cpp ! src/hotspot/share/cds/aotClassLocation.cpp ! src/hotspot/share/cds/aotConstantPoolResolver.cpp ! src/hotspot/share/cds/aotLinkedClassBulkLoader.cpp = src/hotspot/share/cds/aotMetaspace.cpp = src/hotspot/share/cds/aotMetaspace.hpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveHeapLoader.cpp ! src/hotspot/share/cds/archiveUtils.cpp ! src/hotspot/share/cds/archiveUtils.hpp ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/cdsEndTrainingUpcall.cpp ! src/hotspot/share/cds/cdsHeapVerifier.cpp ! src/hotspot/share/cds/cdsProtectionDomain.cpp ! src/hotspot/share/cds/classListParser.cpp ! src/hotspot/share/cds/classListWriter.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.hpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/cds/finalImageRecipes.cpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp ! src/hotspot/share/cds/lambdaProxyClassDictionary.hpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/ci/ciReplay.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/klassFactory.cpp ! src/hotspot/share/classfile/modules.cpp ! src/hotspot/share/classfile/stringTable.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/compiler/compilationPolicy.hpp ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/gc/g1/c1/g1BarrierSetC1.cpp ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/rewriter.cpp ! src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp ! src/hotspot/share/memory/memoryReserver.cpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/cpCache.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/prims/methodHandles.hpp ! src/hotspot/share/prims/unsafe.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/init.cpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/sharedRuntime.hpp ! src/hotspot/share/runtime/signature.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/services/management.cpp ! src/hotspot/share/utilities/vmError.cpp ! src/java.base/share/classes/java/lang/module/ModuleDescriptor.java ! test/hotspot/jtreg/runtime/cds/appcds/LotsOfSyntheticClasses.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCode/AOTCodeCompressedOopsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotProfile/AOTProfileFlags.java ! test/lib/jdk/test/lib/cds/CDSTestUtils.java ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/share/asm/codeBuffer.hpp ! src/hotspot/share/cds/aotCacheAccess.cpp ! src/hotspot/share/cds/aotClassLinker.cpp ! src/hotspot/share/cds/aotClassLocation.cpp ! src/hotspot/share/cds/aotConstantPoolResolver.cpp ! src/hotspot/share/cds/aotLinkedClassBulkLoader.cpp ! src/hotspot/share/cds/aotMetaspace.cpp ! src/hotspot/share/cds/aotMetaspace.hpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveHeapLoader.cpp ! src/hotspot/share/cds/archiveUtils.cpp ! src/hotspot/share/cds/archiveUtils.hpp ! src/hotspot/share/cds/cdsConfig.cpp + src/hotspot/share/cds/cdsEndTrainingUpcall.cpp ! src/hotspot/share/cds/cdsHeapVerifier.cpp ! src/hotspot/share/cds/cdsProtectionDomain.cpp ! src/hotspot/share/cds/classListParser.cpp ! src/hotspot/share/cds/classListWriter.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.hpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/cds/finalImageRecipes.cpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp ! src/hotspot/share/cds/lambdaProxyClassDictionary.hpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/ci/ciReplay.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/klassFactory.cpp ! src/hotspot/share/classfile/modules.cpp ! src/hotspot/share/classfile/stringTable.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/compiler/compilationPolicy.hpp ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/gc/g1/c1/g1BarrierSetC1.cpp ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/rewriter.cpp ! src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp ! src/hotspot/share/memory/memoryReserver.cpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/cpCache.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/prims/methodHandles.hpp ! src/hotspot/share/prims/unsafe.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/init.cpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/sharedRuntime.hpp ! src/hotspot/share/runtime/signature.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/services/management.cpp ! src/hotspot/share/utilities/vmError.cpp ! src/java.base/share/classes/java/lang/module/ModuleDescriptor.java ! test/hotspot/jtreg/runtime/cds/appcds/LotsOfSyntheticClasses.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCode/AOTCodeCompressedOopsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotProfile/AOTProfileFlags.java ! test/lib/jdk/test/lib/cds/CDSTestUtils.java Changeset: f05632cd Branch: premain Author: Ioi Lam Date: 2025-09-04 17:49:41 +0000 URL: https://git.openjdk.org/leyden/commit/f05632cd8f524712506573e50c739b760abf898c Increased timeout in SpringPetClinic.java ! test/hotspot/jtreg/runtime/cds/appcds/applications/SpringPetClinic.java From shade at openjdk.org Fri Sep 5 11:11:26 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 5 Sep 2025 11:11:26 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately In-Reply-To: References: Message-ID: On Wed, 3 Sep 2025 23:32:47 GMT, Ashutosh Mehra wrote: > Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. > Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. > > In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. > > ACE=AOTCodeEntry > > | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: > > > | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > and then the whole memory block is copied into the final buffer. > This means the size of the temporary buffer needs to be a bit more than required. > > Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. > > This PR is an attempt to fix above issues. It does final assembly in following steps: > 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer > 2. Now the payload for the preload entries is marked > 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer > 4. Then add the payload for these entries > 5. Finally add the search table > > > | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | > > > This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. > > I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. > > **Performance impact:** > > Startup numbers for spring-boot-getting-started: > > Run,Old CDS + AOT,New CDS + AOT > 1,263,275 > 2,265,278 > 3,266,272 > 4,277,271 > 5,265,265 > 6,264,261 > 7,266,263 > 8,258,266 > 9,275,268 > 10,277,263 > Geomean,267.53,268.15 > Stdev,6.14,5.34 > > > AOTCache size comparison: > > -XX:-UseNewCode: 65613824 bytes > -XX:+UseNewCode: 65597440 bytes... `UseNewCode` should really be folded. It is good for experimentation, but the final commit should just do the new code unconditionally. ------------- PR Comment: https://git.openjdk.org/leyden/pull/95#issuecomment-3257972479 From asmehra at openjdk.org Fri Sep 5 14:10:33 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 5 Sep 2025 14:10:33 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately In-Reply-To: References: Message-ID: On Fri, 5 Sep 2025 11:08:19 GMT, Aleksey Shipilev wrote: > UseNewCode should really be folded. It is good for experimentation, but the final commit should just do the new code unconditionally. Yes, that's the plan. I added `UseNewCode` to make it easier to compare performance. If the patch looks fine, I will update the patch to remove the older version of the functions. ------------- PR Comment: https://git.openjdk.org/leyden/pull/95#issuecomment-3258490906 From asmehra at openjdk.org Fri Sep 5 14:16:36 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 5 Sep 2025 14:16:36 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately In-Reply-To: <948py8Y2UTcysHwod5V024iL9hCgCIivzSHWESgiErY=.e3e56be4-c920-421b-a8e6-af3b63ef252b@github.com> References: <948py8Y2UTcysHwod5V024iL9hCgCIivzSHWESgiErY=.e3e56be4-c920-421b-a8e6-af3b63ef252b@github.com> Message-ID: On Thu, 4 Sep 2025 15:23:35 GMT, Andrew Dinn wrote: >> Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. >> Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. >> >> In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. >> >> ACE=AOTCodeEntry >> >> | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: >> >> >> | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> and then the whole memory block is copied into the final buffer. >> This means the size of the temporary buffer needs to be a bit more than required. >> >> Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. >> >> This PR is an attempt to fix above issues. It does final assembly in following steps: >> 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer >> 2. Now the payload for the preload entries is marked >> 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer >> 4. Then add the payload for these entries >> 5. Finally add the search table >> >> >> | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | >> >> >> This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. >> >> I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. >> >> **Performance impact:** >> >> Startup numbers for spring-boot-getting-started: >> >> Run,Old CDS + AOT,New CDS + AOT >> 1,263,275 >> 2,265,278 >> 3,266,272 >> 4,277,271 >> 5,265,265 >> 6,264,261 >> 7,266,263 >> 8,258,266 >> 9,275,268 >> 10,277,263 >> Geomean,267.53,268.15 >> St... > > src/hotspot/share/code/aotCodeCache.cpp line 511: > >> 509: } >> 510: log_info (aot, codecache, init)("Loaded %u AOT code entries from AOT Code Cache", _load_header->entries_count()); >> 511: log_debug(aot, codecache, init)(" %s: total=%u", aot_code_entry_kind_name[AOTCodeEntry::Adapter], _load_header->adapters_count()); > > You need to fix the exit trace at line 1300 onwards to call `aot_code_entry_kind_name()` Those exit traces are in older version of finish_write, which I am going to remove now. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/95#discussion_r2325223367 From asmehra at openjdk.org Fri Sep 5 14:59:05 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 5 Sep 2025 14:59:05 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately [v2] In-Reply-To: References: Message-ID: > Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. > Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. > > In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. > > ACE=AOTCodeEntry > > | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: > > > | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > and then the whole memory block is copied into the final buffer. > This means the size of the temporary buffer needs to be a bit more than required. > > Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. > > This PR is an attempt to fix above issues. It does final assembly in following steps: > 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer > 2. Now the payload for the preload entries is marked > 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer > 4. Then add the payload for these entries > 5. Finally add the search table > > > | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | > > > This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. > > I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. > > **Performance impact:** > > Startup numbers for spring-boot-getting-started: > > Run,Old CDS + AOT,New CDS + AOT > 1,263,275 > 2,265,278 > 3,266,272 > 4,277,271 > 5,265,265 > 6,264,261 > 7,266,263 > 8,258,266 > 9,275,268 > 10,277,263 > Geomean,267.53,268.15 > Stdev,6.14,5.34 > > > AOTCache size comparison: > > -XX:-UseNewCode: 65613824 bytes > -XX:+UseNewCode: 65597440 bytes... Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: Remove UseNewCode and older version of functions Signed-off-by: Ashutosh Mehra ------------- Changes: - all: https://git.openjdk.org/leyden/pull/95/files - new: https://git.openjdk.org/leyden/pull/95/files/0e76a2d3..f1e95d7b Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=95&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=95&range=00-01 Stats: 293 lines in 2 files changed: 0 ins; 263 del; 30 mod Patch: https://git.openjdk.org/leyden/pull/95.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/95/head:pull/95 PR: https://git.openjdk.org/leyden/pull/95 From asmehra at openjdk.org Fri Sep 5 16:39:33 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 5 Sep 2025 16:39:33 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately In-Reply-To: References: Message-ID: On Fri, 5 Sep 2025 11:08:19 GMT, Aleksey Shipilev wrote: >> Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. >> Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. >> >> In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. >> >> ACE=AOTCodeEntry >> >> | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: >> >> >> | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> and then the whole memory block is copied into the final buffer. >> This means the size of the temporary buffer needs to be a bit more than required. >> >> Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. >> >> This PR is an attempt to fix above issues. It does final assembly in following steps: >> 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer >> 2. Now the payload for the preload entries is marked >> 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer >> 4. Then add the payload for these entries >> 5. Finally add the search table >> >> >> | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | >> >> >> This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. >> >> I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. >> >> **Performance impact:** >> >> Startup numbers for spring-boot-getting-started: >> >> Run,Old CDS + AOT,New CDS + AOT >> 1,263,275 >> 2,265,278 >> 3,266,272 >> 4,277,271 >> 5,265,265 >> 6,264,261 >> 7,266,263 >> 8,258,266 >> 9,275,268 >> 10,277,263 >> Geomean,267.53,268.15 >> St... > > `UseNewCode` should really be folded. It is good for experimentation, but the final commit should just do the new code unconditionally. @shipilev I have removed the older version of the functions. ------------- PR Comment: https://git.openjdk.org/leyden/pull/95#issuecomment-3258981085 From adinn at openjdk.org Mon Sep 8 13:39:30 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Mon, 8 Sep 2025 13:39:30 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately [v2] In-Reply-To: References: Message-ID: On Fri, 5 Sep 2025 14:59:05 GMT, Ashutosh Mehra wrote: >> Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. >> Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. >> >> In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. >> >> ACE=AOTCodeEntry >> >> | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: >> >> >> | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> and then the whole memory block is copied into the final buffer. >> This means the size of the temporary buffer needs to be a bit more than required. >> >> Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. >> >> This PR is an attempt to fix above issues. It does final assembly in following steps: >> 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer >> 2. Now the payload for the preload entries is marked >> 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer >> 4. Then add the payload for these entries >> 5. Finally add the search table >> >> >> | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | >> >> >> This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. >> >> I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. >> >> **Performance impact:** >> >> Startup numbers for spring-boot-getting-started: >> >> Run,Old CDS + AOT,New CDS + AOT >> 1,263,275 >> 2,265,278 >> 3,266,272 >> 4,277,271 >> 5,265,265 >> 6,264,261 >> 7,266,263 >> 8,258,266 >> 9,275,268 >> 10,277,263 >> Geomean,267.53,268.15 >> St... > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Remove UseNewCode and older version of functions > > Signed-off-by: Ashutosh Mehra Looks good. ------------- Marked as reviewed by adinn (Committer). PR Review: https://git.openjdk.org/leyden/pull/95#pullrequestreview-3196587475 From asmehra at openjdk.org Mon Sep 8 14:00:36 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 8 Sep 2025 14:00:36 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately [v2] In-Reply-To: References: Message-ID: <9_RizL8_43IvL2WWi79tBLFzCG8n9UXssyjdWU_Rs9o=.ad29d9e4-d9e2-447a-8296-bc9debe944af@github.com> On Mon, 8 Sep 2025 13:37:16 GMT, Andrew Dinn wrote: >> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: >> >> Remove UseNewCode and older version of functions >> >> Signed-off-by: Ashutosh Mehra > > Looks good. @adinn thank you for the review. I will wait for @shipilev to complete his review before merging. ------------- PR Comment: https://git.openjdk.org/leyden/pull/95#issuecomment-3266465311 From duke at openjdk.org Wed Sep 10 16:09:15 2025 From: duke at openjdk.org (duke) Date: Wed, 10 Sep 2025 16:09:15 GMT Subject: git: openjdk/leyden: hermetic-java-runtime: 144 new changesets Message-ID: Changeset: f58d612b Branch: hermetic-java-runtime Author: Saint Wesonga Committer: David Holmes Date: 2025-09-02 04:01:32 +0000 URL: https://git.openjdk.org/leyden/commit/f58d612b6111658f01fa6b927bb2b2032c685620 8366483: ShowRegistersOnAssertTest uses wrong register pattern string for Windows on AArch64 Reviewed-by: dholmes, shade ! test/hotspot/jtreg/runtime/ErrorHandling/ShowRegistersOnAssertTest.java Changeset: 8f11d83a Branch: hermetic-java-runtime Author: Philippe Marschall Committer: Jaikiran Pai Date: 2025-09-02 05:49:06 +0000 URL: https://git.openjdk.org/leyden/commit/8f11d83a0126f8179d72e714595588b631e6451d 8362893: Improve performance for MemorySegment::getString Reviewed-by: pminborg, mcimadamore ! src/java.base/share/classes/jdk/internal/foreign/StringSupport.java Changeset: efb81daf Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-09-02 06:50:15 +0000 URL: https://git.openjdk.org/leyden/commit/efb81dafaf6da334674e52dbb509208d7d872440 8366031: Mark com/sun/nio/sctp/SctpChannel/CloseDescriptors.java as intermittent Reviewed-by: jpai ! test/jdk/com/sun/nio/sctp/SctpChannel/CloseDescriptors.java Changeset: 55e7af05 Branch: hermetic-java-runtime Author: Leo Korinth Date: 2025-09-02 07:27:12 +0000 URL: https://git.openjdk.org/leyden/commit/55e7af0560335ef69af072cee60956cf8e6d00a1 8260555: Change the default TIMEOUT_FACTOR from 4 to 1 Reviewed-by: alanb, sspitsyn, lmesnik, ihse ! doc/testing.html ! doc/testing.md ! make/RunTests.gmk ! test/hotspot/jtreg/compiler/arguments/TestCompileTaskTimeout.java ! test/hotspot/jtreg/compiler/arraycopy/stress/TestStressArrayCopy.java ! test/hotspot/jtreg/compiler/c1/TestConcurrentPatching.java ! test/hotspot/jtreg/compiler/c1/TestPinnedIntrinsics.java ! test/hotspot/jtreg/compiler/c2/TestMergeStores.java ! test/hotspot/jtreg/compiler/c2/TestScalarReplacementMaxLiveNodes.java ! test/hotspot/jtreg/compiler/c2/TestStressRecompilation.java ! test/hotspot/jtreg/compiler/classUnloading/methodUnloading/TestOverloadCompileQueues.java ! test/hotspot/jtreg/compiler/codegen/TestAntiDependenciesHighMemUsage2.java ! test/hotspot/jtreg/compiler/codegen/aes/TestCipherBlockChainingEncrypt.java ! test/hotspot/jtreg/compiler/controldependency/TestLoadBypassesClassCast.java ! test/hotspot/jtreg/compiler/floatingpoint/TestFloatSyncJNIArgs.java ! test/hotspot/jtreg/compiler/intrinsics/TestLongUnsignedDivMod.java ! test/hotspot/jtreg/compiler/jsr292/ContinuousCallSiteTargetChange.java ! test/hotspot/jtreg/compiler/jsr292/RedefineMethodUsedByMultipleMethodHandles.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/RedefineClassTest.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaMethod.java ! test/hotspot/jtreg/compiler/loopopts/TestMaxLoopOptsCountReached.java ! test/hotspot/jtreg/compiler/loopopts/TestPartialPeelAtUnsignedTestsNegativeLimit.java ! test/hotspot/jtreg/compiler/loopopts/superword/ProdRed_Double.java ! test/hotspot/jtreg/compiler/loopopts/superword/ProdRed_Float.java ! test/hotspot/jtreg/compiler/loopopts/superword/ProdRed_Int.java ! test/hotspot/jtreg/compiler/loopopts/superword/SumRedAbsNeg_Double.java ! test/hotspot/jtreg/compiler/loopopts/superword/SumRedAbsNeg_Float.java ! test/hotspot/jtreg/compiler/loopopts/superword/SumRedSqrt_Double.java ! test/hotspot/jtreg/compiler/loopopts/superword/SumRed_Double.java ! test/hotspot/jtreg/compiler/loopopts/superword/SumRed_Float.java ! test/hotspot/jtreg/compiler/loopopts/superword/SumRed_Int.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestDependencyOffsets.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestEquivalentInvariants.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestMovingLoadBeforeStore.java ! test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMining.java ! test/hotspot/jtreg/compiler/profiling/TestProfileCounterOverflow.java ! test/hotspot/jtreg/compiler/profiling/spectrapredefineclass/Launcher.java ! test/hotspot/jtreg/compiler/profiling/spectrapredefineclass_classloaders/Launcher.java ! test/hotspot/jtreg/compiler/tiered/Level2RecompilationTest.java ! test/hotspot/jtreg/compiler/uncommontrap/TestDeoptOOM.java ! test/hotspot/jtreg/compiler/vectorapi/TestRawOopAtSafepoint.java ! test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorOperations.java ! test/hotspot/jtreg/compiler/vectorization/TestVectorZeroCount.java ! test/hotspot/jtreg/gc/g1/TestGreyReclaimedHumongousObjects.java ! test/hotspot/jtreg/gc/g1/humongousObjects/TestHumongousClassLoader.java ! test/hotspot/jtreg/gc/g1/humongousObjects/TestHumongousNonArrayAllocation.java ! test/hotspot/jtreg/gc/g1/ihop/TestIHOPErgo.java ! test/hotspot/jtreg/gc/stress/TestMultiThreadStressRSet.java ! test/hotspot/jtreg/gc/stress/TestReclaimStringsLeaksMemory.java ! test/hotspot/jtreg/gc/stress/TestStressG1Humongous.java ! test/hotspot/jtreg/gc/stress/TestStressRSetCoarsening.java ! test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithG1.java ! test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithParallel.java ! test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithSerial.java ! test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithShenandoah.java ! test/hotspot/jtreg/gc/z/TestUncommit.java ! test/hotspot/jtreg/gtest/GTestWrapper.java ! test/hotspot/jtreg/runtime/8176717/TestInheritFD.java ! test/hotspot/jtreg/runtime/CreateMirror/ArraysNewInstanceBug.java ! test/hotspot/jtreg/runtime/ErrorHandling/CreateCoredumpOnCrash.java ! test/hotspot/jtreg/runtime/InvocationTests/invocationC1Tests.java ! test/hotspot/jtreg/runtime/InvocationTests/invokeinterfaceTests.java ! test/hotspot/jtreg/runtime/LoadClass/TestResize.java ! test/hotspot/jtreg/runtime/NMT/VirtualAllocCommitMerge.java ! test/hotspot/jtreg/runtime/SelectionResolution/InvokeInterfaceICCE.java ! test/hotspot/jtreg/runtime/SelectionResolution/InvokeInterfaceSuccessTest.java ! test/hotspot/jtreg/runtime/SelectionResolution/InvokeVirtualICCE.java ! test/hotspot/jtreg/runtime/SelectionResolution/InvokeVirtualSuccessTest.java ! test/hotspot/jtreg/runtime/Thread/TestThreadDumpMonitorContention.java ! test/hotspot/jtreg/runtime/cds/DeterministicDump.java ! test/hotspot/jtreg/runtime/cds/appcds/LotsOfSyntheticClasses.java ! test/hotspot/jtreg/runtime/cds/appcds/TestCommon.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCode/AOTCodeCompressedOopsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotProfile/AOTProfileFlags.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsStress.java ! test/hotspot/jtreg/runtime/exceptionMsgs/ArrayIndexOutOfBoundsException/ArrayIndexOutOfBoundsExceptionTest.java ! test/hotspot/jtreg/runtime/logging/RedefineClasses.java ! test/hotspot/jtreg/runtime/reflect/ReflectOutOfMemoryError.java ! test/hotspot/jtreg/serviceability/HeapDump/UnmountedVThreadNativeMethodAtTop.java ! test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorThreadTest.java ! test/hotspot/jtreg/serviceability/jvmti/SetTag/TagMapTest.java ! test/hotspot/jtreg/serviceability/jvmti/vthread/SuspendResume2/SuspendResume2.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbDumpheap.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbJstackXcompStress.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbThreadContext.java ! test/hotspot/jtreg/serviceability/sa/TestJhsdbJstackLineNumbers.java ! test/hotspot/jtreg/serviceability/sa/TestObjectAlignment.java ! test/hotspot/jtreg/serviceability/sa/sadebugd/SADebugDTest.java ! test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestNotCompilable.java ! test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_inMemoryCompilation_keep_class/TestDescription.java ! test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_inMemoryCompilation_keep_obj/TestDescription.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/LargeObjects/large001/large001.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/LargeObjects/large002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/LargeObjects/large003/TestDescription.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/LargeObjects/large004/TestDescription.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/LargeObjects/large005/TestDescription.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/SoftReference/soft004/soft004.java ! test/hotspot/jtreg/vmTestbase/gc/gctests/WeakReference/weak004/weak004.java ! test/hotspot/jtreg/vmTestbase/gc/vector/CircularListLow/TestDescription.java ! test/hotspot/jtreg/vmTestbase/jit/escape/AdaptiveBlocking/AdaptiveBlocking001/AdaptiveBlocking001.java ! test/hotspot/jtreg/vmTestbase/metaspace/shrink_grow/CompressedClassSpaceSize/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/shrink_grow/ShrinkGrowMultiJVM/ShrinkGrowMultiJVM.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy003/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy004/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy005/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy006/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy007/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy008/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy009/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy010/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy011/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy012/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy013/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy014/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy015/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects001/referringObjects001.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/StepEvent/_itself_/stepEvent004/stepEvent004.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadDeathEvent/thread/thread001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/stress/serial/mixed002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jdwp/VirtualMachine/HoldEvents/holdevents002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/ThreadInfo/isSuspended/issuspended002.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/stress/thread/strace001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/stress/thread/strace002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/stress/thread/strace003/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace006.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/thread/thread001.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/thread/thread002.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/thread/thread005.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/thread/thread006.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/thread/thread007.java ! test/hotspot/jtreg/vmTestbase/nsk/stress/thread/thread008.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree001/btree001.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree002/btree002.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree003/btree003.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree004/btree004.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree005/btree005.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree006/btree006.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree007/btree007.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree008/btree008.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree009/btree009.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree010/btree010.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree011/btree011.java ! test/hotspot/jtreg/vmTestbase/nsk/sysdict/vm/stress/btree/btree012/btree012.java ! test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/func/jvmti/mergeCP_indy2manyDiff_a/TestDescription.java ! test/hotspot/jtreg/vmTestbase/vm/mlvm/meth/stress/compiler/i2c_c2i/Test.java ! test/hotspot/jtreg/vmTestbase/vm/mlvm/meth/stress/compiler/sequences/Test.java ! test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java ! test/jdk/com/sun/jdi/InterruptHangTest.java ! test/jdk/com/sun/jdi/MethodEntryExitEvents.java ! test/jdk/com/sun/jdi/ThreadMemoryLeakTest.java ! test/jdk/com/sun/jndi/ldap/LdapPoolTimeoutTest.java ! test/jdk/com/sun/nio/sctp/SctpChannel/Connect.java ! test/jdk/com/sun/nio/sctp/SctpServerChannel/NonBlockingAccept.java ! test/jdk/java/awt/font/NumericShaper/MTTest.java ! test/jdk/java/beans/XMLDecoder/8028054/TestMethodFinder.java ! test/jdk/java/foreign/StdLibTest.java ! test/jdk/java/foreign/TestAccessModes.java ! test/jdk/java/foreign/TestBufferStackStress2.java ! test/jdk/java/foreign/TestConcurrentClose.java ! test/jdk/java/foreign/TestDeadlock.java ! test/jdk/java/foreign/TestMismatch.java ! test/jdk/java/foreign/TestStringEncodingJumbo.java ! test/jdk/java/foreign/TestStubAllocFailure.java ! test/jdk/java/foreign/TestUpcallStack.java ! test/jdk/java/foreign/loaderLookup/TestLoaderLookup.java ! test/jdk/java/io/FileInputStream/UnreferencedFISClosesFd.java ! test/jdk/java/io/FileOutputStream/UnreferencedFOSClosesFd.java ! test/jdk/java/io/RandomAccessFile/UnreferencedRAFClosesFd.java ! test/jdk/java/lang/Class/getDeclaredField/FieldSetAccessibleTest.java ! test/jdk/java/lang/Math/IntegralPowTest.java ! test/jdk/java/lang/ProcessBuilder/FDLeakTest/FDLeakTest.java ! test/jdk/java/lang/ProcessBuilder/UnblockSignals.java ! test/jdk/java/lang/StackWalker/LocalsAndOperands.java ! test/jdk/java/lang/String/CompactString/MaxSizeUTF16String.java ! test/jdk/java/lang/StringBuilder/CompactStringBuilder.java ! test/jdk/java/lang/Thread/virtual/CancelTimerWithContention.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/Starvation.java ! test/jdk/java/lang/Thread/virtual/SynchronizedNative.java ! test/jdk/java/lang/Thread/virtual/ThreadPollOnYield.java ! test/jdk/java/lang/Thread/virtual/stress/GetStackTraceALotWhenBlocking.java ! test/jdk/java/lang/Thread/virtual/stress/GetStackTraceALotWithTimedWait.java ! test/jdk/java/lang/Thread/virtual/stress/ParkALot.java ! test/jdk/java/lang/Thread/virtual/stress/PinALot.java ! test/jdk/java/lang/Thread/virtual/stress/Skynet.java ! test/jdk/java/lang/Thread/virtual/stress/Skynet100kWithMonitors.java ! test/jdk/java/lang/Thread/virtual/stress/SleepALot.java ! test/jdk/java/lang/annotation/LoaderLeakTest.java ! test/jdk/java/lang/invoke/TestLambdaFormCustomization.java ! test/jdk/java/lang/reflect/IllegalArgumentsTest.java ! test/jdk/java/math/BigInteger/LargeValueExceptions.java ! test/jdk/java/net/DatagramSocket/UnreferencedDatagramSockets.java ! test/jdk/java/net/MulticastSocket/SetLoopbackModeIPv4.java ! test/jdk/java/net/MulticastSocket/UnreferencedMulticastSockets.java ! test/jdk/java/net/ServerSocket/UnreferencedSockets.java ! test/jdk/java/net/Socket/CloseAvailable.java ! test/jdk/java/net/httpclient/AsFileDownloadTest.java ! test/jdk/java/net/httpclient/BufferingSubscriberTest.java ! test/jdk/java/net/httpclient/CancelledResponse.java ! test/jdk/java/net/httpclient/HttpSlowServerTest.java ! test/jdk/java/net/httpclient/ManyRequests.java ! test/jdk/java/net/httpclient/ResponseBodyBeforeError.java ! test/jdk/java/net/httpclient/ResponsePublisher.java ! test/jdk/java/net/httpclient/SpecialHeadersTest.java ! test/jdk/java/net/httpclient/SplitResponse.java ! test/jdk/java/net/httpclient/SplitResponseAsync.java ! test/jdk/java/net/httpclient/SplitResponseKeepAlive.java ! test/jdk/java/net/httpclient/SplitResponseKeepAliveAsync.java ! test/jdk/java/net/httpclient/SplitResponseSSL.java ! test/jdk/java/net/httpclient/SplitResponseSSLAsync.java ! test/jdk/java/net/httpclient/SplitResponseSSLKeepAlive.java ! test/jdk/java/net/httpclient/SplitResponseSSLKeepAliveAsync.java ! test/jdk/java/net/httpclient/whitebox/FlowTestDriver.java ! test/jdk/java/nio/channels/AsynchronousSocketChannel/StressLoopback.java ! test/jdk/java/nio/channels/Channels/TransferTo.java ! test/jdk/java/nio/channels/Channels/TransferTo_2GB_transferFrom.java ! test/jdk/java/nio/channels/Channels/TransferTo_2GB_transferTo.java ! test/jdk/java/nio/channels/FileChannel/CleanerTest.java ! test/jdk/java/nio/channels/SocketChannel/CloseDuringConnect.java ! test/jdk/java/nio/channels/SocketChannel/OpenLeak.java ! test/jdk/java/nio/channels/unixdomain/IOExchanges.java ! test/jdk/java/nio/channels/vthread/BlockingChannelOps.java ! test/jdk/java/rmi/transport/dgcDeadLock/DGCDeadLock.java ! test/jdk/java/security/SignedObject/Chain.java ! test/jdk/java/text/Format/DateFormat/DateFormatTest.java ! test/jdk/java/util/HashMap/WhiteBoxResizeTest.java ! test/jdk/java/util/PluggableLocale/CurrencyNameProviderTest.java ! test/jdk/java/util/PluggableLocale/LocaleNameProviderTest.java ! test/jdk/java/util/concurrent/ScheduledThreadPoolExecutor/BasicCancelTest.java ! test/jdk/java/util/logging/FileHandlerPath.java ! test/jdk/java/util/logging/LogManager/Configuration/updateConfiguration/HandlersOnComplexResetUpdate.java ! test/jdk/java/util/logging/LogManager/Configuration/updateConfiguration/HandlersOnComplexUpdate.java + test/jdk/java/util/stream/boottest/java.base/java/util/stream/TEST.properties + test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/TEST.properties ! test/jdk/java/util/zip/DeInflate.java ! test/jdk/java/util/zip/ZipFile/TestZipFileEncodings.java ! test/jdk/javax/net/ssl/ciphersuites/DisabledAlgorithms.java ! test/jdk/javax/swing/JFileChooser/6868611/bug6868611.java ! test/jdk/javax/swing/plaf/basic/BasicDirectoryModel/ConcurrentModification.java ! test/jdk/javax/swing/text/html/parser/Parser/8078268/bug8078268.java ! test/jdk/javax/xml/crypto/dsig/GenerationTests.java ! test/jdk/jdk/incubator/vector/AddTest.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/vm/Continuation/BasicExt.java ! test/jdk/jdk/internal/vm/Continuation/Fuzz.java ! test/jdk/jdk/jfr/api/consumer/recordingstream/TestClose.java ! test/jdk/jdk/jfr/api/metadata/annotations/TestStackFilter.java ! test/jdk/jdk/jfr/event/oldobject/TestEmergencyDumpAtOOM.java ! test/jdk/jdk/jfr/event/oldobject/TestObjectDescription.java ! test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleMultipleRecordings.java ! test/jdk/jdk/jfr/jvm/TestModularImage.java ! test/jdk/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java ! test/jdk/sun/nio/ch/TestMaxCachedBufferSize.java ! test/jdk/sun/nio/cs/TestEncoderReplaceUTF16.java ! test/jdk/sun/security/ec/ed/EdDSATest.java ! test/jdk/sun/security/krb5/config/IncludeRandom.java ! test/jdk/sun/security/krb5/name/Constructors.java ! test/jdk/sun/security/pkcs11/KDF/TestHKDF.java ! test/jdk/sun/security/pkcs11/KeyPairGenerator/TestDefaultSize.java ! test/jdk/sun/security/pkcs11/KeyStore/ImportKeyToP12.java ! test/jdk/sun/security/pkcs11/Mac/TestLargeSecretKeys.java ! test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java ! test/jdk/sun/security/provider/acvp/Launcher.java ! test/jdk/sun/security/ssl/SSLSocketImpl/SSLSocketCloseHang.java ! test/jdk/sun/security/ssl/X509KeyManager/CertChecking.java ! test/jdk/sun/security/tools/jarsigner/ConciseJarsigner.java ! test/jdk/sun/security/tools/jarsigner/InsufficientSectionDelimiter.java ! test/jdk/sun/security/tools/jarsigner/RestrictedAlgo.java ! test/jdk/sun/security/tools/jarsigner/SectionNameContinuedVsLineBreak.java ! test/jdk/sun/security/tools/jarsigner/TimestampCheck.java ! test/jdk/sun/security/tools/keytool/GenerateAll.java ! test/jdk/sun/security/tools/keytool/ReadJar.java ! test/jdk/sun/security/tools/keytool/fakecacerts/TrustedCert.java ! test/jdk/sun/tools/jcmd/TestJcmdSanity.java ! test/jdk/sun/util/resources/TimeZone/Bug8139107.java ! test/jdk/tools/jlink/JLink100Modules.java ! test/jdk/tools/jlink/JLink20000Packages.java ! test/jdk/tools/jlink/JLinkTest.java ! test/jdk/tools/jlink/plugins/IncludeLocalesPluginTest.java ! test/jdk/tools/jlink/runtimeImage/JavaSEReproducibleTest.java ! test/jdk/tools/jpackage/macosx/DmgContentTest.java ! test/jdk/tools/jpackage/macosx/MacFileAssociationsTest.java ! test/jdk/tools/jpackage/share/AddLauncherTest.java ! test/jdk/tools/jpackage/share/AppLauncherSubstTest.java ! test/jdk/tools/jpackage/share/AppVersionTest.java ! test/jdk/tools/jpackage/share/BasicTest.java ! test/jdk/tools/jpackage/share/IconTest.java ! test/jdk/tools/jpackage/share/InOutPathTest.java ! test/jdk/tools/jpackage/share/InstallDirTest.java ! test/jdk/tools/jpackage/share/JavaOptionsTest.java ! test/jdk/tools/jpackage/share/MainClassTest.java ! test/jdk/tools/jpackage/share/MultiNameTwoPhaseTest.java ! test/jdk/tools/jpackage/share/PostImageScriptTest.java ! test/jdk/tools/jpackage/windows/WinNoRestartTest.java ! test/jdk/tools/launcher/InstanceMainTest.java ! test/langtools/jdk/javadoc/doclet/testLinkOption/TestRedirectLinks.java ! test/langtools/jdk/jshell/ClassesTest.java ! test/langtools/jdk/jshell/CompletionSuggestionTest.java ! test/langtools/jdk/jshell/HangingRemoteAgent.java ! test/langtools/jdk/jshell/JdiHangingLaunchExecutionControlTest.java ! test/langtools/jdk/jshell/JdiHangingListenExecutionControlTest.java ! test/langtools/jdk/jshell/ToolLocalSimpleTest.java ! test/langtools/jdk/jshell/ToolSimpleTest.java ! test/langtools/jdk/jshell/UITesting.java ! test/langtools/jdk/jshell/VariablesTest.java ! test/langtools/tools/javac/Paths/MineField.java ! test/langtools/tools/javac/Paths/WildcardMineField.java ! test/langtools/tools/javac/diags/CheckExamples.java ! test/langtools/tools/javac/diags/RunExamples.java ! test/langtools/tools/javac/failover/CheckAttributedTree.java ! test/langtools/tools/javac/file/MultiReleaseJar/MultiReleaseJarTest.java ! test/langtools/tools/javac/generics/diamond/7030150/GenericConstructorAndDiamondTest.java ! test/langtools/tools/javac/importscope/NegativeCyclicDependencyTest.java ! test/langtools/tools/javac/lambda/LambdaParserTest.java ! test/langtools/tools/javac/lambda/bridge/template_tests/TEST.properties ! test/langtools/tools/javac/lambda/intersection/IntersectionTargetTypeTest.java ! test/langtools/tools/javac/platform/createsymbols/CreateSymbolsReproducibleTest.java ! test/langtools/tools/javac/tree/JavacTreeScannerTest.java ! test/langtools/tools/javac/tree/SourceDocTreeScannerTest.java ! test/langtools/tools/javac/tree/SourceTreeScannerTest.java ! test/langtools/tools/javac/types/TestComparisons.java ! test/langtools/tools/javac/util/IteratorsTest.java ! test/langtools/tools/javac/varargs/warning/Warn5.java ! test/langtools/tools/lib/toolbox/ToolBox.java ! test/lib/jdk/test/lib/cds/CDSTestUtils.java ! test/lib/jdk/test/lib/util/ForceGC.java Changeset: 3fb9246a Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-09-02 07:54:36 +0000 URL: https://git.openjdk.org/leyden/commit/3fb9246af9a006c0b3a1f9c41d60dff74f7bf140 8366544: Parallel: Inline PSParallelCompact::invoke_no_policy Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psParallelCompact.hpp Changeset: d19eab4f Branch: hermetic-java-runtime Author: Francesco Andreuzzi Committer: Albert Mingkun Yang Date: 2025-09-02 07:57:03 +0000 URL: https://git.openjdk.org/leyden/commit/d19eab4f08592140229de43689c7d20ff7fbf4ee 8366556: Sort share/runtime includes Reviewed-by: dholmes, ayang ! src/hotspot/share/runtime/basicLock.inline.hpp ! src/hotspot/share/runtime/continuationFreezeThaw.cpp ! src/hotspot/share/runtime/continuationHelper.inline.hpp ! src/hotspot/share/runtime/continuationWrapper.inline.hpp ! src/hotspot/share/runtime/cpuTimeCounters.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/fieldDescriptor.cpp ! src/hotspot/share/runtime/flags/jvmFlag.hpp ! src/hotspot/share/runtime/flags/jvmFlagAccess.cpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.cpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp ! src/hotspot/share/runtime/flags/jvmFlagLimit.cpp ! src/hotspot/share/runtime/flags/jvmFlagLookup.hpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/frame.inline.hpp ! src/hotspot/share/runtime/handles.inline.hpp ! src/hotspot/share/runtime/handshake.cpp ! src/hotspot/share/runtime/interfaceSupport.cpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/keepStackGCProcessed.cpp ! src/hotspot/share/runtime/objectMonitor.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/signature.cpp ! src/hotspot/share/runtime/stackChunkFrameStream.inline.hpp ! src/hotspot/share/runtime/stubCodeGenerator.cpp ! src/hotspot/share/runtime/stubRoutines.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/threadSMR.inline.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/runtime/vframe.cpp ! src/hotspot/share/runtime/vframeArray.cpp ! src/hotspot/share/runtime/vframe_hp.cpp ! src/hotspot/share/runtime/vmOperations.cpp ! src/hotspot/share/runtime/vmOperations.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: af532cc1 Branch: hermetic-java-runtime Author: Joakim Nordstr?m Committer: David Holmes Date: 2025-09-02 07:58:38 +0000 URL: https://git.openjdk.org/leyden/commit/af532cc1b227c56cd03caca7d7558d58687d8584 8365913: Support latest MSC_VER in abstract_vm_version.cpp Reviewed-by: dholmes ! src/hotspot/share/runtime/abstract_vm_version.cpp Changeset: 523bc779 Branch: hermetic-java-runtime Author: Anton Artemov Committer: Joel Sikstr?m Date: 2025-09-02 08:15:27 +0000 URL: https://git.openjdk.org/leyden/commit/523bc77981cfe82956d2176f74917c41788da6db 8364816: GetLastError() in os_windows.cpp should not store value to errno Reviewed-by: dholmes, jsikstro ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/cds/aotClassLocation.cpp Changeset: ef7872cc Branch: hermetic-java-runtime Author: Afshin Zafari Date: 2025-09-02 09:08:26 +0000 URL: https://git.openjdk.org/leyden/commit/ef7872cc31d4d7c0a9f311eafc28132ead3476b6 8365163: [ubsan] left-shift issue in globalDefinitions.hpp Reviewed-by: kbarrett, stefank, aph ! src/hotspot/share/utilities/globalDefinitions.hpp ! test/hotspot/gtest/utilities/test_globalDefinitions.cpp Changeset: e66ed4d7 Branch: hermetic-java-runtime Author: Leo Korinth Date: 2025-09-02 09:30:29 +0000 URL: https://git.openjdk.org/leyden/commit/e66ed4d72948a56863f2979b976ef81c0fc43f75 8366666: Bump timeout on StressAsyncUL Reviewed-by: stefank ! test/hotspot/jtreg/runtime/logging/StressAsyncUL.java Changeset: 31847149 Branch: hermetic-java-runtime Author: Matthew Donovan Date: 2025-09-02 11:17:56 +0000 URL: https://git.openjdk.org/leyden/commit/31847149c1956b23c19a99309982660b4bbdd2d6 8325766: Extend CertificateBuilder to create trust and end entity certificates programmatically Reviewed-by: mullan, abarashev ! test/jdk/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java + test/jdk/sun/net/www/protocol/https/HttpsURLConnection/TEST.properties ! test/lib/jdk/test/lib/security/CertificateBuilder.java Changeset: eea50fbc Branch: hermetic-java-runtime Author: Volkan Yazici Date: 2025-09-02 12:42:46 +0000 URL: https://git.openjdk.org/leyden/commit/eea50fbc1b24710b18eff4b59dc90dee3736cd95 8356439: Rename JavaLangAccess::*NoRepl methods Reviewed-by: alanb, liach, rriggs ! src/java.base/share/classes/java/lang/String.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/nio/file/Files.java ! src/java.base/share/classes/java/util/zip/ZipCoder.java ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java ! src/java.base/unix/classes/sun/nio/fs/UnixPath.java - test/jdk/java/lang/String/NoReplTest.java + test/jdk/java/lang/String/OrThrowTest.java Changeset: 1feb9bd5 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-09-02 12:46:59 +0000 URL: https://git.openjdk.org/leyden/commit/1feb9bd55946cad8a37745b0c9ceef16f408afd8 8365557: Parallel: Refactor ParallelScavengeHeap::mem_allocate_work Reviewed-by: tschatzl, iwalulya ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/psOldGen.hpp Changeset: 71035436 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-09-02 13:09:33 +0000 URL: https://git.openjdk.org/leyden/commit/710354369e0131e900afc4ced706a9ed0e23ab9c 8366063: Parallel: Refactor copy_unmarked_to_survivor_space Reviewed-by: tschatzl, iwalulya ! src/hotspot/share/gc/parallel/psPromotionManager.hpp ! src/hotspot/share/gc/parallel/psPromotionManager.inline.hpp Changeset: a029245a Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-09-02 13:25:32 +0000 URL: https://git.openjdk.org/leyden/commit/a029245a4e1f04052fa0f0a5af16ae0e770bd822 8365983: Tests should throw SkippedException when SCTP not supported Reviewed-by: jpai ! test/jdk/com/sun/nio/sctp/SctpChannel/Bind.java ! test/jdk/com/sun/nio/sctp/SctpChannel/CloseDescriptors.java ! test/jdk/com/sun/nio/sctp/SctpChannel/CommUp.java ! test/jdk/com/sun/nio/sctp/SctpChannel/Connect.java ! test/jdk/com/sun/nio/sctp/SctpChannel/Receive.java ! test/jdk/com/sun/nio/sctp/SctpChannel/ReceiveIntoDirect.java ! test/jdk/com/sun/nio/sctp/SctpChannel/Send.java ! test/jdk/com/sun/nio/sctp/SctpChannel/Shutdown.java ! test/jdk/com/sun/nio/sctp/SctpChannel/SocketOptionTests.java ! test/jdk/com/sun/nio/sctp/SctpMultiChannel/Branch.java ! test/jdk/com/sun/nio/sctp/SctpMultiChannel/CloseDescriptors.java ! test/jdk/com/sun/nio/sctp/SctpMultiChannel/Send.java ! test/jdk/com/sun/nio/sctp/SctpMultiChannel/SendFailed.java ! test/jdk/com/sun/nio/sctp/SctpMultiChannel/SocketOptionTests.java ! test/jdk/com/sun/nio/sctp/SctpServerChannel/Accept.java ! test/jdk/com/sun/nio/sctp/SctpServerChannel/NonBlockingAccept.java Changeset: 444a8fa1 Branch: hermetic-java-runtime Author: Ashutosh Mehra Date: 2025-09-02 14:54:50 +0000 URL: https://git.openjdk.org/leyden/commit/444a8fa14e8ab016b8aae018054c5dc1eb843fee 8365501: Remove special AdapterHandlerEntry for abstract methods Reviewed-by: kvn, adinn ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/runtime/javaCalls.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/sharedRuntime.hpp Changeset: ecf05ca5 Branch: hermetic-java-runtime Author: Volkan Yazici Date: 2025-09-02 15:26:48 +0000 URL: https://git.openjdk.org/leyden/commit/ecf05ca541b32736ab8e8a38d4be4f037a56361d 8366693: Backout recent JavaLangAccess changes breaking the build Reviewed-by: jpai, serb, alanb, syan, rriggs, jwaters ! src/java.base/share/classes/java/lang/String.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/nio/file/Files.java ! src/java.base/share/classes/java/util/zip/ZipCoder.java ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java ! src/java.base/unix/classes/sun/nio/fs/UnixPath.java + test/jdk/java/lang/String/NoReplTest.java - test/jdk/java/lang/String/OrThrowTest.java Changeset: 48ba8ed2 Branch: hermetic-java-runtime Author: Leo Korinth Date: 2025-09-02 17:00:33 +0000 URL: https://git.openjdk.org/leyden/commit/48ba8ed2439f9a4a5cdca8715ffddad377366347 8366704: Bump timeout on TestInheritFD Reviewed-by: lmesnik ! test/hotspot/jtreg/runtime/8176717/TestInheritFD.java Changeset: c935d1ce Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-09-02 17:11:34 +0000 URL: https://git.openjdk.org/leyden/commit/c935d1ce1c42ce98cc6ceffaa4f47eb2dba24dfd 8366375: Collator example for SECONDARY uses wrong code point Reviewed-by: jlu, joehw, smarks ! src/java.base/share/classes/java/text/Collator.java Changeset: 0d85f076 Branch: hermetic-java-runtime Author: Henry Jen Date: 2025-09-02 18:03:09 +0000 URL: https://git.openjdk.org/leyden/commit/0d85f076cc32494c1162baea3ea6b0db67136d41 8359174: tools/jlink/JLink20000Packages.java timed out Co-authored-by: Vicente Romero Co-authored-by: Eirik Bj?rsn?s Reviewed-by: jpai, liach ! test/jdk/tools/jlink/JLink20000Packages.java ! test/jdk/tools/lib/tests/JImageGenerator.java Changeset: 80fb7088 Branch: hermetic-java-runtime Author: Justin Lu Date: 2025-09-02 20:43:38 +0000 URL: https://git.openjdk.org/leyden/commit/80fb7088a10136080d23ea93b4840f17d738500c 8365175: Replace Unicode extension anchor elements with link tag Reviewed-by: liach, iris, naoto ! src/java.base/share/classes/java/text/DateFormat.java ! src/java.base/share/classes/java/text/DateFormatSymbols.java ! src/java.base/share/classes/java/text/DecimalFormatSymbols.java ! src/java.base/share/classes/java/text/NumberFormat.java ! src/java.base/share/classes/java/text/spi/DecimalFormatSymbolsProvider.java ! src/java.base/share/classes/java/time/format/DateTimeFormatter.java ! src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java ! src/java.base/share/classes/java/time/format/DecimalStyle.java ! src/java.base/share/classes/java/time/temporal/WeekFields.java ! src/java.base/share/classes/java/util/Calendar.java ! src/java.base/share/classes/java/util/ResourceBundle.java ! src/java.base/share/classes/java/util/spi/LocaleNameProvider.java Changeset: 991ac9e6 Branch: hermetic-java-runtime Author: Igor Veresov Date: 2025-09-02 21:28:22 +0000 URL: https://git.openjdk.org/leyden/commit/991ac9e6168b2573f78772e2d7936792a43fe336 8365407: Race condition in MethodTrainingData::verify() Reviewed-by: kvn, vlivanov, iklam ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/compiler/compilationPolicy.hpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/oops/trainingData.hpp ! src/hotspot/share/runtime/init.cpp ! src/hotspot/share/runtime/java.cpp Changeset: b50c11f9 Branch: hermetic-java-runtime Author: Saint Wesonga Committer: Erik Joelsson Date: 2025-09-02 23:04:52 +0000 URL: https://git.openjdk.org/leyden/commit/b50c11f9077f071cf5639de7e82ec261e0338532 8366195: Remove unnecessary quotes around -Ta ml64 assembler argument Reviewed-by: erikj ! make/autoconf/flags.m4 ! make/autoconf/spec.gmk.template ! make/common/native/CompileFile.gmk Changeset: 5052a7ee Branch: hermetic-java-runtime Author: Rui Li Committer: Kelvin Nilsen Date: 2025-09-02 23:49:23 +0000 URL: https://git.openjdk.org/leyden/commit/5052a7eee57e9d145950a0ab1ca71edc02bfe0be 8246037: Shenandoah: update man pages to mention -XX:+UseShenandoahGC Reviewed-by: ysr, wkemper, cslucas ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp ! src/java.base/share/man/java.md Changeset: e268563a Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-09-03 00:57:52 +0000 URL: https://git.openjdk.org/leyden/commit/e268563a10b67bdcb3c030743ed3e2b3b7dfd0f7 8366476: Test gc/z/TestSmallHeap.java fails OOM with many NUMA nodes Reviewed-by: jsikstro, aboldtch ! test/hotspot/jtreg/gc/z/TestSmallHeap.java Changeset: 8c4090c2 Branch: hermetic-java-runtime Author: Galder Zamarre?o Committer: Roland Westrelin Date: 2025-09-03 06:38:27 +0000 URL: https://git.openjdk.org/leyden/commit/8c4090c2cfa00f9c3550669a0726a785b30ac1d5 8329077: C2 SuperWord: Add MoveD2L, MoveL2D, MoveF2I, MoveI2F Reviewed-by: epeter, qamai ! src/hotspot/share/opto/superword.cpp ! src/hotspot/share/opto/vectornode.cpp ! test/hotspot/jtreg/compiler/loopopts/superword/TestCompatibleUseDefTypeSize.java ! test/micro/org/openjdk/bench/vm/compiler/TypeVectorOperations.java Changeset: 7c70e734 Branch: hermetic-java-runtime Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-09-03 06:45:02 +0000 URL: https://git.openjdk.org/leyden/commit/7c70e7341438ce8a420021005a0f03fe917e5a26 8366660: Sort share/nmt includes Reviewed-by: ayang, shade ! src/hotspot/share/nmt/arrayWithFreeList.hpp ! src/hotspot/share/nmt/mallocLimit.cpp ! src/hotspot/share/nmt/mallocTracker.cpp ! src/hotspot/share/nmt/mallocTracker.inline.hpp ! src/hotspot/share/nmt/memMapPrinter.cpp ! src/hotspot/share/nmt/memReporter.cpp ! src/hotspot/share/nmt/memTracker.hpp ! src/hotspot/share/nmt/memoryFileTracker.cpp ! src/hotspot/share/nmt/memoryFileTracker.hpp ! src/hotspot/share/nmt/nmtNativeCallStackStorage.hpp ! src/hotspot/share/nmt/regionsTree.inline.hpp ! src/hotspot/share/nmt/virtualMemoryTracker.cpp ! src/hotspot/share/nmt/virtualMemoryTracker.hpp ! src/hotspot/share/nmt/vmatree.hpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: 6dda2f6f Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-09-03 07:52:28 +0000 URL: https://git.openjdk.org/leyden/commit/6dda2f6fad5cae95057fbdfa672e3b51aff61af7 8366543: Clean up include headers in numberSeq Reviewed-by: tschatzl ! src/hotspot/share/utilities/numberSeq.cpp ! src/hotspot/share/utilities/numberSeq.hpp Changeset: 3b2f3e53 Branch: hermetic-java-runtime Author: Leo Korinth Date: 2025-09-03 12:36:36 +0000 URL: https://git.openjdk.org/leyden/commit/3b2f3e53d7f27653c3d4608b141aed6a84829aa8 8366803: Bump timeout on sun/tools/jhsdb/BasicLauncherTest.java Reviewed-by: stefank ! test/jdk/sun/tools/jhsdb/BasicLauncherTest.java Changeset: 2a5f149b Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-09-03 12:41:24 +0000 URL: https://git.openjdk.org/leyden/commit/2a5f149bb8e26277778465fff670591c929842de 8363966: GHA: Switch cross-compiling sysroots to Debian trixie Reviewed-by: ayang, fyang, erikj ! .github/workflows/build-cross-compile.yml Changeset: 3abaa836 Branch: hermetic-java-runtime Author: Stefan Karlsson Date: 2025-09-03 13:51:17 +0000 URL: https://git.openjdk.org/leyden/commit/3abaa83610efb5c8e9b86c6f895d6b58d21e1fa2 8366298: FDLeakTest sometimes takes minutes to complete on Linux Reviewed-by: lkorinth, rriggs, stuefe ! test/jdk/java/lang/ProcessBuilder/FDLeakTest/FDLeakTest.java ! test/jdk/java/lang/ProcessBuilder/FDLeakTest/libFDLeaker.c Changeset: d5935af2 Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-09-03 14:40:23 +0000 URL: https://git.openjdk.org/leyden/commit/d5935af228d7129d75d6987767de50b019ec30c7 8366768: Problemlist jdk/jshell/ToolSimpleTest.java Reviewed-by: jlahoda ! test/langtools/ProblemList.txt Changeset: a40afdd0 Branch: hermetic-java-runtime Author: Vanitha B P Committer: Naoto Sato Date: 2025-09-03 15:31:15 +0000 URL: https://git.openjdk.org/leyden/commit/a40afdd08f366afcefb1ac9d5fb184c8e803707e 8366537: Test "java/util/TimeZone/DefaultTimeZoneTest.java" is not updating the zone ID as expected Reviewed-by: naoto, jlu ! test/jdk/java/util/TimeZone/DefaultTimeZoneTest.java Changeset: e3b36e3b Branch: hermetic-java-runtime Author: Justin Lu Date: 2025-09-03 18:00:13 +0000 URL: https://git.openjdk.org/leyden/commit/e3b36e3babb860d9d24a610160f47d42cfaafaa3 8366401: JCK test api/java_text/DecimalFormatSymbols/serial/InputTests.html fails after JDK-8363972 Reviewed-by: naoto ! src/java.base/share/classes/java/text/DecimalFormatSymbols.java + test/jdk/java/text/Format/DecimalFormat/DFSSerializationTest.java Changeset: 8d236615 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-09-03 18:47:58 +0000 URL: https://git.openjdk.org/leyden/commit/8d236615b7db2bd5a2a59002b79e59cf4e6a308a 8366155: Serial: Obsolete PretenureSizeThreshold Reviewed-by: tschatzl ! src/hotspot/share/gc/serial/defNewGeneration.cpp ! src/hotspot/share/gc/serial/defNewGeneration.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/gc_globals.hpp ! src/hotspot/share/runtime/arguments.cpp Changeset: 431f4672 Branch: hermetic-java-runtime Author: Chen Liang Date: 2025-09-03 19:21:38 +0000 URL: https://git.openjdk.org/leyden/commit/431f46724658b703e995e518cb7a2149c50d6a9d 8361635: Missing List length validation in the Class-File API Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/Annotation.java ! src/java.base/share/classes/java/lang/classfile/AnnotationElement.java ! src/java.base/share/classes/java/lang/classfile/AnnotationValue.java ! src/java.base/share/classes/java/lang/classfile/ClassBuilder.java ! src/java.base/share/classes/java/lang/classfile/CodeBuilder.java ! src/java.base/share/classes/java/lang/classfile/Interfaces.java ! src/java.base/share/classes/java/lang/classfile/TypeAnnotation.java ! src/java.base/share/classes/java/lang/classfile/attribute/CharacterRangeTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ExceptionsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/InnerClassesAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/LineNumberTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/MethodParametersAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleExportInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleHashesAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleOpenInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModulePackagesAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/ModuleProvideInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/NestMembersAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/PermittedSubclassesAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RecordAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RecordComponentInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleParameterAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleTypeAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleParameterAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleTypeAnnotationsAttribute.java ! src/java.base/share/classes/java/lang/classfile/attribute/StackMapFrameInfo.java ! src/java.base/share/classes/java/lang/classfile/attribute/StackMapTableAttribute.java ! src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPoolBuilder.java ! src/java.base/share/classes/java/lang/classfile/constantpool/Utf8Entry.java ! src/java.base/share/classes/java/lang/classfile/package-info.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AttributeHolder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BootstrapMethodEntryImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufWriterImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/InterfacesImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/UnboundAttribute.java ! src/java.base/share/classes/jdk/internal/classfile/impl/Util.java ! test/jdk/jdk/classfile/LimitsTest.java + test/jdk/jdk/classfile/ListValidationTest.java Changeset: becc35f2 Branch: hermetic-java-runtime Author: Justin Lu Date: 2025-09-03 21:58:26 +0000 URL: https://git.openjdk.org/leyden/commit/becc35f28792a48fac488841d0bc43226d7c96a7 8366400: JCK test api/java_text/DecimalFormat/Parse.html fails after JDK-8363972 Reviewed-by: naoto ! src/java.base/share/classes/java/text/DecimalFormat.java ! test/jdk/java/text/Format/NumberFormat/PositionTest.java Changeset: 02dd2119 Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-09-04 01:28:25 +0000 URL: https://git.openjdk.org/leyden/commit/02dd21196ed27289a6fad92c4881af484ce9c258 8366692: Several gc/shenandoah tests timed out Reviewed-by: shade, wkemper ! test/hotspot/jtreg/gc/shenandoah/TestAllocObjects.java ! test/hotspot/jtreg/gc/shenandoah/TestSieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/jni/TestJNIGlobalRefs.java Changeset: ed62bda2 Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-09-04 01:29:34 +0000 URL: https://git.openjdk.org/leyden/commit/ed62bda2e0c51a67baae1fc28e41c9cd878db5f4 8366694: Test JdbStopInNotificationThreadTest.java timed out after 60 second Reviewed-by: cjplummer, ayang, lmesnik ! test/jdk/com/sun/jdi/JdbStopInNotificationThreadTest.java Changeset: 11743b1e Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-09-04 01:37:42 +0000 URL: https://git.openjdk.org/leyden/commit/11743b1ed3d681ce17c2342616c4040c4b539b31 8366695: Test sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java timed out Reviewed-by: lmesnik, kevinw ! test/jdk/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java Changeset: f4d73d2a Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-09-04 02:31:12 +0000 URL: https://git.openjdk.org/leyden/commit/f4d73d2a3dbeccfd04d49c0cfd690086edd0544f 8366584: Add an InstanceKlass::super() method that returns InstanceKlass* Reviewed-by: dholmes, coleenp ! src/hotspot/share/cds/aotArtifactFinder.cpp ! src/hotspot/share/cds/aotClassLinker.cpp ! src/hotspot/share/cds/aotLinkedClassBulkLoader.cpp ! src/hotspot/share/cds/classListParser.cpp ! src/hotspot/share/cds/classListWriter.cpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/ci/ciReplay.cpp ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/defaultMethods.cpp ! src/hotspot/share/classfile/fieldLayoutBuilder.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/vmClasses.cpp ! src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp ! src/hotspot/share/jfr/leakprofiler/chains/edgeUtils.cpp ! src/hotspot/share/memory/heapInspection.cpp ! src/hotspot/share/oops/fieldStreams.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/prims/jvmtiTagMap.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/services/heapDumper.cpp Changeset: 4d1dfabc Branch: hermetic-java-runtime Author: Anton Artemov Committer: David Holmes Date: 2025-09-04 04:35:51 +0000 URL: https://git.openjdk.org/leyden/commit/4d1dfabcb4e94601995b07b7ecea4249ae375a04 8366038: Thread::SpinRelease should use Atomic::release_store Reviewed-by: dholmes, ayang ! src/hotspot/share/runtime/thread.cpp Changeset: 90a2db1e Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-09-04 04:47:48 +0000 URL: https://git.openjdk.org/leyden/commit/90a2db1ecbc3ea25a8e9f15b34a3d8f3941b60d0 8366474: Rename MetaspaceObj::is_shared() to MetaspaceObj::in_aot_cache() Reviewed-by: liach, kvn ! src/hotspot/os/posix/vmError_posix.cpp ! src/hotspot/os/windows/vmError_windows.cpp ! src/hotspot/share/cds/aotArtifactFinder.cpp ! src/hotspot/share/cds/aotClassLinker.cpp ! src/hotspot/share/cds/aotConstantPoolResolver.cpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveUtils.hpp ! src/hotspot/share/cds/archiveUtils.inline.hpp ! src/hotspot/share/cds/cdsProtectionDomain.cpp ! src/hotspot/share/cds/classListWriter.cpp ! src/hotspot/share/cds/cppVtables.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.cpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/lambdaFormInvokers.cpp ! src/hotspot/share/cds/lambdaProxyClassDictionary.cpp ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/cds/metaspaceShared.hpp ! src/hotspot/share/cds/runTimeClassInfo.cpp ! src/hotspot/share/cds/runTimeClassInfo.hpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/klassFactory.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/vmClasses.cpp ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/rewriter.cpp ! src/hotspot/share/memory/allocation.cpp ! src/hotspot/share/memory/allocation.hpp ! src/hotspot/share/memory/metadataFactory.hpp ! src/hotspot/share/memory/metaspace.cpp ! src/hotspot/share/memory/metaspace.hpp ! src/hotspot/share/memory/metaspace/printCLDMetaspaceInfoClosure.cpp ! src/hotspot/share/memory/metaspace/printMetaspaceInfoKlassClosure.cpp ! src/hotspot/share/oops/arrayKlass.cpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/constantPool.hpp ! src/hotspot/share/oops/cpCache.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceMirrorKlass.inline.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/MetaspaceObj.java Changeset: 62bc7b7c Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-09-04 05:42:18 +0000 URL: https://git.openjdk.org/leyden/commit/62bc7b7c4247a62c23ea93cd960c3c0434925c49 8300080: offset_of for GCC/Clang exhibits undefined behavior and is not always a compile-time constant Reviewed-by: stefank, jsjolen ! make/hotspot/lib/CompileJvm.gmk ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/hotspot/share/utilities/globalDefinitions_gcc.hpp ! src/hotspot/share/utilities/globalDefinitions_visCPP.hpp Changeset: a03302d4 Branch: hermetic-java-runtime Author: Stefan Johansson Date: 2025-09-04 06:33:57 +0000 URL: https://git.openjdk.org/leyden/commit/a03302d41bb9971736d4d56381ca0cad1eb3e34b 8366434: THP not working properly with G1 after JDK-8345655 Co-authored-by: Stefan Karlsson Co-authored-by: Stefan Johansson Reviewed-by: stefank, shade ! src/hotspot/share/memory/memoryReserver.cpp ! src/hotspot/share/memory/memoryReserver.hpp + test/hotspot/jtreg/gc/TestTransparentHugePagesHeap.java Changeset: 2527e9e5 Branch: hermetic-java-runtime Author: Emanuel Peter Date: 2025-09-04 06:53:35 +0000 URL: https://git.openjdk.org/leyden/commit/2527e9e58d770c50e6d807bf1483c6bb07dd3de7 8366490: C2 SuperWord: wrong result because CastP2X is missing ctrl and floats over SafePoint creating stale oops Reviewed-by: thartmann, chagedorn, mhaessig ! src/hotspot/share/opto/vectorization.cpp ! src/hotspot/share/opto/vectorization.hpp ! src/hotspot/share/opto/vtransform.cpp ! src/hotspot/share/opto/vtransform.hpp + test/hotspot/jtreg/compiler/loopopts/superword/TestAliasingCastP2XCtrl.java Changeset: 49fd6a0c Branch: hermetic-java-runtime Author: Arno Zeller Committer: Matthias Baesken Date: 2025-09-04 07:03:10 +0000 URL: https://git.openjdk.org/leyden/commit/49fd6a0cb4ddabaa865155bbfd4290077b7d13ea 8366558: Gtests leave /tmp/cgroups-test* files Reviewed-by: mbaesken, stuefe, lmesnik ! test/hotspot/gtest/runtime/test_cgroupSubsystem_linux.cpp Changeset: 222ae365 Branch: hermetic-java-runtime Author: Thomas Schatzl Date: 2025-09-04 07:03:28 +0000 URL: https://git.openjdk.org/leyden/commit/222ae365c89e7bcd2cd920f60aa34eebee2c83b6 8366688: G1: Rename G1HeapRegionRemSet::is_added_to_cset_group() to has_cset_group() Reviewed-by: ayang, iwalulya ! src/hotspot/share/gc/g1/g1CardSet.cpp ! src/hotspot/share/gc/g1/g1CollectionSet.cpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1HeapRegionRemSet.cpp ! src/hotspot/share/gc/g1/g1HeapRegionRemSet.hpp ! src/hotspot/share/gc/g1/g1HeapRegionRemSet.inline.hpp ! src/hotspot/share/gc/g1/g1RemSetSummary.cpp ! src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp Changeset: 1495dd94 Branch: hermetic-java-runtime Author: Francesco Andreuzzi Committer: Aleksey Shipilev Date: 2025-09-04 07:13:41 +0000 URL: https://git.openjdk.org/leyden/commit/1495dd94e97fc023dede71f957ce3b166d20d5ac 8366778: Sort share/asm, share/gc, share/include includes Reviewed-by: shade, ayang, jsikstro ! src/hotspot/share/asm/assembler.cpp ! src/hotspot/share/asm/codeBuffer.hpp ! src/hotspot/share/asm/codeBuffer.inline.hpp ! src/hotspot/share/gc/epsilon/epsilonHeap.cpp ! src/hotspot/share/gc/g1/g1FullGCResetMetadataTask.hpp ! src/hotspot/share/gc/serial/serialHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/referenceProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.cpp ! src/hotspot/share/gc/z/zUncoloredRoot.inline.hpp ! src/hotspot/share/include/jvm_io.h ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: 986ecff5 Branch: hermetic-java-runtime Author: SendaoYan Date: 2025-09-04 07:14:59 +0000 URL: https://git.openjdk.org/leyden/commit/986ecff5f9b16f1b41ff15ad94774d65f3a4631d 8366849: Problemlist jdk/jshell/ToolSimpleTest.java as generic-all Reviewed-by: liach, jlahoda ! test/langtools/ProblemList.txt Changeset: ab9f70dd Branch: hermetic-java-runtime Author: Matthias Baesken Date: 2025-09-04 08:01:01 +0000 URL: https://git.openjdk.org/leyden/commit/ab9f70dd5acd73744e3d82e9884985904f280c26 8366420: AOTMapTest fails when default jsa is missing from JDK Reviewed-by: iklam, azeller ! test/hotspot/jtreg/runtime/cds/CDSMapTest.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/AOTMapTest.java Changeset: 53d4e928 Branch: hermetic-java-runtime Author: Casper Norrbin Date: 2025-09-04 09:47:42 +0000 URL: https://git.openjdk.org/leyden/commit/53d4e928ef2851f3e16d1d200b5c3fb036e15e00 8366238: Improve RBTree API with stricter comparator semantics and pluggable validation/printing hooks Reviewed-by: jsjolen, ayang ! src/hotspot/share/gc/z/zMappedCache.cpp ! src/hotspot/share/gc/z/zMappedCache.hpp ! src/hotspot/share/nmt/vmatree.hpp ! src/hotspot/share/opto/printinlining.hpp ! src/hotspot/share/utilities/rbTree.hpp ! src/hotspot/share/utilities/rbTree.inline.hpp ! test/hotspot/gtest/utilities/test_rbtree.cpp Changeset: 8c50bed8 Branch: hermetic-java-runtime Author: Casper Norrbin Date: 2025-09-04 10:48:57 +0000 URL: https://git.openjdk.org/leyden/commit/8c50bed86709a45615743dd7953b8c6861f1da0c 8366872: Wrong number of template arguments in test in test_rbtree.cpp Reviewed-by: ayang, syan ! test/hotspot/gtest/utilities/test_rbtree.cpp Changeset: 80873a09 Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-09-04 13:17:29 +0000 URL: https://git.openjdk.org/leyden/commit/80873a09bf8392d98d20273e0688b17c62252242 8366836: Don't execute post-IncludeCustomExtension if file was not included Reviewed-by: erikj ! make/common/MakeIncludeEnd.gmk ! make/common/MakeIncludeStart.gmk Changeset: e1903557 Branch: hermetic-java-runtime Author: David Beaumont Committer: Roger Riggs Date: 2025-09-04 13:19:12 +0000 URL: https://git.openjdk.org/leyden/commit/e19035577724f40aca14ef7d5dad0906ce9e89ab 8365467: Issues with jrtfs implementation for exploded run-time images Reviewed-by: rriggs, sundar ! src/java.base/share/classes/jdk/internal/jrtfs/ExplodedImage.java ! src/java.base/share/classes/jdk/internal/jrtfs/SystemImage.java + test/jdk/jdk/internal/jrtfs/whitebox/ExplodedImageTestDriver.java + test/jdk/jdk/internal/jrtfs/whitebox/TEST.properties + test/jdk/jdk/internal/jrtfs/whitebox/java.base/jdk/internal/jrtfs/ExplodedImageTest.java Changeset: 79a1a98c Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-09-04 16:19:35 +0000 URL: https://git.openjdk.org/leyden/commit/79a1a98cabb579a5de504144abacb386486fba7e 8366498: Simplify ClassFileParser::parse_super_class Reviewed-by: dholmes, coleenp ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classFileParser.hpp Changeset: f90d5203 Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-09-04 16:23:46 +0000 URL: https://git.openjdk.org/leyden/commit/f90d520308d5fa72497dc59bee7258931c2a3d95 8366475: Rename MetaspaceShared class to AOTMetaspace Reviewed-by: kvn, asmehra ! src/hotspot/os/posix/vmError_posix.cpp ! src/hotspot/os/windows/vmError_windows.cpp ! src/hotspot/os_cpu/bsd_aarch64/javaThread_bsd_aarch64.cpp ! src/hotspot/share/cds/aotCacheAccess.cpp ! src/hotspot/share/cds/aotClassLocation.cpp ! src/hotspot/share/cds/aotLinkedClassBulkLoader.cpp ! src/hotspot/share/cds/aotMapLogger.cpp = src/hotspot/share/cds/aotMetaspace.cpp = src/hotspot/share/cds/aotMetaspace.hpp ! src/hotspot/share/cds/aotReferenceObjSupport.cpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveHeapLoader.cpp ! src/hotspot/share/cds/archiveUtils.cpp ! src/hotspot/share/cds/archiveUtils.inline.hpp ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/cdsHeapVerifier.cpp ! src/hotspot/share/cds/cdsProtectionDomain.cpp ! src/hotspot/share/cds/classListParser.cpp ! src/hotspot/share/cds/cppVtables.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.hpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/dynamicArchive.hpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/cds/finalImageRecipes.cpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp ! src/hotspot/share/cds/lambdaFormInvokers.cpp ! src/hotspot/share/cds/lambdaProxyClassDictionary.hpp ! src/hotspot/share/cds/runTimeClassInfo.cpp ! src/hotspot/share/cds/runTimeClassInfo.hpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/modules.cpp ! src/hotspot/share/classfile/stringTable.cpp ! src/hotspot/share/classfile/symbolTable.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/include/cds.h ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/rewriter.cpp ! src/hotspot/share/memory/metaspace.cpp ! src/hotspot/share/memory/metaspace.hpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/memory/universe.hpp ! src/hotspot/share/oops/arrayKlass.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/symbol.cpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/utilities/vmError.cpp ! test/hotspot/jtreg/runtime/cds/SpaceUtilizationCheck.java ! test/hotspot/jtreg/runtime/cds/appcds/SharedArchiveConsistency.java ! test/lib/jdk/test/lib/cds/CDSArchiveUtils.java Changeset: 8520fd3f Branch: hermetic-java-runtime Author: Vladimir Ivanov Committer: Sandhya Viswanathan Date: 2025-09-04 16:50:58 +0000 URL: https://git.openjdk.org/leyden/commit/8520fd3f6a8d00d3ab0b01af6ce2307f74258fb6 8366365: [test] test/lib-test/jdk/test/whitebox/CPUInfoTest.java should be updated Reviewed-by: kvn, sviswanathan ! test/lib-test/jdk/test/whitebox/CPUInfoTest.java Changeset: 1dc1d56f Branch: hermetic-java-runtime Author: Vladimir Ivanov Committer: Sandhya Viswanathan Date: 2025-09-04 16:57:36 +0000 URL: https://git.openjdk.org/leyden/commit/1dc1d56f79e10c9b4c5c8b42a80a191f7b14c738 8363858: [perf] OptimizeFill may use wide set of intrinsics Reviewed-by: roland, sviswanathan ! src/hotspot/cpu/x86/vm_version_x86.cpp Changeset: 945aaf89 Branch: hermetic-java-runtime Author: Casper Norrbin Date: 2025-09-04 19:00:39 +0000 URL: https://git.openjdk.org/leyden/commit/945aaf893219f9ead94fd8aae4994f7b520f64bf 8366897: RBTreeTest.IntrusiveCustomVerifyTest and RBTreeTest.CustomVerify tests fail on non-debug builds Reviewed-by: ayang ! src/hotspot/share/utilities/rbTree.inline.hpp Changeset: 58107071 Branch: hermetic-java-runtime Author: Brian Burkhalter Date: 2025-09-04 21:58:08 +0000 URL: https://git.openjdk.org/leyden/commit/581070715ab1ef081032b78ceb3c2cfbdbcff611 8366102: Clarification Needed: Symbolic Link Handling in File API Specifications Reviewed-by: alanb ! src/java.base/share/classes/java/io/File.java Changeset: b7b64bb6 Branch: hermetic-java-runtime Author: Leonid Mesnik Date: 2025-09-04 22:35:21 +0000 URL: https://git.openjdk.org/leyden/commit/b7b64bb6c800b45e32ff37b1b92b5927a3b3fb56 8365937: post_method_exit might incorrectly set was_popped_by_exception and value in the middle of stack unwinding Reviewed-by: dholmes, pchilanomate ! src/hotspot/share/prims/jvmtiExport.cpp + test/hotspot/jtreg/serviceability/jvmti/events/MethodExit/PendingException/TestMethodExitWithPendingException.java + test/hotspot/jtreg/serviceability/jvmti/events/MethodExit/PendingException/libTestMethodExitWithPendingException.cpp + test/hotspot/jtreg/serviceability/jvmti/events/MethodExit/PoppedByException/TestPoppedByException.java + test/hotspot/jtreg/serviceability/jvmti/events/MethodExit/PoppedByException/libTestPoppedByException.cpp Changeset: 40a60252 Branch: hermetic-java-runtime Author: David Holmes Date: 2025-09-05 00:26:44 +0000 URL: https://git.openjdk.org/leyden/commit/40a602520ba1a4682213b74e6f2a6f5a6e35d839 8364735: [asan] heap-use-after-free error detected in defaultStream::writer during VM shutdown Reviewed-by: jsjolen, stuefe ! src/hotspot/share/utilities/ostream.cpp Changeset: 0d7f8f83 Branch: hermetic-java-runtime Author: Anjian Wen Committer: Fei Yang Date: 2025-09-05 06:13:44 +0000 URL: https://git.openjdk.org/leyden/commit/0d7f8f83c7a674f5da4b93d66a24f9ce5ba46011 8366747: RISC-V: Improve VerifyMethodHandles for method handle linkers Reviewed-by: fyang, dzhang ! src/hotspot/cpu/riscv/methodHandles_riscv.cpp ! src/hotspot/cpu/riscv/methodHandles_riscv.hpp Changeset: a2f8d3c4 Branch: hermetic-java-runtime Author: Volkan Yazici Date: 2025-09-05 06:40:33 +0000 URL: https://git.openjdk.org/leyden/commit/a2f8d3c4c25fdadf378313ef52185dceee98773d 8366765: [REDO] Rename JavaLangAccess::*NoRepl methods Reviewed-by: rriggs, liach, alanb ! src/java.base/share/classes/java/lang/String.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/nio/file/Files.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/foreign/StringSupport.java ! src/java.base/unix/classes/sun/nio/fs/UnixPath.java - test/jdk/java/lang/String/NoReplTest.java + test/jdk/java/lang/String/OrThrowTest.java Changeset: e6fa8aae Branch: hermetic-java-runtime Author: Emanuel Peter Date: 2025-09-05 08:46:56 +0000 URL: https://git.openjdk.org/leyden/commit/e6fa8aae6168ea5a8579cd0a38209ca71c32e704 8366845: C2 SuperWord: wrong VectorCast after VectorReinterpret with swapped src/dst type Reviewed-by: thartmann, galder, vlivanov ! src/hotspot/share/opto/vtransform.cpp + test/hotspot/jtreg/compiler/loopopts/superword/TestReinterpretAndCast.java Changeset: 0dad3f1a Branch: hermetic-java-runtime Author: Aleksey Shipilev Date: 2025-09-05 10:55:41 +0000 URL: https://git.openjdk.org/leyden/commit/0dad3f1ae8d0c35c4b7a8188ad7854d01c7cd6b4 8366893: java/lang/Thread/virtual/stress/GetStackTraceALotWhenPinned.java timed out on macos-aarch64 Reviewed-by: alanb, jpai ! test/jdk/java/lang/Thread/virtual/stress/GetStackTraceALotWhenBlocking.java ! test/jdk/java/lang/Thread/virtual/stress/GetStackTraceALotWhenPinned.java ! test/jdk/java/lang/Thread/virtual/stress/ParkALot.java Changeset: 124fcf1d Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-09-05 13:31:23 +0000 URL: https://git.openjdk.org/leyden/commit/124fcf1d9abb6cafe34637ba357617c7c7be56c8 8233115: Protect ExecuteWithLog from running with redirection without a subshell Reviewed-by: erikj ! make/RunTests.gmk ! make/StaticLibs.gmk ! make/common/MakeBase.gmk ! make/common/ProcessMarkdown.gmk ! make/hotspot/gensrc/GensrcDtrace.gmk Changeset: 33794d16 Branch: hermetic-java-runtime Author: Guoxiong Li Date: 2025-09-05 13:34:45 +0000 URL: https://git.openjdk.org/leyden/commit/33794d161467635eb32591fee189e5409cd2d114 8357188: Remove the field MemAllocator::Allocation::_overhead_limit_exceeded and the related code Reviewed-by: ayang, shade ! src/hotspot/share/gc/epsilon/epsilonHeap.cpp ! src/hotspot/share/gc/epsilon/epsilonHeap.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! 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/serial/serialHeap.cpp ! src/hotspot/share/gc/serial/serialHeap.hpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/memAllocator.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/z/zCollectedHeap.cpp ! src/hotspot/share/gc/z/zCollectedHeap.hpp Changeset: 1e90af08 Branch: hermetic-java-runtime Author: Archie Cobbs Date: 2025-09-05 14:30:40 +0000 URL: https://git.openjdk.org/leyden/commit/1e90af08abb74df9ec4ab94b67deeae5c1c9fee1 8359383: Incorrect starting positions for implicitly typed variables Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/Pretty.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeCopier.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! test/langtools/tools/javac/parser/DeclarationEndPositions.java ! test/langtools/tools/javac/patterns/PrettyTest.java ! test/langtools/tools/javac/tree/VarTree.java ! test/langtools/tools/javac/tree/VarWarnPosition.java ! test/langtools/tools/javac/tree/VarWarnPosition.out Changeset: ceacf6f7 Branch: hermetic-java-runtime Author: Christian Hagedorn Date: 2025-09-05 15:26:13 +0000 URL: https://git.openjdk.org/leyden/commit/ceacf6f7852514dc9877cfe284f9550c179d913a 8366890: C2: Split through phi printing with TraceLoopOpts misses line break Reviewed-by: rcastanedalo, mhaessig, epeter ! src/hotspot/share/opto/loopopts.cpp Changeset: 9f4d5b23 Branch: hermetic-java-runtime Author: Chen Liang Date: 2025-09-05 15:55:19 +0000 URL: https://git.openjdk.org/leyden/commit/9f4d5b2398cb925ec1a66f9f7676b76c99ff7b62 8365428: Unclear comments on java.lang.invoke Holder classes Reviewed-by: iklam, jvernee ! src/java.base/share/classes/java/lang/invoke/BoundMethodHandle.java ! src/java.base/share/classes/java/lang/invoke/DelegatingMethodHandle.java ! src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java ! src/java.base/share/classes/java/lang/invoke/GenerateJLIClassesHelper.java ! src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java ! src/java.base/share/classes/java/lang/invoke/Invokers.java ! src/java.base/share/classes/java/lang/invoke/LambdaForm.java Changeset: 9cca4f7c Branch: hermetic-java-runtime Author: Vladimir Ivanov Date: 2025-09-05 16:44:08 +0000 URL: https://git.openjdk.org/leyden/commit/9cca4f7c760bea9bf79f7c03f37a70449acad51e 8358751: C2: Recursive inlining check for compiled lambda forms is broken Reviewed-by: dlong, roland ! src/hotspot/share/opto/bytecodeInfo.cpp ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/parse1.cpp Changeset: a17058b5 Branch: hermetic-java-runtime Author: Phil Race Date: 2025-09-05 17:45:37 +0000 URL: https://git.openjdk.org/leyden/commit/a17058b5bb2dcc89ed276600ceac905e7e986426 8365569: Remove finalize from JavaSoundAudioClip.java Reviewed-by: kizune, tr ! src/java.desktop/share/classes/com/sun/media/sound/JavaSoundAudioClip.java + src/java.desktop/share/classes/com/sun/media/sound/JavaSoundAudioClipDelegate.java Changeset: c6c451ac Branch: hermetic-java-runtime Author: Afshin Zafari Date: 2025-09-05 18:42:58 +0000 URL: https://git.openjdk.org/leyden/commit/c6c451ac392cdb545ab43dd46918eca6c47cc5f0 8353468: [ubsan] arguments.cpp:2422:23: runtime error: 2.14748e+11 is outside the range of representable values of type 'int' Reviewed-by: stefank, dholmes ! src/hotspot/share/runtime/arguments.cpp ! test/hotspot/jtreg/gc/arguments/TestHeapFreeRatio.java Changeset: e2a503e2 Branch: hermetic-java-runtime Author: Manukumar V S Date: 2025-09-05 19:50:52 +0000 URL: https://git.openjdk.org/leyden/commit/e2a503e26ee2a3c428c5db0cd4cbe71cdc7d837f 8347277: java/awt/Focus/ComponentLostFocusTest.java fails intermittently Reviewed-by: serb ! test/jdk/java/awt/Focus/ComponentLostFocusTest.java Changeset: 4ab2b5bd Branch: hermetic-java-runtime Author: Manuel H?ssig Date: 2025-09-05 19:59:03 +0000 URL: https://git.openjdk.org/leyden/commit/4ab2b5bdb4e6d40a747d4088a25f7c6351131759 8366569: Disable CompileTaskTimeout for known long-running test cases Reviewed-by: dlong ! test/hotspot/jtreg/compiler/c2/TestScalarReplacementMaxLiveNodes.java ! test/hotspot/jtreg/compiler/codegen/TestAntiDependenciesHighMemUsage.java ! test/hotspot/jtreg/compiler/codegen/TestAntiDependenciesHighMemUsage2.java ! test/hotspot/jtreg/compiler/loopopts/TestMaxLoopOptsCountReached.java ! test/hotspot/jtreg/compiler/vectorapi/VectorReplicateLongSpecialImmTest.java Changeset: 3824c7cd Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-09-05 20:20:11 +0000 URL: https://git.openjdk.org/leyden/commit/3824c7cd06645b1dab5322015e8e6cf604afa754 8366517: Refine null locale processing of ctor/factory methods in `Date/DecimalFormatSymbols` Reviewed-by: jlu, rriggs ! src/java.base/share/classes/java/text/DateFormatSymbols.java ! src/java.base/share/classes/java/text/DecimalFormatSymbols.java ! test/jdk/java/text/Format/DateFormat/IntlTestDateFormatSymbols.java ! test/jdk/java/text/Format/NumberFormat/IntlTestDecimalFormatSymbols.java Changeset: b674a425 Branch: hermetic-java-runtime Author: Sarvesh Kumar Jain Committer: Sergey Bylokhov Date: 2025-09-05 20:35:30 +0000 URL: https://git.openjdk.org/leyden/commit/b674a425531974bb78c4622e0f1d9b46a117f575 8366750: Remove test 'java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java' from problemlist Reviewed-by: psadhukhan, serb ! test/jdk/ProblemList.txt Changeset: 1ebe9495 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-09-05 20:47:48 +0000 URL: https://git.openjdk.org/leyden/commit/1ebe949507b48a6b62dd36e08f0ae80da2ee1dcc 8314488: Compiling the JDK with C++17 Reviewed-by: dholmes, stefank, ayang, kvn, iwalulya, jsjolen, ihse ! doc/hotspot-style.html ! doc/hotspot-style.md ! make/autoconf/flags-cflags.m4 ! make/ide/vscode/hotspot/indexers/ccls-settings.txt ! make/ide/vscode/hotspot/indexers/clangd-settings.txt ! make/ide/vscode/hotspot/indexers/cpptools-settings.txt ! make/ide/vscode/hotspot/indexers/rtags-settings.txt Changeset: cdc8b5eb Branch: hermetic-java-runtime Author: Chen Liang Date: 2025-09-05 21:08:29 +0000 URL: https://git.openjdk.org/leyden/commit/cdc8b5eb83ed6335a65b93cfa0cf38932486c7e3 8366455: Move VarHandles.GuardMethodGenerator to execute on build Reviewed-by: psandoz, redestad, erikj ! make/ToolsJdk.gmk + make/jdk/src/classes/build/tools/methodhandle/VarHandleGuardMethodGenerator.java ! make/modules/java.base/gensrc/GensrcVarHandles.gmk - src/java.base/share/classes/java/lang/invoke/VarHandleGuards.java ! src/java.base/share/classes/java/lang/invoke/VarHandles.java Changeset: dbf4ffff Branch: hermetic-java-runtime Author: Ioi Lam Date: 2025-09-05 23:55:13 +0000 URL: https://git.openjdk.org/leyden/commit/dbf4ffffe3fbbb513122081bbcc04c543473082e 8366477: Refactor AOT-related flag bits in klass.hpp Reviewed-by: liach, asmehra, kvn ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/lambdaFormInvokers.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/instanceKlassFlags.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp Changeset: e8c7d2aa Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-09-06 09:00:51 +0000 URL: https://git.openjdk.org/leyden/commit/e8c7d2aaf3cdbbe07b8cdcc68dd7ec9645956bf2 8332872: SetupExecute should cd to temp directory Reviewed-by: erikj ! make/CreateJmods.gmk ! make/UpdateSleefSource.gmk ! make/common/Execute.gmk + test/make/TestExecute.gmk ! test/make/TestMake.gmk Changeset: 6bb15a54 Branch: hermetic-java-runtime Author: David Holmes Date: 2025-09-07 20:21:23 +0000 URL: https://git.openjdk.org/leyden/commit/6bb15a542b0eb6a4b17cfd9da50a94781d0180eb 8367035: [BACKOUT] Protect ExecuteWithLog from running with redirection without a subshell Reviewed-by: kbarrett ! make/RunTests.gmk ! make/StaticLibs.gmk ! make/common/MakeBase.gmk ! make/common/ProcessMarkdown.gmk ! make/hotspot/gensrc/GensrcDtrace.gmk Changeset: 14a40fd5 Branch: hermetic-java-runtime Author: Sergey Bylokhov Date: 2025-09-07 23:18:07 +0000 URL: https://git.openjdk.org/leyden/commit/14a40fd579b087f061da086f5eb18230c379dce0 8361533: Apply java.io.Serial annotations in java.logging Reviewed-by: rriggs ! src/java.logging/share/classes/java/util/logging/LoggingPermission.java Changeset: 8a6b8751 Branch: hermetic-java-runtime Author: Francesco Andreuzzi Committer: Chen Liang Date: 2025-09-07 23:20:22 +0000 URL: https://git.openjdk.org/leyden/commit/8a6b8751e1a8ad93646bf3900186802c863d7119 8354871: Replace stack map frame type magics with constants Reviewed-by: liach ! src/java.base/share/classes/java/lang/classfile/attribute/StackMapFrameInfo.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CodeImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/ParserVerifier.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationTable.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationType.java Changeset: b0ca9bf6 Branch: hermetic-java-runtime Author: Jan Lahoda Date: 2025-09-08 04:35:05 +0000 URL: https://git.openjdk.org/leyden/commit/b0ca9bf61e0390a3b022a0915eacabb0cfd92e93 8365776: Convert JShell tests to use JUnit instead of TestNG Reviewed-by: vromero ! test/langtools/jdk/jshell/AbstractStopExecutionTest.java ! test/langtools/jdk/jshell/AnalysisTest.java ! test/langtools/jdk/jshell/AnalyzeSnippetTest.java ! test/langtools/jdk/jshell/BadExecutionControlSpecTest.java ! test/langtools/jdk/jshell/ClassMembersTest.java ! test/langtools/jdk/jshell/ClassPathTest.java ! test/langtools/jdk/jshell/ClassesTest.java ! test/langtools/jdk/jshell/CommandCompletionTest.java ! test/langtools/jdk/jshell/CompilerOptionsTest.java ! test/langtools/jdk/jshell/CompletenessStressTest.java ! test/langtools/jdk/jshell/CompletenessTest.java ! test/langtools/jdk/jshell/CompletionSuggestionTest.java ! test/langtools/jdk/jshell/ComputeFQNsTest.java ! test/langtools/jdk/jshell/ConsoleTest.java ! test/langtools/jdk/jshell/ConsoleToolTest.java ! test/langtools/jdk/jshell/CustomInputToolBuilder.java ! test/langtools/jdk/jshell/DropTest.java ! test/langtools/jdk/jshell/EditorTestBase.java ! test/langtools/jdk/jshell/EmptyTest.java ! test/langtools/jdk/jshell/ErrorRecoveryTest.java ! test/langtools/jdk/jshell/ErrorTranslationTest.java ! test/langtools/jdk/jshell/ExceptionMessageTest.java ! test/langtools/jdk/jshell/ExceptionsTest.java ! test/langtools/jdk/jshell/ExecutionControlSpecTest.java ! test/langtools/jdk/jshell/ExecutionControlTestBase.java ! test/langtools/jdk/jshell/ExpectedDiagnostic.java ! test/langtools/jdk/jshell/ExternalEditorTest.java ! test/langtools/jdk/jshell/FailOverDirectExecutionControlTest.java ! test/langtools/jdk/jshell/FailOverExecutionControlDyingLaunchTest.java ! test/langtools/jdk/jshell/FailOverExecutionControlHangingLaunchTest.java ! test/langtools/jdk/jshell/FailOverExecutionControlHangingListenTest.java ! test/langtools/jdk/jshell/FailOverExecutionControlTest.java ! test/langtools/jdk/jshell/FileManagerTest.java ! test/langtools/jdk/jshell/ForwardReferenceImportTest.java ! test/langtools/jdk/jshell/ForwardReferenceTest.java ! test/langtools/jdk/jshell/GetResourceTest.java ! test/langtools/jdk/jshell/HighlightUITest.java ! test/langtools/jdk/jshell/HistoryTest.java ! test/langtools/jdk/jshell/HistoryUITest.java ! test/langtools/jdk/jshell/IOTest.java ! test/langtools/jdk/jshell/IdGeneratorTest.java ! test/langtools/jdk/jshell/IgnoreTest.java ! test/langtools/jdk/jshell/IllegalArgumentExceptionTest.java ! test/langtools/jdk/jshell/ImportTest.java ! test/langtools/jdk/jshell/InaccessibleExpressionTest.java ! test/langtools/jdk/jshell/IndentUITest.java ! test/langtools/jdk/jshell/InferTypeTest.java ! test/langtools/jdk/jshell/InputUITest.java ! test/langtools/jdk/jshell/JLCollisionTest.java ! test/langtools/jdk/jshell/JShellQueryTest.java ! test/langtools/jdk/jshell/JShellStateClosedTest.java ! test/langtools/jdk/jshell/JavadocTest.java ! test/langtools/jdk/jshell/JdiBadOptionLaunchExecutionControlTest.java ! test/langtools/jdk/jshell/JdiBadOptionListenExecutionControlTest.java ! test/langtools/jdk/jshell/JdiBogusHostListenExecutionControlTest.java ! test/langtools/jdk/jshell/JdiFailingLaunchExecutionControlTest.java ! test/langtools/jdk/jshell/JdiFailingListenExecutionControlTest.java ! test/langtools/jdk/jshell/JdiHangingLaunchExecutionControlTest.java ! test/langtools/jdk/jshell/JdiHangingListenExecutionControlTest.java ! test/langtools/jdk/jshell/JdiLaunchingExecutionControlTest.java ! test/langtools/jdk/jshell/JdiListeningExecutionControlTest.java ! test/langtools/jdk/jshell/JdiListeningLocalhostExecutionControlTest.java ! test/langtools/jdk/jshell/JdiStarterTest.java ! test/langtools/jdk/jshell/KullaCompletenessStressTest.java ! test/langtools/jdk/jshell/KullaTesting.java ! test/langtools/jdk/jshell/LocalExecutionClassPathTest.java ! test/langtools/jdk/jshell/LocalExecutionContextLoaderParentTest.java ! test/langtools/jdk/jshell/LocalExecutionTestSupport.java ! test/langtools/jdk/jshell/LocalStopExecutionTest.java ! test/langtools/jdk/jshell/MethodsTest.java ! test/langtools/jdk/jshell/ModifiersTest.java ! test/langtools/jdk/jshell/MultipleDocumentationTest.java ! test/langtools/jdk/jshell/MyExecutionControl.java ! test/langtools/jdk/jshell/NullTest.java ! test/langtools/jdk/jshell/PasteAndMeasurementsUITest.java ! test/langtools/jdk/jshell/PipeInputStreamTest.java ! test/langtools/jdk/jshell/PrimitiveInstanceOfTest.java ! test/langtools/jdk/jshell/RecordsTest.java ! test/langtools/jdk/jshell/RejectedFailedTest.java ! test/langtools/jdk/jshell/ReplToolTesting.java ! test/langtools/jdk/jshell/ReplaceTest.java ! test/langtools/jdk/jshell/SealedClassesTest.java ! test/langtools/jdk/jshell/ShutdownTest.java ! test/langtools/jdk/jshell/SimpleRegressionTest.java ! test/langtools/jdk/jshell/SnippetEventToStringTest.java ! test/langtools/jdk/jshell/SnippetHighlightTest.java ! test/langtools/jdk/jshell/SnippetStatusListenerTest.java ! test/langtools/jdk/jshell/SnippetTest.java ! test/langtools/jdk/jshell/SourceLevelTest.java ! test/langtools/jdk/jshell/StartOptionTest.java ! test/langtools/jdk/jshell/StartupWithFormatSpecifierTest.java ! test/langtools/jdk/jshell/StopExecutionTest.java ! test/langtools/jdk/jshell/T8146368/JShellTest8146368.java ! test/langtools/jdk/jshell/T8146368/JShellToolTest8146368.java ! test/langtools/jdk/jshell/Test8294583.java ! test/langtools/jdk/jshell/Test8296012.java ! test/langtools/jdk/jshell/ToolBasicTest.java ! test/langtools/jdk/jshell/ToolCommandOptionTest.java ! test/langtools/jdk/jshell/ToolCompletionTest.java ! test/langtools/jdk/jshell/ToolEnableNativeAccessTest.java ! test/langtools/jdk/jshell/ToolEnablePreviewTest.java ! test/langtools/jdk/jshell/ToolFormatTest.java ! test/langtools/jdk/jshell/ToolLocalSimpleTest.java ! test/langtools/jdk/jshell/ToolLocaleMessageTest.java ! test/langtools/jdk/jshell/ToolMultilineSnippetHistoryTest.java ! test/langtools/jdk/jshell/ToolProviderTest.java ! test/langtools/jdk/jshell/ToolReloadTest.java ! test/langtools/jdk/jshell/ToolRetainTest.java ! test/langtools/jdk/jshell/ToolShiftTabTest.java ! test/langtools/jdk/jshell/ToolSimpleTest.java ! test/langtools/jdk/jshell/ToolTabCommandTest.java ! test/langtools/jdk/jshell/ToolTabSnippetTest.java ! test/langtools/jdk/jshell/ToolingTest.java ! test/langtools/jdk/jshell/TypeNameTest.java ! test/langtools/jdk/jshell/UITesting.java ! test/langtools/jdk/jshell/UndefinedClassTest.java ! test/langtools/jdk/jshell/UnicodeTest.java ! test/langtools/jdk/jshell/UnnamedTest.java ! test/langtools/jdk/jshell/UserExecutionControlTest.java ! test/langtools/jdk/jshell/UserInputTest.java ! test/langtools/jdk/jshell/UserJdiUserRemoteTest.java ! test/langtools/jdk/jshell/VariablesTest.java ! test/langtools/jdk/jshell/WrapperTest.java Changeset: f9dc640e Branch: hermetic-java-runtime Author: Jan Lahoda Date: 2025-09-08 06:33:30 +0000 URL: https://git.openjdk.org/leyden/commit/f9dc640ef07ea5569b3581360041db2bb7e30c40 8351260: java.lang.AssertionError: Unexpected type tree: (ERROR) = (ERROR) Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! test/langtools/tools/javac/parser/JavacParserTest.java ! test/langtools/tools/javac/recovery/AttrRecovery.java Changeset: fb1924d2 Branch: hermetic-java-runtime Author: Joel Sikstr?m Date: 2025-09-08 06:33:49 +0000 URL: https://git.openjdk.org/leyden/commit/fb1924d2e34f77dc834094485dccb1751bc5b3b6 8366874: Test gc/arguments/TestParallelGCErgo.java fails with UseTransparentHugePages Reviewed-by: ayang, shade, stefank, tschatzl ! test/hotspot/jtreg/gc/arguments/TestParallelGCErgo.java Changeset: 051f39e1 Branch: hermetic-java-runtime Author: Francesco Andreuzzi Committer: David Holmes Date: 2025-09-08 07:10:12 +0000 URL: https://git.openjdk.org/leyden/commit/051f39e12ce8845d13c7d4813dabc556a834892d 8366864: Sort os/linux includes Reviewed-by: ayang, dholmes ! src/hotspot/os/linux/cgroupSubsystem_linux.cpp ! src/hotspot/os/linux/cgroupSubsystem_linux.hpp ! src/hotspot/os/linux/cgroupUtil_linux.cpp ! src/hotspot/os/linux/cgroupUtil_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/osContainer_linux.cpp ! src/hotspot/os/linux/osContainer_linux.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_linux.inline.hpp ! src/hotspot/os/linux/os_perf_linux.cpp ! src/hotspot/os/linux/waitBarrier_linux.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: bea2b029 Branch: hermetic-java-runtime Author: Richard Reingruber Date: 2025-09-08 08:30:03 +0000 URL: https://git.openjdk.org/leyden/commit/bea2b029a77e126171d17c3a44baec6d5cafed4a 8360219: [AIX] assert(locals_base >= l2) failed: bad placement Reviewed-by: dlong, mdoerr ! src/hotspot/cpu/ppc/abstractInterpreter_ppc.cpp Changeset: 5e423e03 Branch: hermetic-java-runtime Author: Guanqiang Han Committer: Julian Waters Date: 2025-09-08 09:37:36 +0000 URL: https://git.openjdk.org/leyden/commit/5e423e034f1f077ce9c17cfe9b0d838a4cf9365e 8367025: zIndexDistributor.hpp uses angle-bracket inclusion of globalDefinitions.hpp Reviewed-by: aboldtch, tschatzl, jwaters ! src/hotspot/share/gc/z/zIndexDistributor.hpp Changeset: a2726968 Branch: hermetic-java-runtime Author: Fredrik Bredberg Date: 2025-09-08 10:28:18 +0000 URL: https://git.openjdk.org/leyden/commit/a272696813f2e5e896ac9de9985246aaeb9d476c 8365190: Remove LockingMode related code from share Reviewed-by: aboldtch, dholmes, ayang, coleenp, lmesnik, rcastanedalo ! src/hotspot/cpu/zero/zeroInterpreter_zero.cpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/gc/g1/g1BarrierSet.inline.hpp ! src/hotspot/share/gc/g1/g1BarrierSetRuntime.cpp ! src/hotspot/share/gc/g1/g1HeapRegion.inline.hpp ! src/hotspot/share/gc/g1/g1SATBMarkQueueSet.cpp ! src/hotspot/share/gc/shared/cardTableBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/interpreter/zero/bytecodeInterpreter.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/oops/instanceStackChunkKlass.cpp ! src/hotspot/share/oops/markWord.cpp ! src/hotspot/share/oops/markWord.hpp ! src/hotspot/share/oops/oop.cpp ! src/hotspot/share/oops/oop.hpp ! src/hotspot/share/oops/stackChunkOop.inline.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/prims/jvmtiEnv.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/basicLock.cpp ! src/hotspot/share/runtime/basicLock.hpp ! src/hotspot/share/runtime/basicLock.inline.hpp ! src/hotspot/share/runtime/continuation.cpp ! src/hotspot/share/runtime/continuationFreezeThaw.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/javaCalls.cpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/lightweightSynchronizer.cpp ! src/hotspot/share/runtime/lockStack.cpp ! src/hotspot/share/runtime/objectMonitor.cpp ! src/hotspot/share/runtime/objectMonitor.hpp ! src/hotspot/share/runtime/objectMonitor.inline.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! src/hotspot/share/runtime/synchronizer.inline.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/runtime/threads.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/utilities/globalDefinitions.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/hotspot/share/utilities/vmError.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ObjectMonitor.java ! test/hotspot/gtest/runtime/test_lockStack.cpp ! test/hotspot/jtreg/runtime/locking/TestRecursiveMonitorChurn.java Changeset: 03c54d42 Branch: hermetic-java-runtime Author: Jan Lahoda Date: 2025-09-08 12:26:58 +0000 URL: https://git.openjdk.org/leyden/commit/03c54d4288dfd70190c3f306a44a8424f268f787 8365689: Elements.getFileObjectOf fails with a NullPointerException when an erroneous Element is passed in Reviewed-by: darcy, vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java ! test/langtools/tools/javac/processing/model/element/TestFileObjectOf.java Changeset: bcff857b Branch: hermetic-java-runtime Author: Volker Simonis Date: 2025-09-08 13:30:45 +0000 URL: https://git.openjdk.org/leyden/commit/bcff857ba09028cc43e856726b5c839cc6b1b0d9 8361381: GlyphLayout behavior differs on JDK 11+ compared to JDK 8 Reviewed-by: prr, serb ! src/java.desktop/share/classes/sun/font/ExtendedTextSourceLabel.java ! test/jdk/java/awt/font/GlyphVector/GetGlyphCharIndexTest.java + test/jdk/java/awt/font/LineBreakMeasurer/KhmerLineBreakTest.java Changeset: 166ef5e7 Branch: hermetic-java-runtime Author: Mikhail Yankelevich Committer: Weijun Wang Date: 2025-09-08 14:37:25 +0000 URL: https://git.openjdk.org/leyden/commit/166ef5e7b1c6d6a9f0f1f29fedb7f65b94f53119 8366159: SkippedException is treated as a pass for pkcs11/KeyStore, pkcs11/SecretKeyFactory and pkcs11/SecureRandom Reviewed-by: weijun ! test/jdk/sun/security/pkcs11/KeyStore/CertChainRemoval.java ! test/jdk/sun/security/pkcs11/KeyStore/ClientAuth.java ! test/jdk/sun/security/pkcs11/SecretKeyFactory/TestGeneral.java ! test/jdk/sun/security/pkcs11/SecureRandom/Basic.java ! test/jdk/sun/security/pkcs11/SecureRandom/TestDeserialization.java Changeset: 6765a9d7 Branch: hermetic-java-runtime Author: Coleen Phillimore Date: 2025-09-08 15:50:09 +0000 URL: https://git.openjdk.org/leyden/commit/6765a9d775b5bd3d1b36090038060762f976d174 8366908: Use a different class for testing JDK-8351654 Reviewed-by: liach, lmesnik ! test/hotspot/jtreg/runtime/verifier/CFLH/TestVerify.java Changeset: ab12fbfd Branch: hermetic-java-runtime Author: Fabio Romano Committer: Raffaello Giulietti Date: 2025-09-08 16:10:22 +0000 URL: https://git.openjdk.org/leyden/commit/ab12fbfda2c364bb16ddf03b923989639f437f6a 8077587: BigInteger Roots Reviewed-by: rgiulietti ! src/java.base/share/classes/java/math/BigInteger.java ! src/java.base/share/classes/java/math/MutableBigInteger.java ! test/jdk/java/math/BigInteger/BigIntegerTest.java Changeset: 48831c65 Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-09-08 16:23:26 +0000 URL: https://git.openjdk.org/leyden/commit/48831c65b5535fef706b64a4eb23ba28b1567ead 8367021: Regression in LocaleDataTest refactoring Reviewed-by: jlu, joehw ! test/jdk/sun/text/resources/LocaleDataTest.java Changeset: 323b0201 Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-09-08 16:46:30 +0000 URL: https://git.openjdk.org/leyden/commit/323b02016e7458a0be39d52c9b0a5c61d579347e 8367034: [REDO] Protect ExecuteWithLog from running with redirection without a subshell Reviewed-by: erikj ! make/RunTests.gmk ! make/StaticLibs.gmk ! make/common/MakeBase.gmk ! make/common/ProcessMarkdown.gmk ! make/hotspot/gensrc/GensrcDtrace.gmk Changeset: 55af9d83 Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-09-08 16:48:14 +0000 URL: https://git.openjdk.org/leyden/commit/55af9d83800930966776224bc4c7ff4ab1af9817 8366837: Clean up gensrc by spp.Spp Reviewed-by: erikj ! make/common/Utils.gmk + make/common/modules/GensrcStreamPreProcessing.gmk ! make/modules/java.base/Gensrc.gmk ! make/modules/java.base/gensrc/GensrcBuffer.gmk ! make/modules/java.base/gensrc/GensrcCharsetCoder.gmk ! make/modules/java.base/gensrc/GensrcScopedMemoryAccess.gmk ! make/modules/java.base/gensrc/GensrcVarHandles.gmk ! src/java.base/share/classes/java/nio/charset/Charset-X-Coder.java.template ! test/make/TestMakeBase.gmk Changeset: cb58e656 Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-09-08 16:48:35 +0000 URL: https://git.openjdk.org/leyden/commit/cb58e6560a3b80655224cb79d52bfd0afa3cf262 8330341: Wrap call to MT in ExecuteWithLog Reviewed-by: erikj ! make/common/native/LinkMicrosoft.gmk Changeset: 85441cec Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-09-08 18:30:18 +0000 URL: https://git.openjdk.org/leyden/commit/85441cec3558f76ffa2a785c959397333503d556 8367101: Remove unused includes in cardTable.cpp Reviewed-by: stefank ! src/hotspot/share/gc/shared/cardTable.cpp Changeset: 3e68d7d9 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-09-08 19:13:55 +0000 URL: https://git.openjdk.org/leyden/commit/3e68d7d99fcf3039395ba94234ecbebe8e98c754 8366881: Parallel: Obsolete HeapMaximumCompactionInterval Reviewed-by: iwalulya ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/parallel_globals.hpp ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psParallelCompact.hpp ! src/hotspot/share/runtime/arguments.cpp Changeset: 56e37352 Branch: hermetic-java-runtime Author: Erik Joelsson Date: 2025-09-08 20:52:31 +0000 URL: https://git.openjdk.org/leyden/commit/56e37352d5b0a749ccd150c36c9248e37d280eb6 8367130: JDK builds broken by 8366837: Clean up gensrc by spp.Spp Reviewed-by: liach ! make/modules/java.base/gensrc/GensrcVarHandles.gmk Changeset: 81a1e8e1 Branch: hermetic-java-runtime Author: Cesar Soares Lucas Date: 2025-09-08 21:44:18 +0000 URL: https://git.openjdk.org/leyden/commit/81a1e8e1363446de499a59fc706221efde12dd86 8364936: Shenandoah: Switch nmethod entry barriers to conc_instruction_and_data_patch Reviewed-by: fyang, dzhang, kdnilsen, wkemper ! src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/gc/shared/barrierSetNMethod_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/ppc/gc/shared/barrierSetAssembler_ppc.hpp ! src/hotspot/cpu/ppc/gc/shenandoah/shenandoahBarrierSetAssembler_ppc.hpp ! src/hotspot/cpu/riscv/gc/shared/barrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/gc/shared/barrierSetAssembler_riscv.hpp ! src/hotspot/cpu/riscv/gc/shared/barrierSetNMethod_riscv.cpp ! src/hotspot/cpu/riscv/gc/shenandoah/shenandoahBarrierSetAssembler_riscv.hpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/TestHotSpotVMConfig.java Changeset: 4ec63e8f Branch: hermetic-java-runtime Author: Chris Plummer Date: 2025-09-09 00:05:56 +0000 URL: https://git.openjdk.org/leyden/commit/4ec63e8f5d1768ea78d0bbf477d68bcf3c6f96b6 8366850: Test com/sun/jdi/JdbStopInNotificationThreadTest.java failed Reviewed-by: ayang, lmesnik, syan ! test/jdk/com/sun/jdi/JdbStopInNotificationThreadTest.java Changeset: 0aee7bf2 Branch: hermetic-java-runtime Author: Dingli Zhang Committer: Fei Yang Date: 2025-09-09 00:38:15 +0000 URL: https://git.openjdk.org/leyden/commit/0aee7bf24d7f2578d3867bcfa25646cb0bd06d9a 8367048: RISC-V: Correct pipeline descriptions of the architecture Reviewed-by: fyang, fjiang, mli ! src/hotspot/cpu/riscv/riscv.ad Changeset: 680bf758 Branch: hermetic-java-runtime Author: erifan Committer: Emanuel Peter Date: 2025-09-09 06:58:00 +0000 URL: https://git.openjdk.org/leyden/commit/680bf758980452511ea72224066358e5fd38f060 8365911: AArch64: Fix encoding error in sve_cpy for negative floats Reviewed-by: aph, epeter ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h Changeset: ecfba66d Branch: hermetic-java-runtime Author: Johan Sj?len Date: 2025-09-09 07:31:14 +0000 URL: https://git.openjdk.org/leyden/commit/ecfba66d3d7c1fef755f0824f342189d0f231007 8366363: MemBaseline accesses VMT without using lock Co-authored-by: Casper Norrbin Reviewed-by: azafari, cnorrbin ! src/hotspot/share/nmt/memBaseline.cpp ! src/hotspot/share/nmt/memBaseline.hpp ! src/hotspot/share/nmt/memReporter.cpp ! src/hotspot/share/nmt/nmtNativeCallStackStorage.cpp ! src/hotspot/share/nmt/nmtNativeCallStackStorage.hpp ! src/hotspot/share/nmt/regionsTree.cpp ! src/hotspot/share/nmt/regionsTree.hpp ! src/hotspot/share/nmt/vmatree.cpp ! src/hotspot/share/nmt/vmatree.hpp ! src/hotspot/share/utilities/rbTree.hpp ! src/hotspot/share/utilities/rbTree.inline.hpp ! test/hotspot/gtest/utilities/test_rbtree.cpp Changeset: 67bb22f3 Branch: hermetic-java-runtime Author: Francesco Andreuzzi Committer: David Holmes Date: 2025-09-09 07:36:57 +0000 URL: https://git.openjdk.org/leyden/commit/67bb22f3d661d7edf7a0949612d9fb64f0124cad 8367085: Sort os/posix includes Reviewed-by: ayang, dholmes ! src/hotspot/os/posix/attachListener_posix.cpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/posix/os_posix.inline.hpp ! src/hotspot/os/posix/perfMemory_posix.cpp ! src/hotspot/os/posix/safefetch_sigjmp.cpp ! src/hotspot/os/posix/semaphore_posix.cpp ! src/hotspot/os/posix/threadLocalStorage_posix.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: e16c5100 Branch: hermetic-java-runtime Author: Johan Sj?len Date: 2025-09-09 08:14:55 +0000 URL: https://git.openjdk.org/leyden/commit/e16c510071f84bdbd57a8b2d3810c484c314ccf9 8367231: [BACKOUT] JDK-8366363: MemBaseline accesses VMT without using lock Reviewed-by: kbarrett, dholmes ! src/hotspot/share/nmt/memBaseline.cpp ! src/hotspot/share/nmt/memBaseline.hpp ! src/hotspot/share/nmt/memReporter.cpp ! src/hotspot/share/nmt/nmtNativeCallStackStorage.cpp ! src/hotspot/share/nmt/nmtNativeCallStackStorage.hpp ! src/hotspot/share/nmt/regionsTree.cpp ! src/hotspot/share/nmt/regionsTree.hpp ! src/hotspot/share/nmt/vmatree.cpp ! src/hotspot/share/nmt/vmatree.hpp ! src/hotspot/share/utilities/rbTree.hpp ! src/hotspot/share/utilities/rbTree.inline.hpp ! test/hotspot/gtest/utilities/test_rbtree.cpp Changeset: cfb80934 Branch: hermetic-java-runtime Author: Paul H?bner Committer: David Holmes Date: 2025-09-09 09:01:46 +0000 URL: https://git.openjdk.org/leyden/commit/cfb809344c0205875b35991ce6807333df41c949 8364103: Convert existing sprintf-chains to stringStream Reviewed-by: kbarrett, dholmes, iklam ! src/hotspot/share/classfile/javaClasses.cpp Changeset: f51e442b Branch: hermetic-java-runtime Author: Hamlin Li Date: 2025-09-09 09:29:23 +0000 URL: https://git.openjdk.org/leyden/commit/f51e442b0e26d0e9ebb6ec0da9584ba4f548322c 8367098: RISC-V: sync CPU features with related JVM flags for dependant ones Reviewed-by: fyang ! src/hotspot/cpu/riscv/vm_version_riscv.hpp Changeset: 4fc917c2 Branch: hermetic-java-runtime Author: Johannes Bechberger Date: 2025-09-09 10:15:53 +0000 URL: https://git.openjdk.org/leyden/commit/4fc917c25005d1f88fe43069fe623e243bd022c3 8366486: Test jdk/jfr/event/profiling/TestCPUTimeSampleMultipleRecordings.java is timing out Reviewed-by: jbachorik ! test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleMultipleRecordings.java Changeset: 002f936e Branch: hermetic-java-runtime Author: Johannes Bechberger Date: 2025-09-09 10:16:22 +0000 URL: https://git.openjdk.org/leyden/commit/002f936ef21943ff1c8c03618091793768e756ac 8366082: Improve queue size computation in CPU-time sampler Reviewed-by: jbachorik ! src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.hpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampling.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.cpp ! src/hotspot/share/prims/whitebox.cpp + test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleQueueAutoSizes.java ! test/lib/jdk/test/whitebox/WhiteBox.java Changeset: a25dde62 Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-09-09 10:58:21 +0000 URL: https://git.openjdk.org/leyden/commit/a25dde6279c100dcff266d19b263e764f5da244e 8365231: Don't build gtest with /EHsc Reviewed-by: kbarrett, stuefe ! make/hotspot/lib/CompileGtest.gmk Changeset: a1ab12b7 Branch: hermetic-java-runtime Author: Stefan Karlsson Date: 2025-09-09 11:17:33 +0000 URL: https://git.openjdk.org/leyden/commit/a1ab12b77266c7124a297e1b2e0a8608b8facb2a 8366854: Extend jtreg failure handler with THP info Reviewed-by: ayang, shade, tschatzl, lmesnik, sjohanss ! test/failure_handler/src/share/conf/linux.properties Changeset: 06326176 Branch: hermetic-java-runtime Author: Marc Chevalier Date: 2025-09-09 11:17:48 +0000 URL: https://git.openjdk.org/leyden/commit/0632617670f991da23c3892d357e8d1f051d29a0 8367135: Test compiler/loopstripmining/CheckLoopStripMining.java needs internal timeouts adjusted Reviewed-by: thartmann, chagedorn ! test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMining.java Changeset: f10c85fb Branch: hermetic-java-runtime Author: Saint Wesonga Committer: Roger Riggs Date: 2025-09-09 13:13:08 +0000 URL: https://git.openjdk.org/leyden/commit/f10c85fbc336f6908a4f1ecae9fb5ab52984f636 8367027: java/lang/ProcessBuilder/Basic.java fails on Windows AArch64 Reviewed-by: rriggs ! test/jdk/java/lang/ProcessBuilder/Basic.java Changeset: b653ae92 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-09-09 15:02:54 +0000 URL: https://git.openjdk.org/leyden/commit/b653ae92d5941202780873fad1a7cefd51e4e7a8 8367051: Build failure with clang on linux and AIX after switch to C++17 Reviewed-by: dholmes, ayang, mbaesken, mdoerr ! src/hotspot/share/utilities/forbiddenFunctions.hpp Changeset: cc6d34b2 Branch: hermetic-java-runtime Author: Daniel Jeli?ski Date: 2025-09-09 15:08:30 +0000 URL: https://git.openjdk.org/leyden/commit/cc6d34b2fa299a68a05e65e25c1f41dffa67c118 8366971: C2: Remove unused nop_list from PhaseOutput::init_buffer Reviewed-by: epeter, dlong ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/share/adlc/adlparse.cpp ! src/hotspot/share/adlc/formsopt.cpp ! src/hotspot/share/adlc/formsopt.hpp ! src/hotspot/share/adlc/output_c.cpp ! src/hotspot/share/adlc/output_h.cpp ! src/hotspot/share/opto/output.cpp Changeset: a12e9fce Branch: hermetic-java-runtime Author: Naoto Sato Date: 2025-09-09 19:37:57 +0000 URL: https://git.openjdk.org/leyden/commit/a12e9fcebda1d7b75cb892e7920333d73fb5de9c 8366261: Provide utility methods for sun.security.util.Password Reviewed-by: smarks, weijun ! src/java.base/share/classes/java/io/Console.java ! src/java.base/share/classes/jdk/internal/access/JavaIOAccess.java ! src/java.base/share/classes/jdk/internal/io/JdkConsoleImpl.java ! src/java.base/unix/native/libjava/Console_md.c ! src/java.base/windows/native/libjava/Console_md.c ! test/jdk/java/io/Console/ModuleSelectionTest.java Changeset: 24a73493 Branch: hermetic-java-runtime Author: Justin Lu Date: 2025-09-09 22:03:25 +0000 URL: https://git.openjdk.org/leyden/commit/24a734938e555882857cf0b06ea693ec6f18085f 8366733: Re-examine older java.text NF, DF, and DFS serialization tests Reviewed-by: naoto ! test/jdk/java/text/Format/DecimalFormat/DFSSerializationTest.java = test/jdk/java/text/Format/DecimalFormat/DecimalFormat.114.txt = test/jdk/java/text/Format/DecimalFormat/DecimalFormatSymbols.114.txt = test/jdk/java/text/Format/DecimalFormat/DecimalFormatSymbols.142.txt = test/jdk/java/text/Format/DecimalFormat/NumberFormat4185761a.ser.txt = test/jdk/java/text/Format/DecimalFormat/NumberFormat4185761b.ser.txt ! test/jdk/java/text/Format/DecimalFormat/SerializationTest.java - test/jdk/java/text/Format/NumberFormat/DFSDeserialization142.java - test/jdk/java/text/Format/NumberFormat/DFSSerialization.java - test/jdk/java/text/Format/NumberFormat/DFSSerialization142.java ! test/jdk/java/text/Format/NumberFormat/NumberRegression.java - test/jdk/java/text/Format/NumberFormat/SerializationLoadTest.java - test/jdk/java/text/Format/NumberFormat/SerializationSaveTest.java Changeset: f9640398 Branch: hermetic-java-runtime Author: Dean Long Date: 2025-09-09 23:27:33 +0000 URL: https://git.openjdk.org/leyden/commit/f96403986b99008593e025c4991ee865fce59bb1 8361376: Regressions 1-6% in several Renaissance in 26-b4 only MacOSX aarch64 Co-authored-by: Martin Doerr Reviewed-by: mdoerr, aph, eosterlund ! src/hotspot/cpu/aarch64/gc/shared/barrierSetNMethod_aarch64.cpp ! src/hotspot/cpu/arm/gc/shared/barrierSetNMethod_arm.cpp ! src/hotspot/cpu/ppc/gc/shared/barrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/gc/shared/barrierSetNMethod_ppc.cpp ! src/hotspot/cpu/ppc/nativeInst_ppc.hpp ! src/hotspot/cpu/riscv/gc/shared/barrierSetNMethod_riscv.cpp ! src/hotspot/cpu/s390/gc/shared/barrierSetNMethod_s390.cpp ! src/hotspot/cpu/x86/gc/shared/barrierSetNMethod_x86.cpp ! src/hotspot/cpu/zero/gc/shared/barrierSetNMethod_zero.cpp ! src/hotspot/share/gc/shared/barrierSetNMethod.cpp ! src/hotspot/share/gc/shared/barrierSetNMethod.hpp ! src/hotspot/share/gc/z/zBarrierSetNMethod.cpp ! src/hotspot/share/gc/z/zBarrierSetNMethod.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp Changeset: 8cd4e7d8 Branch: hermetic-java-runtime Author: Leonid Mesnik Date: 2025-09-09 23:50:33 +0000 URL: https://git.openjdk.org/leyden/commit/8cd4e7d856dcc68243505f4e771dc8ab87176584 8365192: post_meth_exit should be in vm state when calling get_jvmti_thread_state Reviewed-by: mdoerr, dholmes ! src/hotspot/share/prims/jvmtiExport.cpp Changeset: 53b3e056 Branch: hermetic-java-runtime Author: erifan Committer: Xiaohong Gong Date: 2025-09-10 01:49:55 +0000 URL: https://git.openjdk.org/leyden/commit/53b3e0567d2801ddf62c5849b219324ddfcb264a 8366588: VectorAPI: Re-intrinsify VectorMask.laneIsSet where the input index is a variable Reviewed-by: shade, xgong, epeter ! src/hotspot/share/opto/vectorIntrinsics.cpp ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java + test/hotspot/jtreg/compiler/vectorapi/VectorMaskLaneIsSetTest.java ! test/micro/org/openjdk/bench/jdk/incubator/vector/VectorExtractBenchmark.java Changeset: af9b9050 Branch: hermetic-java-runtime Author: Kim Barrett Date: 2025-09-10 03:30:16 +0000 URL: https://git.openjdk.org/leyden/commit/af9b9050ec51d0c43690fc42658741bd865b0310 8366057: HotSpot Style Guide should permit trailing return types Reviewed-by: dholmes, stefank, kvn, adinn, jsjolen ! doc/hotspot-style.html ! doc/hotspot-style.md Changeset: 8ab8d02e Branch: hermetic-java-runtime Author: David Holmes Date: 2025-09-10 05:45:31 +0000 URL: https://git.openjdk.org/leyden/commit/8ab8d02e40e987a5eb5e8036ff4f12146ac2b16a 8366938: Test runtime/handshake/HandshakeTimeoutTest.java crashed Reviewed-by: kbarrett ! test/hotspot/jtreg/runtime/handshake/HandshakeTimeoutTest.java Changeset: 2705e880 Branch: hermetic-java-runtime Author: Disha Committer: Manukumar V S Date: 2025-09-10 06:16:12 +0000 URL: https://git.openjdk.org/leyden/commit/2705e880b64825044e67487f01263121780d8f7a 8366764: Deproblemlist java/awt/ScrollPane/ScrollPositionTest.java Reviewed-by: azvegint ! test/jdk/ProblemList.txt Changeset: b7b01d6f Branch: hermetic-java-runtime Author: Daniel Jeli?ski Date: 2025-09-10 06:16:39 +0000 URL: https://git.openjdk.org/leyden/commit/b7b01d6f564ae34e913ae51bd2f8243a32807136 8366984: Remove delay slot support Reviewed-by: dlong, epeter ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/share/adlc/adlparse.cpp ! src/hotspot/share/adlc/formsopt.cpp ! src/hotspot/share/adlc/formsopt.hpp ! src/hotspot/share/adlc/output_c.cpp ! src/hotspot/share/adlc/output_h.cpp ! src/hotspot/share/c1/c1_LIR.cpp ! src/hotspot/share/c1/c1_LIR.hpp ! src/hotspot/share/c1/c1_LIRAssembler.cpp ! src/hotspot/share/c1/c1_LIRAssembler.hpp ! src/hotspot/share/code/relocInfo.hpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp Changeset: 9e3fa321 Branch: hermetic-java-runtime Author: Kazuhisa Takakuri Committer: David Holmes Date: 2025-09-10 06:37:17 +0000 URL: https://git.openjdk.org/leyden/commit/9e3fa3216fd4ebd73da6e003a7b767cf001a1169 8349288: runtime/os/windows/TestAvailableProcessors.java fails on localized Windows platform Reviewed-by: dholmes, alanb ! test/hotspot/jtreg/runtime/os/windows/TestAvailableProcessors.java Changeset: f3de3862 Branch: hermetic-java-runtime Author: David Holmes Date: 2025-09-10 08:46:07 +0000 URL: https://git.openjdk.org/leyden/commit/f3de386263e16e33c2812706cf41410da2cd58c6 8367309: Test runtime/os/windows/TestAvailableProcessors.java fails to compile after mis-merge Reviewed-by: shade, alanb ! test/hotspot/jtreg/runtime/os/windows/TestAvailableProcessors.java Changeset: 1d3364b0 Branch: hermetic-java-runtime Author: Daniel Fuchs Date: 2025-09-10 09:45:05 +0000 URL: https://git.openjdk.org/leyden/commit/1d3364b00725f9d2afa8274e2244357a109be545 8365239: Spec Clarification - InterfaceAddress:getBroadcast() returning null for loop back address Reviewed-by: msheppar, djelinski, jpai ! src/java.base/share/classes/java/net/InterfaceAddress.java Changeset: 5c9f60dc Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-09-10 09:57:44 +0000 URL: https://git.openjdk.org/leyden/commit/5c9f60dc5a6e64be55819469bbf10948803d0fd5 8367259: Clean up make/scripts and bin directory Reviewed-by: erikj + bin/generate-symbol-data.sh = bin/lic_check.sh = bin/normalizer.pl - bin/unshuffle_list.txt - bin/unshuffle_patch.sh = bin/update_copyright_year.sh = bin/update_pch.sh ! make/autoconf/compare.sh.template = make/scripts/compare-logger.sh - make/scripts/generate-symbol-data.sh - make/scripts/hide_important_warnings_from_javac.sh Changeset: 33244c82 Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-09-10 10:00:15 +0000 URL: https://git.openjdk.org/leyden/commit/33244c82445994131a9168451275216916ce635c 8344030: Improved handling of TOOLCHAIN_PATH Reviewed-by: erikj ! make/autoconf/basic.m4 ! make/autoconf/basic_tools.m4 ! make/autoconf/build-performance.m4 ! make/autoconf/flags-ldflags.m4 ! make/autoconf/toolchain.m4 ! make/autoconf/util_paths.m4 Changeset: edae355e Branch: hermetic-java-runtime Author: Magnus Ihse Bursie Date: 2025-09-10 10:27:38 +0000 URL: https://git.openjdk.org/leyden/commit/edae355e95f23294eda092dbedcb7f6cf165b0f8 8246325: Add DRYRUN facility to SetupExecute Reviewed-by: erikj ! make/Bundles.gmk ! make/autoconf/spec.gmk.template ! make/common/Execute.gmk ! test/make/TestExecute.gmk Changeset: 4d4e51c4 Branch: hermetic-java-runtime Author: David Beaumont Committer: Daniel Fuchs Date: 2025-09-10 11:49:02 +0000 URL: https://git.openjdk.org/leyden/commit/4d4e51c41fed79427fb621fd9fcc8e5e23bfb287 8365483: Test sun/rmi/runtime/Log/6409194/NoConsoleOutput.java sometimes fails Reviewed-by: dfuchs, jpai ! src/java.logging/share/classes/java/util/logging/StreamHandler.java + test/jdk/java/util/logging/StreamHandlerRacyCloseTest.java Changeset: 703d930e Branch: hermetic-java-runtime Author: Stefan Karlsson Date: 2025-09-10 11:55:31 +0000 URL: https://git.openjdk.org/leyden/commit/703d930e4d52a6f9741cf9affee8caade550e67b 8366980: TestTransparentHugePagesHeap.java fails when run with -UseCompressedOops Reviewed-by: aboldtch, tschatzl ! test/hotspot/jtreg/gc/TestTransparentHugePagesHeap.java Changeset: 46ae1ee8 Branch: hermetic-java-runtime Author: Evgeny Astigeevich Date: 2025-09-10 12:33:06 +0000 URL: https://git.openjdk.org/leyden/commit/46ae1ee87152742082e6047d0556944d7ae4567d 8277444: Data race between JvmtiClassFileReconstituter::copy_bytecodes and class linking Reviewed-by: dholmes, amenkov, coleenp ! src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp ! src/hotspot/share/prims/jvmtiEnv.cpp + test/jdk/java/lang/instrument/RetransformBigClassTest.java Changeset: 385c1329 Branch: hermetic-java-runtime Author: Albert Mingkun Yang Date: 2025-09-10 12:49:38 +0000 URL: https://git.openjdk.org/leyden/commit/385c13298932f1de16e6161652be35d966d822ec 8367240: Parallel: Refactor PSScavengeCLDClosure Reviewed-by: stefank ! src/hotspot/share/gc/parallel/psClosure.inline.hpp Changeset: c968a672 Branch: hermetic-java-runtime Author: Casper Norrbin Date: 2025-09-10 13:45:06 +0000 URL: https://git.openjdk.org/leyden/commit/c968a672c034fe533ea5f4ac5efe37ffb76c93e2 8362282: runtime/logging/StressAsyncUL.java failed with exitValue = 134 Reviewed-by: jsjolen, dholmes ! src/hotspot/share/logging/logAsyncWriter.cpp Changeset: 5cd7721a Branch: hermetic-java-runtime Author: Kerem Kat Committer: Kevin Walls Date: 2025-09-10 14:36:11 +0000 URL: https://git.openjdk.org/leyden/commit/5cd7721ad448cc4bdac37b0456252335f6b9d9f5 8366154: Validate thread type requirements in debug commands Reviewed-by: dholmes, simonis, kevinw ! src/hotspot/share/utilities/debug.cpp Changeset: dbc7436a Branch: hermetic-java-runtime Author: Jiangli Zhou Date: 2025-09-10 09:07:34 +0000 URL: https://git.openjdk.org/leyden/commit/dbc7436a270eb22d37b162700aa6c3561b27869b Merge branch 'master' into hermetic-java-runtime ! make/CreateJmods.gmk ! make/StaticLibs.gmk ! make/autoconf/spec.gmk.template ! make/hotspot/lib/CompileJvm.gmk ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/java.base/share/classes/jdk/internal/jrtfs/SystemImage.java ! make/CreateJmods.gmk ! make/StaticLibs.gmk ! make/autoconf/spec.gmk.template ! make/hotspot/lib/CompileJvm.gmk ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/java.base/share/classes/jdk/internal/jrtfs/SystemImage.java From ioi.lam at oracle.com Wed Sep 10 19:13:10 2025 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Wed, 10 Sep 2025 12:13:10 -0700 Subject: Removing -XX:+AOTClassLinking support for dynamic CDS archive Message-ID: <494d7075-bb95-4f4b-8fd0-b76d7169a282@oracle.com> I've filed https://bugs.openjdk.org/browse/JDK-8367366 to remove -XX:+AOTClassLinking support for dynamic CDS archive. Any objections? Background: we needed this for the old (and removed) "5 step workflow" in early Leyden development. And it somehow leaked into the mainline when we upstreamed JEP 483. However, most (if not all) current and future Leyden optimizations will depend on BOTH?-XX:+AOTClassLinking and archive heap objects. Because we don't support archived heap objects in the dynamic archive, so it won't benefit from any of those optimization. My main concerns are (1) code bloat, and (2) the chance of introducing bugs when we add new optimizations without sufficient testing for the dynamic archive. I think I actually have one such bug in `fixup_module_field_list()` in https://github.com/openjdk/jdk/pull/26375 (preload classes from AOT cache). Thanks - Ioi From asmehra at redhat.com Wed Sep 10 21:00:34 2025 From: asmehra at redhat.com (Ashutosh Mehra) Date: Wed, 10 Sep 2025 17:00:34 -0400 Subject: Removing -XX:+AOTClassLinking support for dynamic CDS archive In-Reply-To: <494d7075-bb95-4f4b-8fd0-b76d7169a282@oracle.com> References: <494d7075-bb95-4f4b-8fd0-b76d7169a282@oracle.com> Message-ID: +1 for removing AOTClassLinking support for dynamic archives. One less scenario to think of. Since we are adopting and advocating AOTCache based workflow, perhaps we should remove support for AOTClassLinking with any of the older CDS based workflows - static or dynamic archive. I am not sure if it would have any impact on the code base, but it would keep the two workflows completely separate, making it easier to reason about the future changes. Thanks, - Ashutosh Mehra On Wed, Sep 10, 2025 at 3:14?PM wrote: > I've filed https://bugs.openjdk.org/browse/JDK-8367366 to remove > -XX:+AOTClassLinking support for dynamic CDS archive. Any objections? > > Background: we needed this for the old (and removed) "5 step workflow" > in early Leyden development. And it somehow leaked into the mainline > when we upstreamed JEP 483. > > However, most (if not all) current and future Leyden optimizations will > depend on BOTH -XX:+AOTClassLinking and archive heap objects. Because we > don't support archived heap objects in the dynamic archive, so it won't > benefit from any of those optimization. > > My main concerns are (1) code bloat, and (2) the chance of introducing > bugs when we add new optimizations without sufficient testing for the > dynamic archive. I think I actually have one such bug in > `fixup_module_field_list()` in https://github.com/openjdk/jdk/pull/26375 > (preload classes from AOT cache). > > Thanks > > - Ioi > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ioi.lam at oracle.com Thu Sep 11 21:47:13 2025 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Thu, 11 Sep 2025 14:47:13 -0700 Subject: [External] : Re: Removing -XX:+AOTClassLinking support for dynamic CDS archive In-Reply-To: References: <494d7075-bb95-4f4b-8fd0-b76d7169a282@oracle.com> Message-ID: <983234e6-0d02-4af2-9d3d-b20d719a011e@oracle.com> Yes, I think we should also remove?AOTClassLinking?support for the static CDS archive. It's less pressing of an issue, as the static archive is very similar to the AOT cache. Let's first remove from dynamic archive, and see if we get any pushback :-) Thanks - Ioi On 9/10/25 2:00 PM, Ashutosh Mehra wrote: > +1 for removing AOTClassLinking support for dynamic archives. One less > scenario to think of. > Since we are adopting and advocating AOTCache based workflow, perhaps > we should remove support for AOTClassLinking with any of the older CDS > based workflows - static or dynamic archive. > I am not sure if it would have any impact on the code base, but it > would keep the two workflows completely separate, making it easier to > reason about the future changes. > > Thanks, > - Ashutosh Mehra > > > On Wed, Sep 10, 2025 at 3:14?PM wrote: > > I've filed https://bugs.openjdk.org/browse/JDK-8367366 to remove > -XX:+AOTClassLinking support for dynamic CDS archive. Any objections? > > Background: we needed this for the old (and removed) "5 step > workflow" > in early Leyden development. And it somehow leaked into the mainline > when we upstreamed JEP 483. > > However, most (if not all) current and future Leyden optimizations > will > depend on BOTH?-XX:+AOTClassLinking and archive heap objects. > Because we > don't support archived heap objects in the dynamic archive, so it > won't > benefit from any of those optimization. > > My main concerns are (1) code bloat, and (2) the chance of > introducing > bugs when we add new optimizations without sufficient testing for the > dynamic archive. I think I actually have one such bug in > `fixup_module_field_list()` in > https://github.com/openjdk/jdk/pull/26375 > > > (preload classes from AOT cache). > > Thanks > > - Ioi > -------------- next part -------------- An HTML attachment was scrubbed... URL: From iklam at openjdk.org Fri Sep 12 03:23:20 2025 From: iklam at openjdk.org (Ioi Lam) Date: Fri, 12 Sep 2025 03:23:20 GMT Subject: git: openjdk/leyden: created branch premain-tmp based on the branch premain containing 1 unique commit Message-ID: The following commits are unique to the premain-tmp branch: ======================================================== 67486f98: Merged updates from EA2 release notes (https://github.com/openjdk/leyden/blob/leyden-ea2-release-notes/README.md) From iklam at openjdk.org Fri Sep 12 03:23:17 2025 From: iklam at openjdk.org (Ioi Lam) Date: Fri, 12 Sep 2025 03:23:17 GMT Subject: git: openjdk/leyden: premain: Merged updates from EA2 release notes (https://github.com/openjdk/leyden/blob/leyden-ea2-release-notes/README.md) Message-ID: <39aec922-1c5a-47c4-a184-bca1143cf440@openjdk.org> Changeset: bdb98387 Branch: premain Author: Ioi Lam Date: 2025-09-11 20:20:09 +0000 URL: https://git.openjdk.org/leyden/commit/bdb983878240906aeecd59a9d95e8978ae8b82a5 Merged updates from EA2 release notes (https://github.com/openjdk/leyden/blob/leyden-ea2-release-notes/README.md) ! README.md From iklam at openjdk.org Fri Sep 12 18:43:53 2025 From: iklam at openjdk.org (Ioi Lam) Date: Fri, 12 Sep 2025 18:43:53 GMT Subject: git: openjdk/leyden: premain: 2 new changesets Message-ID: <21d39757-04e5-43ea-9093-cfdf09a77a0c@openjdk.org> Changeset: 8df3504f Branch: premain Author: Ioi Lam Date: 2025-09-12 11:21:07 +0000 URL: https://git.openjdk.org/leyden/commit/8df3504f55cabe9ff8a1d239f469b18d00ff802b Updated benchmarks; added test/hotspot/jtreg/premain/javac_bench ! README.md + test/hotspot/jtreg/premain/javac_bench/Makefile ! test/hotspot/jtreg/premain/lib/Bench.gmk ! test/hotspot/jtreg/premain/lib/DemoSupport.gmk ! test/hotspot/jtreg/premain/lib/GithubMDChart.java ! test/hotspot/jtreg/premain/spring-petclinic/Makefile - test/hotspot/jtreg/premain/spring-petclinic/bench.sh ! test/setup_aot/JavacBenchApp.java Changeset: 0b771700 Branch: premain Author: Ioi Lam Date: 2025-09-12 11:40:52 +0000 URL: https://git.openjdk.org/leyden/commit/0b77170064f22851da2971ec5a74446adad69111 Updated benchmark scores ! README.md + test/hotspot/jtreg/premain/bench_data/bench.20250912.txt From kvn at openjdk.org Tue Sep 16 00:11:55 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Tue, 16 Sep 2025 00:11:55 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately [v2] In-Reply-To: References: Message-ID: On Fri, 5 Sep 2025 14:59:05 GMT, Ashutosh Mehra wrote: >> Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. >> Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. >> >> In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. >> >> ACE=AOTCodeEntry >> >> | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: >> >> >> | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> and then the whole memory block is copied into the final buffer. >> This means the size of the temporary buffer needs to be a bit more than required. >> >> Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. >> >> This PR is an attempt to fix above issues. It does final assembly in following steps: >> 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer >> 2. Now the payload for the preload entries is marked >> 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer >> 4. Then add the payload for these entries >> 5. Finally add the search table >> >> >> | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | >> >> >> This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. >> >> I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. >> >> **Performance impact:** >> >> Startup numbers for spring-boot-getting-started: >> >> Run,Old CDS + AOT,New CDS + AOT >> 1,263,275 >> 2,265,278 >> 3,266,272 >> 4,277,271 >> 5,265,265 >> 6,264,261 >> 7,266,263 >> 8,258,266 >> 9,275,268 >> 10,277,263 >> Geomean,267.53,268.15 >> St... > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Remove UseNewCode and older version of functions > > Signed-off-by: Ashutosh Mehra I am back. Give me some time to review and test it. ------------- PR Review: https://git.openjdk.org/leyden/pull/95#pullrequestreview-3226658169 From iklam at openjdk.org Tue Sep 16 03:09:22 2025 From: iklam at openjdk.org (Ioi Lam) Date: Tue, 16 Sep 2025 03:09:22 GMT Subject: git: openjdk/leyden: premain: Fixed benchmark improvement calculation Message-ID: Changeset: 46e03d00 Branch: premain Author: Ioi Lam Date: 2025-09-15 20:07:40 +0000 URL: https://git.openjdk.org/leyden/commit/46e03d000efd1b2784ad4dcd4c83310ace498ec0 Fixed benchmark improvement calculation ! README.md ! test/hotspot/jtreg/premain/bench_data/bench.20250912.txt From iklam at openjdk.org Tue Sep 16 20:36:23 2025 From: iklam at openjdk.org (Ioi Lam) Date: Tue, 16 Sep 2025 20:36:23 GMT Subject: git: openjdk/leyden: premain: Removed dead code from JDK-8362657 that was no longer needed after JDK-8362566 Message-ID: Changeset: 834098cf Branch: premain Author: Ioi Lam Date: 2025-09-16 13:33:42 +0000 URL: https://git.openjdk.org/leyden/commit/834098cfca6b0b8bb29c4a901939ec12abdfcf9f Removed dead code from JDK-8362657 that was no longer needed after JDK-8362566 ! src/hotspot/share/cds/archiveHeapWriter.cpp ! src/hotspot/share/cds/archiveHeapWriter.hpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp From shade at openjdk.org Wed Sep 17 10:37:37 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 17 Sep 2025 10:37:37 GMT Subject: RFR: 8366681: [leyden] Precompile more C1 code [v4] In-Reply-To: References: Message-ID: > Looking at how code goes through AOT+JIT pipeline, I believe we have several issues in the way we include the methods for precompilation. > > 1. AP4 code gets replaced by more efficient A4 code, which can then deopt. Once it does, we go back to the fully normal JIT pipeline, with C1 compiling, C2 compiling, etc. Training run currently does A2 versions only when there is a tier2/3 training data present. We can pessimistically assume that A4/AP4 method should have A2 method generated for the sake of quicker deopt. > > 2. I suspect a similar thing, but rarer, happens with A4 -> ... -> T1 transition when compiler queues are overloaded. We can generate A1 method for this case. > > 3. When training is done with default configuration, but at runtime we enable only C1, we summarily miss almost *all* AOT methods, because A1 methods are rarely generated with a normal tiered policy. Generating A1 methods always would be convenient for hybrid C2 AOT + C1 JIT modes as well. > > Overall, I think generating more C1 methods even when C2 methods are present in training is beneficial, as we prepare the ground for whatever corner case happens at runtime. Benchmarks show this improves performance model quite a bit. > > Since we now look at methods at all different tiers when deciding to precompile, compile IDs are not working all that well. I have rewritten that to use counters and method sizes. This seems to work well in practice. > > Additional testing: > - [x] `javac` performance tests (see comments) > - [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 four additional commits since the last revision: - Merge branch 'premain' into JDK-8366681-precompile-more-c1 - Merge branch 'premain' into JDK-8366681-precompile-more-c1 - Merge branch 'premain' into JDK-8366681-precompile-more-c1 - Fix ------------- Changes: - all: https://git.openjdk.org/leyden/pull/93/files - new: https://git.openjdk.org/leyden/pull/93/files/ee1e5672..f17e5a73 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=93&range=03 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=93&range=02-03 Stats: 10794 lines in 859 files changed: 6082 ins; 1947 del; 2765 mod Patch: https://git.openjdk.org/leyden/pull/93.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/93/head:pull/93 PR: https://git.openjdk.org/leyden/pull/93 From shade at openjdk.org Wed Sep 17 10:53:28 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 17 Sep 2025 10:53:28 GMT Subject: RFR: 8366681: [leyden] Precompile more C1 code [v3] In-Reply-To: References: Message-ID: On Thu, 4 Sep 2025 19:20:41 GMT, Vladimir Ivanov wrote: > Interesting idea. It is very profitable on all workloads I tried, so I would like to get this in. > * There are already AP4 versions present in the AOT cache. Why can't they be used instead of A2 until T3 arrives? Maybe? I suspect that switching to A2 gives us a natural way to hook up to "normal" tiered policy: it has counters inside, and will notify tiered policy when it is time to progress it to T3 and T4. I am not sure how would switching to AP4 work to trigger T3 and T4 compiles in this case. Plus, what if AP4 still, despite our best efforts, traps? Would it construct the loop like AP4 --trap--> A2 --upgrade--> A4 --trap--> AP4 --trap--> ...? That is also not clear to me. All I am saying that storing A1/A2 code keeps the model simple enough to reason, while having substantial performance benefits. > * There were some rare discrepancies in compilation behavior between training and production runs which lead to AOT-cache mismatches and trigger unnecessary JIT-compilations. While proposed change alleviates the symptoms, It's beneficial to fix the root cause. That is true. However, at this point, I think we should try and make the best of the training done, even if that training not 100% accurate. For that, IMO, it is better to have a faster recovery path, e.g. by carrying A1 and A2 code. ------------- PR Comment: https://git.openjdk.org/leyden/pull/93#issuecomment-3302426491 From vlivanov at openjdk.org Wed Sep 17 23:06:21 2025 From: vlivanov at openjdk.org (Vladimir Ivanov) Date: Wed, 17 Sep 2025 23:06:21 GMT Subject: RFR: 8366681: [leyden] Precompile more C1 code [v3] In-Reply-To: References: Message-ID: On Wed, 17 Sep 2025 10:50:47 GMT, Aleksey Shipilev wrote: > It is very profitable on all workloads I tried, so I would like to get this in. It's a good justification for a stop-the-gap fix. But from a design perspective it doesn't look that attractive. Basically, you introduce 3rd version of code for hot code which is unconditionally generated, but it covers a rare case (at least, it's intended to be rare) when A4 code is invalidated during execution. So, you trade footprint for startup. The improvements you observe with the patch may be a signal there are inefficiencies in our current implementation. And fixing those will improve startup without sacrificing footprint. Some more thoughts: * C1 and C2 compilations aren't equivalent, especially when it comes to inlining decisions; so, when the same method is compiled with C1, it won't necessarily cover the same amount of application code. * Why cache A2 and not A3? Invalidation of A4 code signals that training data is not representative and, most likely, reprofiling is needed anyway. Or maybe just a T4 recompilation is enough? * AP4 is intended to eventually become a baseline version which can be used in a wide range of circumstances; switching back to AP4 version while waiting for T3/T4 recompilation task to finish fits that goal well. > Plus, what if AP4 still, despite our best efforts, traps? Is it enough to justify one more cached version for every hot method? And, theoretically, C1-generated code can trap as well. Overall, proposed patch looks good as a stop-the-gap measure, but IMO longer term it doesn't fit current design well. ------------- PR Comment: https://git.openjdk.org/leyden/pull/93#issuecomment-3304797955 From iveresov at openjdk.org Thu Sep 18 18:45:20 2025 From: iveresov at openjdk.org (Igor Veresov) Date: Thu, 18 Sep 2025 18:45:20 GMT Subject: RFR: 8366681: [leyden] Precompile more C1 code [v4] In-Reply-To: References: Message-ID: On Wed, 17 Sep 2025 10:37:37 GMT, Aleksey Shipilev wrote: >> Looking at how code goes through AOT+JIT pipeline, I believe we have several issues in the way we include the methods for precompilation. >> >> 1. AP4 code gets replaced by more efficient A4 code, which can then deopt. Once it does, we go back to the fully normal JIT pipeline, with C1 compiling, C2 compiling, etc. Training run currently does A2 versions only when there is a tier2/3 training data present. We can pessimistically assume that A4/AP4 method should have A2 method generated for the sake of quicker deopt. >> >> 2. I suspect a similar thing, but rarer, happens with A4 -> ... -> T1 transition when compiler queues are overloaded. We can generate A1 method for this case. >> >> 3. When training is done with default configuration, but at runtime we enable only C1, we summarily miss almost *all* AOT methods, because A1 methods are rarely generated with a normal tiered policy. Generating A1 methods always would be convenient for hybrid C2 AOT + C1 JIT modes as well. >> >> Overall, I think generating more C1 methods even when C2 methods are present in training is beneficial, as we prepare the ground for whatever corner case happens at runtime. Benchmarks show this improves performance model quite a bit. >> >> Since we now look at methods at all different tiers when deciding to precompile, compile IDs are not working all that well. I have rewritten that to use counters and method sizes. This seems to work well in practice. >> >> Additional testing: >> - [x] `javac` performance tests (see comments) >> - [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 four additional commits since the last revision: > > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Fix Try setting `SkipTier2IfPossible=true`. I think we mismerged the mainline at some point. It probably should be `true` if we're running with AOT code. ------------- PR Comment: https://git.openjdk.org/leyden/pull/93#issuecomment-3309091798 From ioi.lam at oracle.com Thu Sep 18 20:37:18 2025 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Thu, 18 Sep 2025 13:37:18 -0700 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline Message-ID: I got a crash when building the JDK after merging the latest premain with the following changeset in the mainline commit fdc11a1569248c9b671b66d547b4616aeb953ecf Author: Sergey Bylokhov Date:? ?Wed Sep 10 11:41:42 2025 ? ? 8367131: Test com/sun/jdi/ThreadMemoryLeakTest.java fails on 32 bits I had to do "make jdk-image LOG=debug" to find out the exact command that crashed and ran it by hand to get hs_err, which shows: V? [libjvm.dylib+0x2c49c8] BarrierSetNMethod::nmethod_stub_entry_barrier(unsigned char**)+0x140 v? ~StubRoutines::Stub Generator method_entry_barrier_stub 0x0000000131de4938 siginfo: si_signo: 10 (SIGBUS), si_code: 1 (BUS_ADRALN), si_addr: 0x000000012a8c7108 Could anyone familiar with the code help trouble shooting this? (You don't want to merge beyond the above changeset as you'd run into some CDS conflicts, which I plan to address above this crash is fixed). This happens on my laptop (M3 and Sequoia 15.6.1) and our CI as well. For some reason, the crash didn't happen with GitHub action, so it may be specific to macos or CPU versions. Thanks - Ioi From dean.long at oracle.com Thu Sep 18 21:04:23 2025 From: dean.long at oracle.com (Dean Long) Date: Thu, 18 Sep 2025 14:04:23 -0700 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: References: Message-ID: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> 8367131 is a test-only change.? What is the code doing at the crash site?? It looks like the crash is because of an unaligned memory address, but the reported address?0x000000012a8c7108 looks aligned unless the code is doing a 16-byte memory access.? It could possibly be related to my recent change 8361376. dl On 9/18/25 1:37 PM, ioi.lam at oracle.com wrote: > I got a crash when building the JDK after merging the latest premain > with the following changeset in the mainline > > > commit fdc11a1569248c9b671b66d547b4616aeb953ecf > Author: Sergey Bylokhov > Date:? ?Wed Sep 10 11:41:42 2025 > > ? ? 8367131: Test com/sun/jdi/ThreadMemoryLeakTest.java fails on 32 bits > > I had to do "make jdk-image LOG=debug" to find out the exact command > that crashed and ran it by hand to get hs_err, which shows: > > > V? [libjvm.dylib+0x2c49c8] > BarrierSetNMethod::nmethod_stub_entry_barrier(unsigned char**)+0x140 > v? ~StubRoutines::Stub Generator method_entry_barrier_stub > 0x0000000131de4938 > siginfo: si_signo: 10 (SIGBUS), si_code: 1 (BUS_ADRALN), si_addr: > 0x000000012a8c7108 > > > Could anyone familiar with the code help trouble shooting this? (You > don't want to merge beyond the above changeset as you'd run into some > CDS conflicts, which I plan to address above this crash is fixed). > > This happens on my laptop (M3 and Sequoia 15.6.1) and our CI as well. > For some reason, the crash didn't happen with GitHub action, so it may > be specific to macos or CPU versions. > > Thanks > > - Ioi > > > From vladimir.kozlov at oracle.com Thu Sep 18 21:55:14 2025 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 18 Sep 2025 14:55:14 -0700 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> Message-ID: <19c0818b-0e7c-48f6-a622-4c051ed60763@oracle.com> Briefly looking through 8361376 aarch64 changes which uses relocInfo::entry_guard_type to set _guard_addr. We don't update it when loading AOT code. May be this is the issue. Vladimir K On 9/18/25 2:04 PM, Dean Long wrote: > 8367131 is a test-only change.? What is the code doing at the crash > site?? It looks like the crash is because of an unaligned memory > address, but the reported address?0x000000012a8c7108 looks aligned > unless the code is doing a 16-byte memory access.? It could possibly be > related to my recent change 8361376. > > dl > > On 9/18/25 1:37 PM, ioi.lam at oracle.com wrote: >> I got a crash when building the JDK after merging the latest premain >> with the following changeset in the mainline >> >> >> commit fdc11a1569248c9b671b66d547b4616aeb953ecf >> Author: Sergey Bylokhov >> Date:? ?Wed Sep 10 11:41:42 2025 >> >> ? ? 8367131: Test com/sun/jdi/ThreadMemoryLeakTest.java fails on 32 bits >> >> I had to do "make jdk-image LOG=debug" to find out the exact command >> that crashed and ran it by hand to get hs_err, which shows: >> >> >> V? [libjvm.dylib+0x2c49c8] >> BarrierSetNMethod::nmethod_stub_entry_barrier(unsigned char**)+0x140 >> v? ~StubRoutines::Stub Generator method_entry_barrier_stub >> 0x0000000131de4938 >> siginfo: si_signo: 10 (SIGBUS), si_code: 1 (BUS_ADRALN), si_addr: >> 0x000000012a8c7108 >> >> >> Could anyone familiar with the code help trouble shooting this? (You >> don't want to merge beyond the above changeset as you'd run into some >> CDS conflicts, which I plan to address above this crash is fixed). >> >> This happens on my laptop (M3 and Sequoia 15.6.1) and our CI as well. >> For some reason, the crash didn't happen with GitHub action, so it may >> be specific to macos or CPU versions. >> >> Thanks >> >> - Ioi >> >> >> From ioi.lam at oracle.com Thu Sep 18 21:59:02 2025 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Thu, 18 Sep 2025 14:59:02 -0700 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> Message-ID: Clarification: the previous merge from mainline to leyden/premain was up to this changeset commit 85588591a7069ed5257c8ecd788c70459aeb544e Author: Aleksei Semeniuk Date:? ?Thu Sep 4 10:31:24 2025 ? ? 8359443: Make jcmd command available in the headless JDK RPM So any change in the mainline between the above and?fdc11a1569248c9b671b66d547b4616aeb953ecf might have caused the issue. Thanks - Ioi On 9/18/25 2:04 PM, Dean Long wrote: > 8367131 is a test-only change.? What is the code doing at the crash > site? It looks like the crash is because of an unaligned memory > address, but the reported address?0x000000012a8c7108 looks aligned > unless the code is doing a 16-byte memory access.? It could possibly > be related to my recent change 8361376. > > dl > > On 9/18/25 1:37 PM, ioi.lam at oracle.com wrote: >> I got a crash when building the JDK after merging the latest premain >> with the following changeset in the mainline >> >> >> commit fdc11a1569248c9b671b66d547b4616aeb953ecf >> Author: Sergey Bylokhov >> Date:? ?Wed Sep 10 11:41:42 2025 >> >> ? ? 8367131: Test com/sun/jdi/ThreadMemoryLeakTest.java fails on 32 bits >> >> I had to do "make jdk-image LOG=debug" to find out the exact command >> that crashed and ran it by hand to get hs_err, which shows: >> >> >> V? [libjvm.dylib+0x2c49c8] >> BarrierSetNMethod::nmethod_stub_entry_barrier(unsigned char**)+0x140 >> v? ~StubRoutines::Stub Generator method_entry_barrier_stub >> 0x0000000131de4938 >> siginfo: si_signo: 10 (SIGBUS), si_code: 1 (BUS_ADRALN), si_addr: >> 0x000000012a8c7108 >> >> >> Could anyone familiar with the code help trouble shooting this? (You >> don't want to merge beyond the above changeset as you'd run into some >> CDS conflicts, which I plan to address above this crash is fixed). >> >> This happens on my laptop (M3 and Sequoia 15.6.1) and our CI as well. >> For some reason, the crash didn't happen with GitHub action, so it >> may be specific to macos or CPU versions. >> >> Thanks >> >> - Ioi >> >> >> From dean.long at oracle.com Thu Sep 18 22:28:18 2025 From: dean.long at oracle.com (Dean Long) Date: Thu, 18 Sep 2025 15:28:18 -0700 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> Message-ID: <12ff5eaf-550d-4cfa-9aa6-b3b5aa91e30a@oracle.com> If it only happens on macos aarch64 then it could be related to os::current_thread_enable_wx() state. dl From kvn at openjdk.org Fri Sep 19 00:52:26 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 19 Sep 2025 00:52:26 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately [v2] In-Reply-To: References: Message-ID: <36J7vmEaZLND5gso4Dek-3v-_TnC5aY3bis40Q8Z1Qw=.7d16f3a1-820d-4cbd-a079-2fabdd1da1d5@github.com> On Fri, 5 Sep 2025 14:59:05 GMT, Ashutosh Mehra wrote: >> Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. >> Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. >> >> In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. >> >> ACE=AOTCodeEntry >> >> | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: >> >> >> | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> and then the whole memory block is copied into the final buffer. >> This means the size of the temporary buffer needs to be a bit more than required. >> >> Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. >> >> This PR is an attempt to fix above issues. It does final assembly in following steps: >> 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer >> 2. Now the payload for the preload entries is marked >> 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer >> 4. Then add the payload for these entries >> 5. Finally add the search table >> >> >> | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | >> >> >> This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. >> >> I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. >> >> **Performance impact:** >> >> Startup numbers for spring-boot-getting-started: >> >> Run,Old CDS + AOT,New CDS + AOT >> 1,263,275 >> 2,265,278 >> 3,266,272 >> 4,277,271 >> 5,265,265 >> 6,264,261 >> 7,266,263 >> 8,258,266 >> 9,275,268 >> 10,277,263 >> Geomean,267.53,268.15 >> St... > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Remove UseNewCode and older version of functions > > Signed-off-by: Ashutosh Mehra Few comments. In general it is good. src/hotspot/share/code/aotCodeCache.cpp line 1195: > 1193: // Skip not entrant preload code: > 1194: // we can't pre-load code which may have failing dependencies. > 1195: log_info(aot, codecache, exit)("Not entrant new entry comp_id: %d, comp_level: %d, hash: " UINT32_FORMAT_X_0 "%s", Update message: "Skip not entrant preload code comp_id: ..." src/hotspot/share/code/aotCodeCache.cpp line 1211: > 1209: uint size = align_up(entry->size(), DATA_ALIGNMENT); > 1210: if (size > max_size) { > 1211: max_size = size; May be use separate `preload_max_size` src/hotspot/share/code/aotCodeCache.hpp line 407: > 405: - _C2_blobs_count > 406: - _adapters_count; > 407: if (UseNewCode) count += _preload_entries_count; We should not use experimental `UseNewCode` in final PR ------------- PR Review: https://git.openjdk.org/leyden/pull/95#pullrequestreview-3242371114 PR Review Comment: https://git.openjdk.org/leyden/pull/95#discussion_r2361423774 PR Review Comment: https://git.openjdk.org/leyden/pull/95#discussion_r2361426881 PR Review Comment: https://git.openjdk.org/leyden/pull/95#discussion_r2361402486 From mariasde at redhat.com Fri Sep 19 08:14:16 2025 From: mariasde at redhat.com (=?UTF-8?Q?Mar=C3=ADa_Arias_de_Reyna_Dominguez?=) Date: Fri, 19 Sep 2025 10:14:16 +0200 Subject: Parsing logs (for an AOT Cache analyzer tool) Message-ID: Hi! As I mentioned yesterday, I am working on a tool (interactive console) to analyze what is inside the AOT cache, why and when the elements were added (or not), and if there's anything that can be done to improve it. It can be found here: https://github.com/Delawen/leyden-analyzer Warning: very much work in progress, I am changing the way the commands work almost everyday as I add more commands and more data and I don't like how it is shown :) But when analysing logs I found out there are several cases in which it is difficult to parse it automatically. I am using a consumer that goes line by line, and sometimes you need some context to know what is happening. A very clear example: [info][aot ] Allocating RW objects ... [info][aot ] done (218321 objects) [info][aot ] Allocating RO objects ... [info][aot ] done (432657 objects) I guess there are not many parallel things happening at this time on the JVM, but if any other log message gets in between, that would be chaotic. A human may get it, a machine will find it confusing. Also, there are some lines that can be parsed, but need "special treatment" like for example this line that has a comma inside the content of a comma-separated list of values: [info][aot ] Class CP entries = 127257, archived = 20941 ( 16,5%), reverted = 0 Then there are other inconsistencies that are not that problematic but fixing them could make parsing the log easier. For example, see the following lines, which have similar information but displayed on very different ways: [info][aot ] Reserved output buffer space at 0x00007f5702e00000 [1084227584 bytes] [info][aot] Reserved archive_space_rs [0x0000000057000000 - 0x000000005c000000] (83886080) bytes (includes protection zone) [info][aot] Reserved class_space_rs [0x000000005c000000 - 0x000000009c000000] (1073741824) bytes [info][aot] Mapped static region #0 at base 0x0000000057001000 top 0x0000000058fbe000 (ReadWrite) [info][aot ] Heap range = [0x00000000e0000000 - 0x0000000100000000] [info][aot ] Shared file region (rw) 0: 31818032 bytes, addr 0x0000000800001000 file offset 0x00001000 crc 0xc67c8575 In my opinion, it would make sense to have a common way of writing region addresses so the parser only needs to implement one way of parsing it. And this was a very obvious case, but I'm sure there are others out there that would benefit from some guidelines on how to output data. I intend to improve the log messages to make it easier to parse (while not breaking the human-readable side) following suggestions from https://cr.openjdk.org/~jrose/jvm/parsing-logs.html which I found very complete. Do we have a "good-practices guideline for OpenJDK developers" on how to write log messages? If not, do I start one? Where? Should I add new log messages instead of modifying the existing ones in case someone is already parsing them? As an intermediate step before "deprecating" the current messages. Some of the things I already have in mind: - Better "CSV-style" lists of data - Try to keep context in the same line (if you read a line alone, you should understand it) - Be more consistent in using "=" or ":" when specifying values (like "[info][aot] Core region alignment: 4096" versus "Selected AOTMode=record because AOTCacheOutput is specified") - Be more consistent in general with similar type of data and similar messages What do you think? Cheers! Mar?a Arias de Reyna Dom?nguez Senior Software Engineer She / Her / Hers -------------- next part -------------- An HTML attachment was scrubbed... URL: From aph-open at littlepinkcloud.com Fri Sep 19 08:54:53 2025 From: aph-open at littlepinkcloud.com (Andrew Haley) Date: Fri, 19 Sep 2025 09:54:53 +0100 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: <12ff5eaf-550d-4cfa-9aa6-b3b5aa91e30a@oracle.com> References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> <12ff5eaf-550d-4cfa-9aa6-b3b5aa91e30a@oracle.com> Message-ID: <5eb93354-e03a-4198-a356-8c0f674a0430@littlepinkcloud.com> On 18/09/2025 23:28, Dean Long wrote: > If it only happens on macos aarch64 then it could be related to > os::current_thread_enable_wx() state. Yes. That is almost certainly the case. -- Andrew Haley (he/him) Java Platform Lead Engineer https://keybase.io/andrewhaley EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671 From johan.sjolen at oracle.com Fri Sep 19 09:35:58 2025 From: johan.sjolen at oracle.com (Johan Sjolen) Date: Fri, 19 Sep 2025 09:35:58 +0000 Subject: Parsing logs (for an AOT Cache analyzer tool) In-Reply-To: References: Message-ID: Hi Maria, For grouped messages, please look at using NonInterleavingLogStream instead of single-line messages. With JDK-8288298 having been integrated, these in tandem should be enough to resolve any ambiguities such as the one in the first example. I believe that the result will be [info][aot ] Allocating RW objects ... [ ] done (218321 objects) [info][aot ] Allocating RO objects ... [ ] done (432657 objects) > Do we have a "good-practices guideline for OpenJDK developers" on how to write log messages? If not, do I start one? Where? As far as I know, we have no such guide. If we actually do not have one, then my vote would be to put one into the docs/ folder in the JDK repo. All the best, Johan Sj?l?n ________________________________________ From: leyden-dev on behalf of Mar?a Arias de Reyna Dominguez Sent: Friday, September 19, 2025 10:14 To: leyden-dev at openjdk.org Subject: Parsing logs (for an AOT Cache analyzer tool) Hi! As I mentioned yesterday, I am working on a tool (interactive console) to analyze what is inside the AOT cache, why and when the elements were added (or not), and if there's anything that can be done to improve it. It can be found here: https://github.com/Delawen/leyden-analyzer Warning: very much work in progress, I am changing the way the commands work almost everyday as I add more commands and more data and I don't like how it is shown :) But when analysing logs I found out there are several cases in which it is difficult to parse it automatically. I am using a consumer that goes line by line, and sometimes you need some context to know what is happening. A very clear example: [info][aot ] Allocating RW objects ... [info][aot ] done (218321 objects) [info][aot ] Allocating RO objects ... [info][aot ] done (432657 objects) I guess there are not many parallel things happening at this time on the JVM, but if any other log message gets in between, that would be chaotic. A human may get it, a machine will find it confusing. Also, there are some lines that can be parsed, but need "special treatment" like for example this line that has a comma inside the content of a comma-separated list of values: [info][aot ] Class CP entries = 127257, archived = 20941 ( 16,5%), reverted = 0 Then there are other inconsistencies that are not that problematic but fixing them could make parsing the log easier. For example, see the following lines, which have similar information but displayed on very different ways: [info][aot ] Reserved output buffer space at 0x00007f5702e00000 [1084227584 bytes] [info][aot] Reserved archive_space_rs [0x0000000057000000 - 0x000000005c000000] (83886080) bytes (includes protection zone) [info][aot] Reserved class_space_rs [0x000000005c000000 - 0x000000009c000000] (1073741824) bytes [info][aot] Mapped static region #0 at base 0x0000000057001000 top 0x0000000058fbe000 (ReadWrite) [info][aot ] Heap range = [0x00000000e0000000 - 0x0000000100000000] [info][aot ] Shared file region (rw) 0: 31818032 bytes, addr 0x0000000800001000 file offset 0x00001000 crc 0xc67c8575 In my opinion, it would make sense to have a common way of writing region addresses so the parser only needs to implement one way of parsing it. And this was a very obvious case, but I'm sure there are others out there that would benefit from some guidelines on how to output data. I intend to improve the log messages to make it easier to parse (while not breaking the human-readable side) following suggestions from https://cr.openjdk.org/~jrose/jvm/parsing-logs.html which I found very complete. Do we have a "good-practices guideline for OpenJDK developers" on how to write log messages? If not, do I start one? Where? Should I add new log messages instead of modifying the existing ones in case someone is already parsing them? As an intermediate step before "deprecating" the current messages. Some of the things I already have in mind: - Better "CSV-style" lists of data - Try to keep context in the same line (if you read a line alone, you should understand it) - Be more consistent in using "=" or ":" when specifying values (like "[info][aot] Core region alignment: 4096" versus "Selected AOTMode=record because AOTCacheOutput is specified") - Be more consistent in general with similar type of data and similar messages What do you think? Cheers! Mar?a Arias de Reyna Dom?nguez Senior Software Engineer She / Her / Hers From shade at openjdk.org Fri Sep 19 13:19:23 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 19 Sep 2025 13:19:23 GMT Subject: RFR: 8366681: [leyden] Precompile more C1 code [v4] In-Reply-To: References: Message-ID: On Wed, 17 Sep 2025 10:37:37 GMT, Aleksey Shipilev wrote: >> Looking at how code goes through AOT+JIT pipeline, I believe we have several issues in the way we include the methods for precompilation. >> >> 1. AP4 code gets replaced by more efficient A4 code, which can then deopt. Once it does, we go back to the fully normal JIT pipeline, with C1 compiling, C2 compiling, etc. Training run currently does A2 versions only when there is a tier2/3 training data present. We can pessimistically assume that A4/AP4 method should have A2 method generated for the sake of quicker deopt. >> >> 2. I suspect a similar thing, but rarer, happens with A4 -> ... -> T1 transition when compiler queues are overloaded. We can generate A1 method for this case. >> >> 3. When training is done with default configuration, but at runtime we enable only C1, we summarily miss almost *all* AOT methods, because A1 methods are rarely generated with a normal tiered policy. Generating A1 methods always would be convenient for hybrid C2 AOT + C1 JIT modes as well. >> >> Overall, I think generating more C1 methods even when C2 methods are present in training is beneficial, as we prepare the ground for whatever corner case happens at runtime. Benchmarks show this improves performance model quite a bit. >> >> Since we now look at methods at all different tiers when deciding to precompile, compile IDs are not working all that well. I have rewritten that to use counters and method sizes. This seems to work well in practice. >> >> Additional testing: >> - [x] `javac` performance tests (see comments) >> - [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 four additional commits since the last revision: > > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Fix I was finally able to find the root cause for this behavior: https://github.com/openjdk/leyden/pull/97 ------------- PR Comment: https://git.openjdk.org/leyden/pull/93#issuecomment-3312164243 From shade at openjdk.org Fri Sep 19 13:36:40 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 19 Sep 2025 13:36:40 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording Message-ID: See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. Additional testing: - [x] Linux x86_64 server fastdebug, `runtime/cds` - [ ] Benchmarks ------------- Commit messages: - Revert unnecessary - Fix Changes: https://git.openjdk.org/leyden/pull/97/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=97&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8368095 Stats: 35 lines in 3 files changed: 8 ins; 9 del; 18 mod Patch: https://git.openjdk.org/leyden/pull/97.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/97/head:pull/97 PR: https://git.openjdk.org/leyden/pull/97 From shade at openjdk.org Fri Sep 19 13:36:41 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 19 Sep 2025 13:36:41 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording In-Reply-To: References: Message-ID: On Fri, 19 Sep 2025 13:16:32 GMT, Aleksey Shipilev wrote: > See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` > - [ ] Benchmarks Javac benchmark: 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 # 506af854234ed9eeec5543e60f2a0d41b73bc93d Time (mean ? ?): 331.7 ms ? 2.3 ms [User: 660.7 ms, System: 104.6 ms] Range (min ? max): 328.4 ms ? 335.2 ms 10 runs # current premain Time (mean ? ?): 567.5 ms ? 16.5 ms [User: 1757.1 ms, System: 149.9 ms] Range (min ? max): 547.0 ms ? 599.3 ms 10 runs # this PR Time (mean ? ?): 355.1 ms ? 2.4 ms [User: 692.8 ms, System: 100.7 ms] Range (min ? max): 351.6 ms ? 358.4 ms 10 runs quarkus-getting-started: $ taskset -c 0-0 make ... compare_premain_builds Run,Old CDS + AOT,New CDS + AOT 1,425,318 2,415,315 3,410,319 4,421,310 5,424,311 6,412,332 7,411,326 8,422,319 9,413,334 10,431,320 Geomean,418.35,320.31 (1.31x improvement) Stdev,6.79,7.66 ------------- PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3312219465 PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3312223611 From shade at openjdk.org Fri Sep 19 13:49:16 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 19 Sep 2025 13:49:16 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording [v2] In-Reply-To: References: Message-ID: > See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. > > I see there are two missing things: > 1. We want to record dependencies on object klasses as well, not only on plain metadata. > 2. We want to record dependencies even when `cik->is_initialized()` returns `false` at the moment. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` > - [ ] Benchmarks Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Retract some unneccesary paths ------------- Changes: - all: https://git.openjdk.org/leyden/pull/97/files - new: https://git.openjdk.org/leyden/pull/97/files/aba729b5..cb48aaca Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=97&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=97&range=00-01 Stats: 10 lines in 2 files changed: 0 ins; 4 del; 6 mod Patch: https://git.openjdk.org/leyden/pull/97.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/97/head:pull/97 PR: https://git.openjdk.org/leyden/pull/97 From shade at openjdk.org Fri Sep 19 13:57:05 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 19 Sep 2025 13:57:05 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording [v3] In-Reply-To: References: Message-ID: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> > See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. > > I see there are several missing things: > 1. We need to record dependencies on object klasses as well, not only on plain metadata. > 2. Since ciObjectFactory is shared, we need to notice objects/metadata even on cache hits. > 3. It looks like we need to observe dependencies even when `cik->is_initialized()` returns `false` at the moment. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` > - [ ] Benchmarks Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Revert "Retract some unneccesary paths" This reverts commit cb48aacac9d7915e6fd890398020442aedac7948. ------------- Changes: - all: https://git.openjdk.org/leyden/pull/97/files - new: https://git.openjdk.org/leyden/pull/97/files/cb48aaca..5039f929 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=97&range=02 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=97&range=01-02 Stats: 10 lines in 2 files changed: 4 ins; 0 del; 6 mod Patch: https://git.openjdk.org/leyden/pull/97.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/97/head:pull/97 PR: https://git.openjdk.org/leyden/pull/97 From asmehra at openjdk.org Fri Sep 19 15:04:40 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 19 Sep 2025 15:04:40 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately [v2] In-Reply-To: <36J7vmEaZLND5gso4Dek-3v-_TnC5aY3bis40Q8Z1Qw=.7d16f3a1-820d-4cbd-a079-2fabdd1da1d5@github.com> References: <36J7vmEaZLND5gso4Dek-3v-_TnC5aY3bis40Q8Z1Qw=.7d16f3a1-820d-4cbd-a079-2fabdd1da1d5@github.com> Message-ID: On Fri, 19 Sep 2025 00:23:26 GMT, Vladimir Kozlov wrote: >> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: >> >> Remove UseNewCode and older version of functions >> >> Signed-off-by: Ashutosh Mehra > > src/hotspot/share/code/aotCodeCache.cpp line 1195: > >> 1193: // Skip not entrant preload code: >> 1194: // we can't pre-load code which may have failing dependencies. >> 1195: log_info(aot, codecache, exit)("Not entrant new entry comp_id: %d, comp_level: %d, hash: " UINT32_FORMAT_X_0 "%s", > > Update message: "Skip not entrant preload code comp_id: ..." Done > src/hotspot/share/code/aotCodeCache.cpp line 1211: > >> 1209: uint size = align_up(entry->size(), DATA_ALIGNMENT); >> 1210: if (size > max_size) { >> 1211: max_size = size; > > May be use separate `preload_max_size` `max_size` is only used for logging maximum entry size. I think this is fine, unless we want to report largest preload entry as well. > src/hotspot/share/code/aotCodeCache.hpp line 407: > >> 405: - _C2_blobs_count >> 406: - _adapters_count; >> 407: if (UseNewCode) count += _preload_entries_count; > > We should not use experimental `UseNewCode` in final PR Done ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/95#discussion_r2363212134 PR Review Comment: https://git.openjdk.org/leyden/pull/95#discussion_r2363211872 PR Review Comment: https://git.openjdk.org/leyden/pull/95#discussion_r2363212663 From asmehra at openjdk.org Fri Sep 19 15:13:13 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 19 Sep 2025 15:13:13 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately [v3] In-Reply-To: References: Message-ID: > Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. > Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. > > In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. > > ACE=AOTCodeEntry > > | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: > > > | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > and then the whole memory block is copied into the final buffer. > This means the size of the temporary buffer needs to be a bit more than required. > > Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. > > This PR is an attempt to fix above issues. It does final assembly in following steps: > 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer > 2. Now the payload for the preload entries is marked > 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer > 4. Then add the payload for these entries > 5. Finally add the search table > > > | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | > > > This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. > > I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. > > **Performance impact:** > > Startup numbers for spring-boot-getting-started: > > Run,Old CDS + AOT,New CDS + AOT > 1,263,275 > 2,265,278 > 3,266,272 > 4,277,271 > 5,265,265 > 6,264,261 > 7,266,263 > 8,258,266 > 9,275,268 > 10,277,263 > Geomean,267.53,268.15 > Stdev,6.14,5.34 > > > AOTCache size comparison: > > -XX:-UseNewCode: 65613824 bytes > -XX:+UseNewCode: 65597440 bytes... Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: Address review comments Signed-off-by: Ashutosh Mehra ------------- Changes: - all: https://git.openjdk.org/leyden/pull/95/files - new: https://git.openjdk.org/leyden/pull/95/files/f1e95d7b..9020b489 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=95&range=02 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=95&range=01-02 Stats: 9 lines in 2 files changed: 0 ins; 1 del; 8 mod Patch: https://git.openjdk.org/leyden/pull/95.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/95/head:pull/95 PR: https://git.openjdk.org/leyden/pull/95 From asmehra at openjdk.org Fri Sep 19 15:13:14 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 19 Sep 2025 15:13:14 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately [v2] In-Reply-To: <36J7vmEaZLND5gso4Dek-3v-_TnC5aY3bis40Q8Z1Qw=.7d16f3a1-820d-4cbd-a079-2fabdd1da1d5@github.com> References: <36J7vmEaZLND5gso4Dek-3v-_TnC5aY3bis40Q8Z1Qw=.7d16f3a1-820d-4cbd-a079-2fabdd1da1d5@github.com> Message-ID: On Fri, 19 Sep 2025 00:49:48 GMT, Vladimir Kozlov wrote: >> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: >> >> Remove UseNewCode and older version of functions >> >> Signed-off-by: Ashutosh Mehra > > Few comments. In general it is good. @vnkozlov pushed new commit to address the review comments. ------------- PR Comment: https://git.openjdk.org/leyden/pull/95#issuecomment-3312577739 From ioi.lam at oracle.com Fri Sep 19 16:04:33 2025 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Fri, 19 Sep 2025 09:04:33 -0700 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: <5eb93354-e03a-4198-a356-8c0f674a0430@littlepinkcloud.com> References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> <12ff5eaf-550d-4cfa-9aa6-b3b5aa91e30a@oracle.com> <5eb93354-e03a-4198-a356-8c0f674a0430@littlepinkcloud.com> Message-ID: On 9/19/25 1:54 AM, Andrew Haley wrote: > On 18/09/2025 23:28, Dean Long wrote: >> If it only happens on macos aarch64 then it could be related to >> os::current_thread_enable_wx() state. > > Yes. That is almost certainly the case. > It seems to be a bus alignment error. Maybe we're using a 8-byte aligned address (0x000000012a8c7108) but the instruction wants 16-byte alignment? V? [libjvm.dylib+0x2c49c8] BarrierSetNMethod::nmethod_stub_entry_barrier(unsigned char**)+0x140 v? ~StubRoutines::Stub Generator method_entry_barrier_stub 0x0000000131de4938 siginfo: si_signo: 10 (SIGBUS), si_code: 1 (BUS_ADRALN), si_addr: 0x000000012a8c7108 From aph-open at littlepinkcloud.com Fri Sep 19 16:21:11 2025 From: aph-open at littlepinkcloud.com (Andrew Haley) Date: Fri, 19 Sep 2025 17:21:11 +0100 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> <12ff5eaf-550d-4cfa-9aa6-b3b5aa91e30a@oracle.com> <5eb93354-e03a-4198-a356-8c0f674a0430@littlepinkcloud.com> Message-ID: On 19/09/2025 17:04, ioi.lam at oracle.com wrote: > On 9/19/25 1:54 AM, Andrew Haley wrote: >> On 18/09/2025 23:28, Dean Long wrote: >>> If it only happens on macos aarch64 then it could be related to >>> os::current_thread_enable_wx() state. >> >> Yes. That is almost certainly the case. >> > It seems to be a bus alignment error. Maybe we're using a 8-byte aligned > address (0x000000012a8c7108) but the instruction wants 16-byte alignment? I think it's a WX error. No AArch64 instructions want 16-byte alignment. -- Andrew Haley (he/him) Java Platform Lead Engineer https://keybase.io/andrewhaley EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671 From kvn at openjdk.org Fri Sep 19 16:34:26 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 19 Sep 2025 16:34:26 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately [v3] In-Reply-To: References: Message-ID: On Fri, 19 Sep 2025 15:13:13 GMT, Ashutosh Mehra wrote: >> Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. >> Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. >> >> In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. >> >> ACE=AOTCodeEntry >> >> | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: >> >> >> | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> and then the whole memory block is copied into the final buffer. >> This means the size of the temporary buffer needs to be a bit more than required. >> >> Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. >> >> This PR is an attempt to fix above issues. It does final assembly in following steps: >> 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer >> 2. Now the payload for the preload entries is marked >> 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer >> 4. Then add the payload for these entries >> 5. Finally add the search table >> >> >> | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | >> >> >> This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. >> >> I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. >> >> **Performance impact:** >> >> Startup numbers for spring-boot-getting-started: >> >> Run,Old CDS + AOT,New CDS + AOT >> 1,263,275 >> 2,265,278 >> 3,266,272 >> 4,277,271 >> 5,265,265 >> 6,264,261 >> 7,266,263 >> 8,258,266 >> 9,275,268 >> 10,277,263 >> Geomean,267.53,268.15 >> St... > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Address review comments > > Signed-off-by: Ashutosh Mehra Good. I will run our testing. ------------- Marked as reviewed by kvn (Committer). PR Review: https://git.openjdk.org/leyden/pull/95#pullrequestreview-3245789166 From shade at openjdk.org Fri Sep 19 17:00:23 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 19 Sep 2025 17:00:23 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording [v3] In-Reply-To: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> References: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> Message-ID: On Fri, 19 Sep 2025 13:57:05 GMT, Aleksey Shipilev wrote: >> See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. >> >> I see there are several missing things: >> 1. We need to record dependencies on object klasses as well, not only on plain metadata. >> 2. Since ciObjectFactory is shared, we need to notice objects/metadata even on cache hits. >> 3. It looks like we need to observe dependencies even when `cik->is_initialized()` returns `false` at the moment. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` >> - [x] Benchmarks > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Revert "Retract some unneccesary paths" > > This reverts commit cb48aacac9d7915e6fd890398020442aedac7948. GHA test failures are in AliasingFuzzer, they do not look related. ------------- PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3312966604 From iveresov at openjdk.org Fri Sep 19 17:28:13 2025 From: iveresov at openjdk.org (Igor Veresov) Date: Fri, 19 Sep 2025 17:28:13 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording [v3] In-Reply-To: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> References: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> Message-ID: <9Evz6_cMM3SNnwYRG2VG_jJPKKv3hwRRiP4Up-9fhLo=.30cfcf02-8caf-4839-9fb8-8c10c2e838d3@github.com> On Fri, 19 Sep 2025 13:57:05 GMT, Aleksey Shipilev wrote: >> See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. >> >> I see there are several missing things: >> 1. We need to record dependencies on object klasses as well, not only on plain metadata. >> 2. Since ciObjectFactory is shared, we need to notice objects/metadata even on cache hits. >> 3. It looks like we need to observe dependencies even when `cik->is_initialized()` returns `false` at the moment. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` >> - [x] Benchmarks > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Revert "Retract some unneccesary paths" > > This reverts commit cb48aacac9d7915e6fd890398020442aedac7948. Recoding a dependency on `cik->is_initialized() == false` doesn't feel right. This means that when we replay we will actually wait for it to become `true`. ------------- PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3313073419 From vlivanov at openjdk.org Fri Sep 19 17:28:14 2025 From: vlivanov at openjdk.org (Vladimir Ivanov) Date: Fri, 19 Sep 2025 17:28:14 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording [v3] In-Reply-To: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> References: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> Message-ID: <2ASvPwCD0paetDIsFGZrzAj4BbIEfMGS7sjyXAcJEBA=.2c5bfdd6-8ba4-4c02-b9e0-32fdf8bd315d@github.com> On Fri, 19 Sep 2025 13:57:05 GMT, Aleksey Shipilev wrote: >> See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. >> >> I see there are several missing things: >> 1. We need to record dependencies on object klasses as well, not only on plain metadata. >> 2. Since ciObjectFactory is shared, we need to notice objects/metadata even on cache hits. >> 3. It looks like we need to observe dependencies even when `cik->is_initialized()` returns `false` at the moment. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` >> - [x] Benchmarks > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Revert "Retract some unneccesary paths" > > This reverts commit cb48aacac9d7915e6fd890398020442aedac7948. > It looks like we need to observe dependencies even when cik->is_initialized() returns false at the moment. Can you elaborate more on it? Does it relate to the case when corresponding class is being initialized? ------------- PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3313083947 From kvn at openjdk.org Fri Sep 19 20:57:50 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Fri, 19 Sep 2025 20:57:50 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately [v3] In-Reply-To: References: Message-ID: On Fri, 19 Sep 2025 15:13:13 GMT, Ashutosh Mehra wrote: >> Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. >> Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. >> >> In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. >> >> ACE=AOTCodeEntry >> >> | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: >> >> >> | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | >> >> >> and then the whole memory block is copied into the final buffer. >> This means the size of the temporary buffer needs to be a bit more than required. >> >> Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. >> >> This PR is an attempt to fix above issues. It does final assembly in following steps: >> 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer >> 2. Now the payload for the preload entries is marked >> 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer >> 4. Then add the payload for these entries >> 5. Finally add the search table >> >> >> | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | >> >> >> This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. >> >> I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. >> >> **Performance impact:** >> >> Startup numbers for spring-boot-getting-started: >> >> Run,Old CDS + AOT,New CDS + AOT >> 1,263,275 >> 2,265,278 >> 3,266,272 >> 4,277,271 >> 5,265,265 >> 6,264,261 >> 7,266,263 >> 8,258,266 >> 9,275,268 >> 10,277,263 >> Geomean,267.53,268.15 >> St... > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Address review comments > > Signed-off-by: Ashutosh Mehra My testing passed with known failures and timeouts. Good. ------------- PR Comment: https://git.openjdk.org/leyden/pull/95#issuecomment-3313778839 From asmehra at openjdk.org Fri Sep 19 21:03:55 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 19 Sep 2025 21:03:55 GMT Subject: git: openjdk/leyden: premain: Refactor AOTCodeCache layout to store preload entries separately Message-ID: <4aa43c16-3f12-4ba5-86bc-cc48a5e40614@openjdk.org> Changeset: 3281d80a Branch: premain Author: Ashutosh Mehra Date: 2025-09-19 21:02:27 +0000 URL: https://git.openjdk.org/leyden/commit/3281d80a35518c616650be8230b78f91dc0c9c58 Refactor AOTCodeCache layout to store preload entries separately Reviewed-by: adinn, kvn ! src/hotspot/share/code/aotCodeCache.cpp ! src/hotspot/share/code/aotCodeCache.hpp ! src/hotspot/share/compiler/compiler_globals.hpp ! test/hotspot/jtreg/runtime/cds/appcds/aotCode/AOTCodeFlags.java From asmehra at openjdk.org Fri Sep 19 21:05:10 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 19 Sep 2025 21:05:10 GMT Subject: RFR: Refactor AOTCodeCache layout to store preload entries separately [v2] In-Reply-To: References: Message-ID: On Mon, 8 Sep 2025 13:37:16 GMT, Andrew Dinn wrote: >> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: >> >> Remove UseNewCode and older version of functions >> >> Signed-off-by: Ashutosh Mehra > > Looks good. Thanks @adinn and @vnkozlov for the reviews. ------------- PR Comment: https://git.openjdk.org/leyden/pull/95#issuecomment-3313790656 From asmehra at openjdk.org Fri Sep 19 21:05:10 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 19 Sep 2025 21:05:10 GMT Subject: Integrated: Refactor AOTCodeCache layout to store preload entries separately In-Reply-To: References: Message-ID: On Wed, 3 Sep 2025 23:32:47 GMT, Ashutosh Mehra wrote: > Currently the mechanism to lay out final AOTCodeCache entries in `AOTCodeCache::finish_write()` is a bit convoluted. > Code data is initially written in a temporary buffer and then assembled in the final buffer in `AOTCodeCache::finish_write()`. > > In the temporary buffer AOTCodeEntry structs are added from the end of the buffer, and the payload (the actual compiled code) is added from the start of the buffer. That means the temporary buffer holds AOTCodeEntry in reverse order. > > ACE=AOTCodeEntry > > | payload | ... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > When assembling the final buffer, AOTCodeEntry structs are first copied in the temporary buffer to make the order correct: > > > | payload | ...| ACE[0] | ACE[1] | ... | ACE[n] |... | ACE[n] | ACE[n-1] | ... | ACE[0] | > > > and then the whole memory block is copied into the final buffer. > This means the size of the temporary buffer needs to be a bit more than required. > > Another issue is the search table created in `finish_write`. This table includes entries marked for preload. However, preload entries are never looked up; they get loaded at the start of the JVM in `preload_aot_code()`. Since the preload and other code entries are mixed together, we also need a separate table to identify the preload entries. > > This PR is an attempt to fix above issues. It does final assembly in following steps: > 1. Process AOTCodeEntry structs in the temporary buffer in reverse order and write the ones marked for preload in the final buffer > 2. Now the payload for the preload entries is marked > 3. Next, add the AOTCodeEntry structs for non-preload code to the final buffer > 4. Then add the payload for these entries > 5. Finally add the search table > > > | ACE[0] | ... | ACE[m] | payload | ACE[0] | ... | ACE[n] | payload | search_table | > > > This layout separates the preload entries from rest of the code and these entries can then be processed sequentially when the cache is loaded. There is no need for a separate table to identify the preload entries. > > I have added the new functionality in separate methods suffixed with `_new` (eg `finish_write_new` and `preload_aot_code_new`) and they are guarded by `UseNewCode` flag. > > **Performance impact:** > > Startup numbers for spring-boot-getting-started: > > Run,Old CDS + AOT,New CDS + AOT > 1,263,275 > 2,265,278 > 3,266,272 > 4,277,271 > 5,265,265 > 6,264,261 > 7,266,263 > 8,258,266 > 9,275,268 > 10,277,263 > Geomean,267.53,268.15 > Stdev,6.14,5.34 > > > AOTCache size comparison: > > -XX:-UseNewCode: 65613824 bytes > -XX:+UseNewCode: 65597440 bytes... This pull request has now been integrated. Changeset: 3281d80a Author: Ashutosh Mehra URL: https://git.openjdk.org/leyden/commit/3281d80a35518c616650be8230b78f91dc0c9c58 Stats: 281 lines in 4 files changed: 99 ins; 98 del; 84 mod Refactor AOTCodeCache layout to store preload entries separately Reviewed-by: adinn, kvn ------------- PR: https://git.openjdk.org/leyden/pull/95 From aph-open at littlepinkcloud.com Sun Sep 21 10:53:29 2025 From: aph-open at littlepinkcloud.com (Andrew Haley) Date: Sun, 21 Sep 2025 11:53:29 +0100 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: <5eb93354-e03a-4198-a356-8c0f674a0430@littlepinkcloud.com> References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> <12ff5eaf-550d-4cfa-9aa6-b3b5aa91e30a@oracle.com> <5eb93354-e03a-4198-a356-8c0f674a0430@littlepinkcloud.com> Message-ID: <76abc39b-66a7-49b3-8e78-68bd0031dfb9@littlepinkcloud.com> On 19/09/2025 09:54, Andrew Haley wrote: > On 18/09/2025 23:28, Dean Long wrote: >> If it only happens on macos aarch64 then it could be related to >> os::current_thread_enable_wx() state. > > Yes. That is almost certainly the case. Assuming that this is a WX problem, I'm working on a PR which is a rewrite of MacOS WX handling, and will fix this problem. I hope to merge into mainline this week. My PR is nearly done You could ignore this crash for a few days. https://github.com/openjdk/jdk/pull/26562 -- Andrew Haley (he/him) Java Platform Lead Engineer https://keybase.io/andrewhaley EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671 From ioi.lam at oracle.com Sun Sep 21 22:29:04 2025 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Sun, 21 Sep 2025 15:29:04 -0700 Subject: Parsing logs (for an AOT Cache analyzer tool) In-Reply-To: References: Message-ID: On 9/19/25 1:14 AM, Mar?a Arias de Reyna Dominguez wrote: > Hi! > > As I mentioned yesterday, I am working on a tool (interactive console) > to analyze what is inside the AOT cache, why and when the elements > were added (or not), and if there's anything that can be done to > improve it. > > It can be found here: https://github.com/Delawen/leyden-analyzer > Warning: very much work in progress, I am changing the way the > commands work almost everyday as I add more commands and more data and > I don't like how it is shown :) > The logs in HotSpot generally have two (sometimes overlapping) purposes: - For HotSpot developers to debug the implementation - For users to gain insight about what the JVM is doing. ?I think many of the logs in the former group won't be very interesting to most users. One example would be the memory ranges you quoted below. > But when analysing logs I found out there are several cases in which > it is difficult to parse it automatically. I am using a consumer that > goes line by line, and sometimes you need some context to know what is > happening. A very clear example: > > [info][aot ? ? ? ] Allocating RW objects ... > [info][aot ? ? ? ] done (218321 objects) > [info][aot ? ? ? ] Allocating RO objects ... > [info][aot ? ? ? ] done (432657 objects) > These can be fixed by combining the output into: [info][aot? ? ? ?] Allocated 218321 RW objects) [info][aot? ? ? ?] Allocated 432657 RO objects) I think this particular case probably won't be very useful to the end user. It might be better for your tool to parse -Xlog:aot+map and give both summary views (how many objects) and detailed views (info about each object, or groups of objects, etc). Also, we could use -Xlog:aot+map as the main gateway for displaying information to the user. For example, we could add a summary section to count the number of all objects, the number of objects for each type, etc). > I guess there are not many parallel things happening at this time on > the JVM, but if any other log message gets in between, that would be > chaotic. A human may get it, a machine will find it confusing. > > Also, there are some lines that can be parsed, but need "special > treatment" like for example this line that has a comma inside the > content of a comma-separated list of values: > > [info][aot ? ? ? ] Class ?CP entries = 127257, archived = ?20941 ( > 16,5%), reverted = ? ? ?0 > In this particular case, the 16,5% is produced by printing the number as %.2d. In some locales, the decimal point is the "," character, while in other locales (such as US, it's printed as "."). > Then there are other inconsistencies that are not that problematic but > fixing them could make parsing the log easier. For example, see the > following lines, which have similar information but displayed on very > different ways: > > [info][aot ? ? ? ] Reserved output buffer space at 0x00007f5702e00000 > [1084227584 bytes] > [info][aot] Reserved archive_space_rs [0x0000000057000000 - > 0x000000005c000000] (83886080) bytes (includes protection zone) > [info][aot] Reserved class_space_rs ? [0x000000005c000000 - > 0x000000009c000000] (1073741824) bytes > [info][aot] Mapped static ?region #0 at base 0x0000000057001000 top > 0x0000000058fbe000 (ReadWrite) > [info][aot ? ? ? ] Heap range = [0x00000000e0000000 - 0x0000000100000000] > [info][aot ? ? ? ] Shared file region (rw) 0: 31818032 bytes, addr > 0x0000000800001000 file offset 0x00001000 crc 0xc67c8575 > > In my opinion, it would make sense to have a common way of writing > region addresses so the parser only needs to implement one way of > parsing it. And this was a very obvious case, but I'm sure there are > others out there that would benefit from some guidelines on how to > output data. > > I intend to improve the log messages to make it easier to parse (while > not breaking the human-readable side) following suggestions from > https://cr.openjdk.org/~jrose/jvm/parsing-logs.html which I found very > complete. > > Do we have a "good-practices guideline for OpenJDK developers" on how > to write log messages? If not, do I start one? Where? > > Should I add new log messages instead of modifying the existing ones > in case someone is already parsing them? As an intermediate step > before "deprecating" the current messages. > > Some of the things I already have in mind: > ?- Better "CSV-style" lists of data > ?- Try to keep context in the same line (if you read a line alone, you > should understand it) > ?- Be more consistent in using "=" or ":" when specifying values (like > "[info][aot] Core region alignment: 4096" versus "Selected > AOTMode=record because AOTCacheOutput is specified") > ?- Be more consistent in general with similar type of data and similar > messages > CSV styles would be easier to parse but would be harder to read (and harder to generate as you'd need to worry about quoting the comma character. Overall, I think we need to decide what information is useful for the user, and then only change those logs (if necessary) for better parsing. We probably don't want to change all the existing logs (there are too many of them). Thanks - Ioi > What do you think? > > Cheers! > Mar?a Arias de Reyna Dom?nguez > Senior Software Engineer > She / Her / Hers -------------- next part -------------- An HTML attachment was scrubbed... URL: From ioi.lam at oracle.com Mon Sep 22 00:04:27 2025 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Sun, 21 Sep 2025 17:04:27 -0700 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: <76abc39b-66a7-49b3-8e78-68bd0031dfb9@littlepinkcloud.com> References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> <12ff5eaf-550d-4cfa-9aa6-b3b5aa91e30a@oracle.com> <5eb93354-e03a-4198-a356-8c0f674a0430@littlepinkcloud.com> <76abc39b-66a7-49b3-8e78-68bd0031dfb9@littlepinkcloud.com> Message-ID: <863f2439-3df7-4212-9b73-ea41facd435e@oracle.com> On 9/21/25 3:53 AM, Andrew Haley wrote: > On 19/09/2025 09:54, Andrew Haley wrote: >> On 18/09/2025 23:28, Dean Long wrote: >>> If it only happens on macos aarch64 then it could be related to >>> os::current_thread_enable_wx() state. >> >> Yes. That is almost certainly the case. > > Assuming that this is a WX problem, I'm working on a PR which is a > rewrite of MacOS WX handling, and will fix this problem. I hope to > merge into mainline this week. My PR is nearly done You could ignore > this crash for a few days. > > https://github.com/openjdk/jdk/pull/26562 > Hi Andrew, do you know why we are seeing the crash in leyden but not in mainline? Unfortunately the crash happens when building the JDK on macos, so it will basically introduce major disruption in testing if we merge the current mainline into Leyden. I wonder if we can identify the cause of the current issue (merge leyden with?fdc11a1569248c9b671b66d547b4616aeb953ecf), and perform a local fix, before we wait for the above PR. Maybe we are just missing a WX transition in the leyden-specific code for stubs? Even if the above PR goes into the mainline, it will be difficult to merge that to leyden in a single step, as there will be conflicts on both the compiler side and CDS side. It will be difficult for one person to resolve both sides of the conflicts. Thanks - Ioi From aph-open at littlepinkcloud.com Mon Sep 22 07:37:13 2025 From: aph-open at littlepinkcloud.com (Andrew Haley) Date: Mon, 22 Sep 2025 08:37:13 +0100 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: <863f2439-3df7-4212-9b73-ea41facd435e@oracle.com> References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> <12ff5eaf-550d-4cfa-9aa6-b3b5aa91e30a@oracle.com> <5eb93354-e03a-4198-a356-8c0f674a0430@littlepinkcloud.com> <76abc39b-66a7-49b3-8e78-68bd0031dfb9@littlepinkcloud.com> <863f2439-3df7-4212-9b73-ea41facd435e@oracle.com> Message-ID: On 22/09/2025 01:04, ioi.lam at oracle.com wrote: > Hi Andrew, do you know why we are seeing the crash in leyden but not in > mainline? No. If you let me have your merged tree I'll have a look. -- Andrew Haley (he/him) Java Platform Lead Engineer https://keybase.io/andrewhaley EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671 From mariasde at redhat.com Mon Sep 22 08:15:32 2025 From: mariasde at redhat.com (=?UTF-8?Q?Mar=C3=ADa_Arias_de_Reyna_Dominguez?=) Date: Mon, 22 Sep 2025 10:15:32 +0200 Subject: Parsing logs (for an AOT Cache analyzer tool) In-Reply-To: References: Message-ID: Hi! Thank you both. On Mon, Sep 22, 2025 at 12:29?AM wrote: > On 9/19/25 1:14 AM, Mar?a Arias de Reyna Dominguez wrote: > > Overall, I think we need to decide what information is useful for the > user, and then only change those logs (if necessary) for better parsing. We > probably don't want to change all the existing logs (there are too many of > them). > That makes sense, I will focus on the most relevant messages and leave the others by now. Cheers! Mar?a. -------------- next part -------------- An HTML attachment was scrubbed... URL: From shade at openjdk.org Mon Sep 22 08:59:16 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 22 Sep 2025 08:59:16 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording [v3] In-Reply-To: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> References: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> Message-ID: On Fri, 19 Sep 2025 13:57:05 GMT, Aleksey Shipilev wrote: >> See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. >> >> I see there are several missing things: >> 1. We need to record dependencies on object klasses as well, not only on plain metadata. >> 2. Since ciObjectFactory is shared, we need to notice objects/metadata even on cache hits. >> 3. It looks like we need to observe dependencies even when `cik->is_initialized()` returns `false` at the moment. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` >> - [x] Benchmarks > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Revert "Retract some unneccesary paths" > > This reverts commit cb48aacac9d7915e6fd890398020442aedac7948. Answering both questions at once. I am seeing **a lot** more deopts when accepting only IK in initialized state. A majority of newly accepted IK dependencies are in uninitialized state. My theory is that A4 traps out with class initialization checks without waiting for AP4 to run through clinit barriers. So the AP4 -> A4 replacement looks premature -- isn't that what we want to prevent with dependency tracking? Dropping the initialization check makes the dependency more conservative, indeed, but it apparently covers lots of bad cases well. 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 # This PR in current form, accepting all IKs as dependencies Time (mean ? ?): 345.3 ms ? 2.7 ms [User: 569.3 ms, System: 85.5 ms] Range (min ? max): 342.7 ms ? 351.0 ms 10 runs Total traps: 118 Reason_Uninitialized + !Action_None traps: 2 # This PR + (IK->is_initialized()) check Time (mean ? ?): 407.9 ms ? 27.0 ms [User: 1051.5 ms, System: 132.3 ms] Range (min ? max): 389.5 ms ? 479.9 ms 10 runs Total traps: 276 Reason_Uninitialized + !Action_None traps: 138 # This PR + (IK->is_initialized() || IK->is_being_initialized()) check Time (mean ? ?): 403.1 ms ? 22.4 ms [User: 1019.9 ms, System: 122.6 ms] Range (min ? max): 379.9 ms ? 438.4 ms 10 runs Total traps: 277 Reason_Uninitialized + !Action_None traps: 136 This is the example for one of the hot methods in javac: # @70ms: AP4 loads 70 W0.0 Q34.4 C0.1 A0.1 829 AP 4 com.sun.tools.javac.code.Symtab::lookupPackage (259 bytes) # @157ms: A4 replaces the AP4 version 157 829 AP 4 com.sun.tools.javac.code.Symtab::lookupPackage (259 bytes) made not entrant: not used 157 W0.0 Q61.1 C0.1 A0.0 3984 A 4 com.sun.tools.javac.code.Symtab::lookupPackage (259 bytes) # ... and immediately traps at uninitialized class: [0.157s][debug][deoptimization] cid=3984 level=4 com.sun.tools.javac.code.Symtab::lookupPackage(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/util/Name;Z)Lcom/sun/tools/javac/code/Symbol$PackageSymbol; trap_bci=101 uninitialized reinterpret pc=0x000077bf28520d04 relative_pc=0x0000000000000a04 157 3984 A 4 com.sun.tools.javac.code.Symtab::lookupPackage (259 bytes) made not entrant: uncommon trap # ...and goes to recompile: 159 W0.0 Q0.0 C1.3 4459 2 com.sun.tools.javac.code.Symtab::lookupPackage (259 bytes) 222 4459 2 com.sun.tools.javac.code.Symtab::lookupPackage (259 bytes) made not entrant: not used 222 W9.1 Q0.0 C33.6 4734 4 com.sun.tools.javac.code.Symtab::lookupPackage (259 bytes) ------------- PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3317644542 From shade at openjdk.org Mon Sep 22 13:46:51 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 22 Sep 2025 13:46:51 GMT Subject: RFR: 8368289: [leyden] Expose AOTCodeEntry::_for_preload in VMStructs Message-ID: Similar to [JDK-8366811](https://bugs.openjdk.org/browse/JDK-8366811), we also need this bit to disambiguate A4 and AP4 frames in async-profiler. Additional testing: - [x] Linux x86_64 server fastdebug, `runtime/cds` - [x] Ad-hoc async-profiler hacks to access this field ------------- Commit messages: - Move - Fix Changes: https://git.openjdk.org/leyden/pull/98/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=98&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8368289 Stats: 3 lines in 2 files changed: 3 ins; 0 del; 0 mod Patch: https://git.openjdk.org/leyden/pull/98.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/98/head:pull/98 PR: https://git.openjdk.org/leyden/pull/98 From adinn at openjdk.org Mon Sep 22 13:50:04 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Mon, 22 Sep 2025 13:50:04 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording [v3] In-Reply-To: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> References: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> Message-ID: <5ePsxyczu8hqzphMWLZxstIM6PmEmOlZ5owICs4qVbA=.c50b3c9c-64be-4c2a-865d-fe6a4ecfbd87@github.com> On Fri, 19 Sep 2025 13:57:05 GMT, Aleksey Shipilev wrote: >> See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. >> >> I see there are several missing things: >> 1. We need to record dependencies on object klasses as well, not only on plain metadata. >> 2. Since ciObjectFactory is shared, we need to notice objects/metadata even on cache hits. >> 3. It looks like we need to observe dependencies even when `cik->is_initialized()` returns `false` at the moment. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` >> - [x] Benchmarks > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Revert "Retract some unneccesary paths" > > This reverts commit cb48aacac9d7915e6fd890398020442aedac7948. So, the difference between 277/136 traps after 'This PR + (IK->is_initialized() || IK->is_being_initialized()) check' and the status quo of 691/553 traps is caused by two additional checks: 1) including deps on the klasses of objects 2) doing so even if the objects have already been observed in the cache. Just out of interest, what's the difference if you add those object/klass deps only when they are new rather than already in the cache? ------------- PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3319149595 From adinn at openjdk.org Mon Sep 22 13:53:47 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Mon, 22 Sep 2025 13:53:47 GMT Subject: RFR: 8368289: [leyden] Expose AOTCodeEntry::_for_preload in VMStructs In-Reply-To: References: Message-ID: <0sGr-5O3mOlpQZFv6XBlEmXVXZNV7rolQrRuxLwD4xk=.9d4f5595-6f7c-47af-b724-0396fed5242d@github.com> On Mon, 22 Sep 2025 13:31:31 GMT, Aleksey Shipilev wrote: > Similar to [JDK-8366811](https://bugs.openjdk.org/browse/JDK-8366811), we also need this bit to disambiguate A4 and AP4 frames in async-profiler. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` > - [x] Ad-hoc async-profiler hacks to access this field Looks good. ------------- Marked as reviewed by adinn (Committer). PR Review: https://git.openjdk.org/leyden/pull/98#pullrequestreview-3252926166 From shade at openjdk.org Mon Sep 22 14:08:32 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 22 Sep 2025 14:08:32 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording [v3] In-Reply-To: <5ePsxyczu8hqzphMWLZxstIM6PmEmOlZ5owICs4qVbA=.c50b3c9c-64be-4c2a-865d-fe6a4ecfbd87@github.com> References: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> <5ePsxyczu8hqzphMWLZxstIM6PmEmOlZ5owICs4qVbA=.c50b3c9c-64be-4c2a-865d-fe6a4ecfbd87@github.com> Message-ID: <4Xhb2NL8OZxU-9HDoxJSYFfG-kmlniKhNfTtUsOP_UI=.f85bea14-9b25-46c3-91c1-32c1e9f55113@github.com> On Mon, 22 Sep 2025 13:46:57 GMT, Andrew Dinn wrote: > Just out of interest, what's the difference if you add those object/klass deps only when they are new rather than already in the cache? Ad-hoc culling of this PR shows this: Uninitialized / total traps: 553 / 691 Current premain 138 / 276 This PR, but gating IK->is_initializing for deps recording [see above comment for fuller result] 45 / 179 This PR, but skipping recording on cache hits 2 / 129 This PR, but skipping object recording 2 / 118 This PR, full version The performance improves as we go from top to bottom. Arguably, this might suggest we do not need to handle oop accesses, really, but there is a minor decrease to the number of total traps and what _looks to be_ a minor performance improvement on top. ------------- PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3319248703 From shade at openjdk.org Mon Sep 22 14:37:30 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 22 Sep 2025 14:37:30 GMT Subject: RFR: 8368289: [leyden] Expose AOTCodeEntry::_for_preload in VMStructs In-Reply-To: References: Message-ID: On Mon, 22 Sep 2025 13:31:31 GMT, Aleksey Shipilev wrote: > Similar to [JDK-8366811](https://bugs.openjdk.org/browse/JDK-8366811), we also need this bit to disambiguate A4 and AP4 frames in async-profiler. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` > - [x] Ad-hoc async-profiler hacks to access this field Thanks! I'll wait for GHA to clear and then integrate. ------------- PR Comment: https://git.openjdk.org/leyden/pull/98#issuecomment-3319436585 From adinn at openjdk.org Mon Sep 22 14:40:45 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Mon, 22 Sep 2025 14:40:45 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording [v3] In-Reply-To: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> References: <4FIKNmVGrhB_44Uqw-PoC_uXrocGCatwBzj3EoqWgT0=.f00cd11c-1413-47b9-a092-69af95583e29@github.com> Message-ID: On Fri, 19 Sep 2025 13:57:05 GMT, Aleksey Shipilev wrote: >> See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. >> >> I see there are several missing things: >> 1. We need to record dependencies on object klasses as well, not only on plain metadata. >> 2. Since ciObjectFactory is shared, we need to notice objects/metadata even on cache hits. >> 3. It looks like we need to observe dependencies even when `cik->is_initialized()` returns `false` at the moment. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` >> - [x] Benchmarks > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Revert "Retract some unneccesary paths" > > This reverts commit cb48aacac9d7915e6fd890398020442aedac7948. > The performance improves as we go from top to bottom. Arguably, this might suggest we do not need to handle oop accesses, really, but there is a minor decrease to the number of total traps and what looks to be a minor performance improvement on top. Oh, I'm all for handling oop accesses and, indeed, everything else. There is no point exiting AP4 code for AP code until the probability of a deopt registers only a minor increment. I just wanted to know to what degree the benefit we were seeing was down to tracking new oops vs the same old oops. ------------- PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3319462533 From shade at openjdk.org Mon Sep 22 16:04:24 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 22 Sep 2025 16:04:24 GMT Subject: git: openjdk/leyden: premain: 8368289: [leyden] Expose AOTCodeEntry::_for_preload in VMStructs Message-ID: Changeset: f1521ffb Branch: premain Author: Aleksey Shipilev Date: 2025-09-22 16:03:16 +0000 URL: https://git.openjdk.org/leyden/commit/f1521ffb7e382aeb1cf2c87db12a0ed759a148ed 8368289: [leyden] Expose AOTCodeEntry::_for_preload in VMStructs Reviewed-by: adinn ! src/hotspot/share/code/aotCodeCache.hpp ! src/hotspot/share/runtime/vmStructs.cpp From shade at openjdk.org Mon Sep 22 16:05:50 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 22 Sep 2025 16:05:50 GMT Subject: RFR: 8368289: [leyden] Expose AOTCodeEntry::_for_preload in VMStructs In-Reply-To: References: Message-ID: On Mon, 22 Sep 2025 13:31:31 GMT, Aleksey Shipilev wrote: > Similar to [JDK-8366811](https://bugs.openjdk.org/browse/JDK-8366811), we also need this bit to disambiguate A4 and AP4 frames in async-profiler. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` > - [x] Ad-hoc async-profiler hacks to access this field TestAliasingFuzzer failure again, this is unrelated to this PR, so I am integrating. ------------- PR Comment: https://git.openjdk.org/leyden/pull/98#issuecomment-3319908730 From shade at openjdk.org Mon Sep 22 16:05:50 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 22 Sep 2025 16:05:50 GMT Subject: Integrated: 8368289: [leyden] Expose AOTCodeEntry::_for_preload in VMStructs In-Reply-To: References: Message-ID: <54XY3HNwD_QHGipqpv8iwxiw4C0TYdZ7uMX_hFlE_FI=.ae75b1f7-21fb-457f-ad48-302e7e0cd3e9@github.com> On Mon, 22 Sep 2025 13:31:31 GMT, Aleksey Shipilev wrote: > Similar to [JDK-8366811](https://bugs.openjdk.org/browse/JDK-8366811), we also need this bit to disambiguate A4 and AP4 frames in async-profiler. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` > - [x] Ad-hoc async-profiler hacks to access this field This pull request has now been integrated. Changeset: f1521ffb Author: Aleksey Shipilev URL: https://git.openjdk.org/leyden/commit/f1521ffb7e382aeb1cf2c87db12a0ed759a148ed Stats: 3 lines in 2 files changed: 3 ins; 0 del; 0 mod 8368289: [leyden] Expose AOTCodeEntry::_for_preload in VMStructs Reviewed-by: adinn ------------- PR: https://git.openjdk.org/leyden/pull/98 From shade at openjdk.org Mon Sep 22 16:22:57 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 22 Sep 2025 16:22:57 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording [v4] In-Reply-To: References: Message-ID: > See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. > > I see there are several missing things: > 1. We need to record dependencies on object klasses as well, not only on plain metadata. > 2. Since ciObjectFactory is shared, we need to notice objects/metadata even on cache hits. > 3. It looks like we need to observe dependencies even when `cik->is_initialized()` returns `false` at the moment. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` > - [x] Benchmarks 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 five additional commits since the last revision: - Merge branch 'premain' into JDK-8368095-klass-dep-fix - Revert "Retract some unneccesary paths" This reverts commit cb48aacac9d7915e6fd890398020442aedac7948. - Retract some unneccesary paths - Revert unnecessary - Fix ------------- Changes: - all: https://git.openjdk.org/leyden/pull/97/files - new: https://git.openjdk.org/leyden/pull/97/files/5039f929..e3af03fe Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=97&range=03 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=97&range=02-03 Stats: 284 lines in 5 files changed: 102 ins; 98 del; 84 mod Patch: https://git.openjdk.org/leyden/pull/97.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/97/head:pull/97 PR: https://git.openjdk.org/leyden/pull/97 From vladimir.kozlov at oracle.com Mon Sep 22 17:35:22 2025 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 22 Sep 2025 10:35:22 -0700 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> <12ff5eaf-550d-4cfa-9aa6-b3b5aa91e30a@oracle.com> <5eb93354-e03a-4198-a356-8c0f674a0430@littlepinkcloud.com> <76abc39b-66a7-49b3-8e78-68bd0031dfb9@littlepinkcloud.com> <863f2439-3df7-4212-9b73-ea41facd435e@oracle.com> Message-ID: <125700ba-2c75-4c1a-b896-8cdf9fc8f254@oracle.com> Before you jump on it. Let me investigate this first to get more details. I am working on merge of latest mainline into leyden repo. Vladimir K On 9/22/25 12:37 AM, Andrew Haley wrote: > On 22/09/2025 01:04, ioi.lam at oracle.com wrote: >> Hi Andrew, do you know why we are seeing the crash in leyden but not in >> mainline? > > No. If you let me have your merged tree I'll have a look. > From duke at openjdk.org Mon Sep 22 18:15:35 2025 From: duke at openjdk.org (duke) Date: Mon, 22 Sep 2025 18:15:35 GMT Subject: git: openjdk/leyden: premain: Fix Minimal VM build Message-ID: <73acc9da-4eb6-4374-93d7-da27f38702a5@openjdk.org> Changeset: 123728af Branch: premain Author: Vladimir Kozlov Date: 2025-09-22 11:11:43 +0000 URL: https://git.openjdk.org/leyden/commit/123728af3b47a5f2c34f91bce5369acb420ffbfd Fix Minimal VM build ! src/hotspot/share/code/aotCodeCache.hpp ! src/hotspot/share/oops/instanceKlass.cpp From vlivanov at openjdk.org Mon Sep 22 18:38:34 2025 From: vlivanov at openjdk.org (Vladimir Ivanov) Date: Mon, 22 Sep 2025 18:38:34 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording [v4] In-Reply-To: References: Message-ID: On Mon, 22 Sep 2025 16:22:57 GMT, Aleksey Shipilev wrote: >> See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. >> >> I see there are several missing things: >> 1. We need to record dependencies on object klasses as well, not only on plain metadata. >> 2. Since ciObjectFactory is shared, we need to notice objects/metadata even on cache hits. >> 3. It looks like we need to observe dependencies even when `cik->is_initialized()` returns `false` at the moment. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` >> - [x] Benchmarks > > 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 five additional commits since the last revision: > > - Merge branch 'premain' into JDK-8368095-klass-dep-fix > - Revert "Retract some unneccesary paths" > > This reverts commit cb48aacac9d7915e6fd890398020442aedac7948. > - Retract some unneccesary paths > - Revert unnecessary > - Fix Marked as reviewed by vlivanov (Committer). Thanks for the clarifications, Aleksey. There's a long-standing issue with how nmethod init dependencies are managed: they are recorded during training run and then left intact throughout assembly phase while compilers try hard to adapt to the exact set of init dependences during archived code generation. Ideally, JITs should produce a new set of init dependences based on training data and observations made during AOT compilation. When it comes to init dependencies, there's an important distinction between classes which were eventually initialized and those which were never initialized during training run. In the former case, it's better to record an extra dependency and delay A4 nmethod installation while in the former case an uncommon trap is preferred. (Similar reasoning applies to classes in being_initialized state: if class initialization never finishes, there's no point in recording an init dependency for it.) For now, proposed fix looks good. ------------- PR Review: https://git.openjdk.org/leyden/pull/97#pullrequestreview-3254541385 PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3320742547 From vladimir.kozlov at oracle.com Mon Sep 22 20:08:29 2025 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Mon, 22 Sep 2025 13:08:29 -0700 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: <125700ba-2c75-4c1a-b896-8cdf9fc8f254@oracle.com> References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> <12ff5eaf-550d-4cfa-9aa6-b3b5aa91e30a@oracle.com> <5eb93354-e03a-4198-a356-8c0f674a0430@littlepinkcloud.com> <76abc39b-66a7-49b3-8e78-68bd0031dfb9@littlepinkcloud.com> <863f2439-3df7-4212-9b73-ea41facd435e@oracle.com> <125700ba-2c75-4c1a-b896-8cdf9fc8f254@oracle.com> Message-ID: JDK-8361376 removed WXWrite from BarrierSetNMethod::nmethod_stub_entry_barrier() because it does not modify nmethod directly in mainline. In leyden repo we do modify it. Putting it back to leyden code solved the issue: src/hotspot/share/gc/shared/barrierSetNMethod.cpp @@ -205,6 +205,7 @@ int BarrierSetNMethod::nmethod_stub_entry_barrier(address* return_address_ptr) { } if (may_enter) { + MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXWrite, Thread::current())); nm->set_used(); } else { log_trace(nmethod, barrier)("Deoptimizing nmethod: " PTR_FORMAT, p2i(nm)); Vladimir K On 9/22/25 10:35 AM, Vladimir Kozlov wrote: > Before you jump on it. Let me investigate this first to get more details. > > I am working on merge of latest mainline into leyden repo. > > Vladimir K > > On 9/22/25 12:37 AM, Andrew Haley wrote: >> On 22/09/2025 01:04, ioi.lam at oracle.com wrote: >>> Hi Andrew, do you know why we are seeing the crash in leyden but not in >>> mainline? >> >> No. If you let me have your merged tree I'll have a look. >> > From shade at openjdk.org Tue Sep 23 05:04:26 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 23 Sep 2025 05:04:26 GMT Subject: git: openjdk/leyden: premain: 8368095: [leyden] Fix klass dependency recording Message-ID: Changeset: b8cfee49 Branch: premain Author: Aleksey Shipilev Date: 2025-09-23 05:02:48 +0000 URL: https://git.openjdk.org/leyden/commit/b8cfee49c6cb60225b13cbe3dc57a37975125385 8368095: [leyden] Fix klass dependency recording Reviewed-by: vlivanov ! src/hotspot/share/ci/ciObjectFactory.cpp ! src/hotspot/share/ci/ciObjectFactory.hpp ! src/hotspot/share/oops/trainingData.cpp From shade at openjdk.org Tue Sep 23 05:06:11 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 23 Sep 2025 05:06:11 GMT Subject: RFR: 8368095: [leyden] Fix klass dependency recording [v4] In-Reply-To: References: Message-ID: On Mon, 22 Sep 2025 16:22:57 GMT, Aleksey Shipilev wrote: >> See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. >> >> I see there are several missing things: >> 1. We need to record dependencies on object klasses as well, not only on plain metadata. >> 2. Since ciObjectFactory is shared, we need to notice objects/metadata even on cache hits. >> 3. It looks like we need to observe dependencies even when `cik->is_initialized()` returns `false` at the moment. >> >> Additional testing: >> - [x] Linux x86_64 server fastdebug, `runtime/cds` >> - [x] Benchmarks > > 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 five additional commits since the last revision: > > - Merge branch 'premain' into JDK-8368095-klass-dep-fix > - Revert "Retract some unneccesary paths" > > This reverts commit cb48aacac9d7915e6fd890398020442aedac7948. > - Retract some unneccesary paths > - Revert unnecessary > - Fix Thanks for reviews! Here goes. ------------- PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3322419673 From shade at openjdk.org Tue Sep 23 05:06:12 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 23 Sep 2025 05:06:12 GMT Subject: Integrated: 8368095: [leyden] Fix klass dependency recording In-Reply-To: References: Message-ID: On Fri, 19 Sep 2025 13:16:32 GMT, Aleksey Shipilev wrote: > See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4. > > I see there are several missing things: > 1. We need to record dependencies on object klasses as well, not only on plain metadata. > 2. Since ciObjectFactory is shared, we need to notice objects/metadata even on cache hits. > 3. It looks like we need to observe dependencies even when `cik->is_initialized()` returns `false` at the moment. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `runtime/cds` > - [x] Benchmarks This pull request has now been integrated. Changeset: b8cfee49 Author: Aleksey Shipilev URL: https://git.openjdk.org/leyden/commit/b8cfee49c6cb60225b13cbe3dc57a37975125385 Stats: 35 lines in 3 files changed: 8 ins; 9 del; 18 mod 8368095: [leyden] Fix klass dependency recording Reviewed-by: vlivanov ------------- PR: https://git.openjdk.org/leyden/pull/97 From iklam at openjdk.org Tue Sep 23 05:52:28 2025 From: iklam at openjdk.org (Ioi Lam) Date: Tue, 23 Sep 2025 05:52:28 GMT Subject: git: openjdk/leyden: premain: 94 new changesets Message-ID: <7bb56db7-c4c5-479f-8c10-b6780f79ff38@openjdk.org> Changeset: 58107071 Branch: premain Author: Brian Burkhalter Date: 2025-09-04 21:58:08 +0000 URL: https://git.openjdk.org/leyden/commit/581070715ab1ef081032b78ceb3c2cfbdbcff611 8366102: Clarification Needed: Symbolic Link Handling in File API Specifications Reviewed-by: alanb ! src/java.base/share/classes/java/io/File.java Changeset: b7b64bb6 Branch: premain Author: Leonid Mesnik Date: 2025-09-04 22:35:21 +0000 URL: https://git.openjdk.org/leyden/commit/b7b64bb6c800b45e32ff37b1b92b5927a3b3fb56 8365937: post_method_exit might incorrectly set was_popped_by_exception and value in the middle of stack unwinding Reviewed-by: dholmes, pchilanomate ! src/hotspot/share/prims/jvmtiExport.cpp + test/hotspot/jtreg/serviceability/jvmti/events/MethodExit/PendingException/TestMethodExitWithPendingException.java + test/hotspot/jtreg/serviceability/jvmti/events/MethodExit/PendingException/libTestMethodExitWithPendingException.cpp + test/hotspot/jtreg/serviceability/jvmti/events/MethodExit/PoppedByException/TestPoppedByException.java + test/hotspot/jtreg/serviceability/jvmti/events/MethodExit/PoppedByException/libTestPoppedByException.cpp Changeset: 40a60252 Branch: premain Author: David Holmes Date: 2025-09-05 00:26:44 +0000 URL: https://git.openjdk.org/leyden/commit/40a602520ba1a4682213b74e6f2a6f5a6e35d839 8364735: [asan] heap-use-after-free error detected in defaultStream::writer during VM shutdown Reviewed-by: jsjolen, stuefe ! src/hotspot/share/utilities/ostream.cpp Changeset: 0d7f8f83 Branch: premain Author: Anjian Wen Committer: Fei Yang Date: 2025-09-05 06:13:44 +0000 URL: https://git.openjdk.org/leyden/commit/0d7f8f83c7a674f5da4b93d66a24f9ce5ba46011 8366747: RISC-V: Improve VerifyMethodHandles for method handle linkers Reviewed-by: fyang, dzhang ! src/hotspot/cpu/riscv/methodHandles_riscv.cpp ! src/hotspot/cpu/riscv/methodHandles_riscv.hpp Changeset: a2f8d3c4 Branch: premain Author: Volkan Yazici Date: 2025-09-05 06:40:33 +0000 URL: https://git.openjdk.org/leyden/commit/a2f8d3c4c25fdadf378313ef52185dceee98773d 8366765: [REDO] Rename JavaLangAccess::*NoRepl methods Reviewed-by: rriggs, liach, alanb ! src/java.base/share/classes/java/lang/String.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/nio/file/Files.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/foreign/StringSupport.java ! src/java.base/unix/classes/sun/nio/fs/UnixPath.java - test/jdk/java/lang/String/NoReplTest.java + test/jdk/java/lang/String/OrThrowTest.java Changeset: e6fa8aae Branch: premain Author: Emanuel Peter Date: 2025-09-05 08:46:56 +0000 URL: https://git.openjdk.org/leyden/commit/e6fa8aae6168ea5a8579cd0a38209ca71c32e704 8366845: C2 SuperWord: wrong VectorCast after VectorReinterpret with swapped src/dst type Reviewed-by: thartmann, galder, vlivanov ! src/hotspot/share/opto/vtransform.cpp + test/hotspot/jtreg/compiler/loopopts/superword/TestReinterpretAndCast.java Changeset: 0dad3f1a Branch: premain Author: Aleksey Shipilev Date: 2025-09-05 10:55:41 +0000 URL: https://git.openjdk.org/leyden/commit/0dad3f1ae8d0c35c4b7a8188ad7854d01c7cd6b4 8366893: java/lang/Thread/virtual/stress/GetStackTraceALotWhenPinned.java timed out on macos-aarch64 Reviewed-by: alanb, jpai ! test/jdk/java/lang/Thread/virtual/stress/GetStackTraceALotWhenBlocking.java ! test/jdk/java/lang/Thread/virtual/stress/GetStackTraceALotWhenPinned.java ! test/jdk/java/lang/Thread/virtual/stress/ParkALot.java Changeset: 124fcf1d Branch: premain Author: Magnus Ihse Bursie Date: 2025-09-05 13:31:23 +0000 URL: https://git.openjdk.org/leyden/commit/124fcf1d9abb6cafe34637ba357617c7c7be56c8 8233115: Protect ExecuteWithLog from running with redirection without a subshell Reviewed-by: erikj ! make/RunTests.gmk ! make/StaticLibs.gmk ! make/common/MakeBase.gmk ! make/common/ProcessMarkdown.gmk ! make/hotspot/gensrc/GensrcDtrace.gmk Changeset: 33794d16 Branch: premain Author: Guoxiong Li Date: 2025-09-05 13:34:45 +0000 URL: https://git.openjdk.org/leyden/commit/33794d161467635eb32591fee189e5409cd2d114 8357188: Remove the field MemAllocator::Allocation::_overhead_limit_exceeded and the related code Reviewed-by: ayang, shade ! src/hotspot/share/gc/epsilon/epsilonHeap.cpp ! src/hotspot/share/gc/epsilon/epsilonHeap.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! 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/serial/serialHeap.cpp ! src/hotspot/share/gc/serial/serialHeap.hpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/memAllocator.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/z/zCollectedHeap.cpp ! src/hotspot/share/gc/z/zCollectedHeap.hpp Changeset: 1e90af08 Branch: premain Author: Archie Cobbs Date: 2025-09-05 14:30:40 +0000 URL: https://git.openjdk.org/leyden/commit/1e90af08abb74df9ec4ab94b67deeae5c1c9fee1 8359383: Incorrect starting positions for implicitly typed variables Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/Pretty.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeCopier.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! test/langtools/tools/javac/parser/DeclarationEndPositions.java ! test/langtools/tools/javac/patterns/PrettyTest.java ! test/langtools/tools/javac/tree/VarTree.java ! test/langtools/tools/javac/tree/VarWarnPosition.java ! test/langtools/tools/javac/tree/VarWarnPosition.out Changeset: ceacf6f7 Branch: premain Author: Christian Hagedorn Date: 2025-09-05 15:26:13 +0000 URL: https://git.openjdk.org/leyden/commit/ceacf6f7852514dc9877cfe284f9550c179d913a 8366890: C2: Split through phi printing with TraceLoopOpts misses line break Reviewed-by: rcastanedalo, mhaessig, epeter ! src/hotspot/share/opto/loopopts.cpp Changeset: 9f4d5b23 Branch: premain Author: Chen Liang Date: 2025-09-05 15:55:19 +0000 URL: https://git.openjdk.org/leyden/commit/9f4d5b2398cb925ec1a66f9f7676b76c99ff7b62 8365428: Unclear comments on java.lang.invoke Holder classes Reviewed-by: iklam, jvernee ! src/java.base/share/classes/java/lang/invoke/BoundMethodHandle.java ! src/java.base/share/classes/java/lang/invoke/DelegatingMethodHandle.java ! src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java ! src/java.base/share/classes/java/lang/invoke/GenerateJLIClassesHelper.java ! src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java ! src/java.base/share/classes/java/lang/invoke/Invokers.java ! src/java.base/share/classes/java/lang/invoke/LambdaForm.java Changeset: 9cca4f7c Branch: premain Author: Vladimir Ivanov Date: 2025-09-05 16:44:08 +0000 URL: https://git.openjdk.org/leyden/commit/9cca4f7c760bea9bf79f7c03f37a70449acad51e 8358751: C2: Recursive inlining check for compiled lambda forms is broken Reviewed-by: dlong, roland ! src/hotspot/share/opto/bytecodeInfo.cpp ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/parse1.cpp Changeset: a17058b5 Branch: premain Author: Phil Race Date: 2025-09-05 17:45:37 +0000 URL: https://git.openjdk.org/leyden/commit/a17058b5bb2dcc89ed276600ceac905e7e986426 8365569: Remove finalize from JavaSoundAudioClip.java Reviewed-by: kizune, tr ! src/java.desktop/share/classes/com/sun/media/sound/JavaSoundAudioClip.java + src/java.desktop/share/classes/com/sun/media/sound/JavaSoundAudioClipDelegate.java Changeset: c6c451ac Branch: premain Author: Afshin Zafari Date: 2025-09-05 18:42:58 +0000 URL: https://git.openjdk.org/leyden/commit/c6c451ac392cdb545ab43dd46918eca6c47cc5f0 8353468: [ubsan] arguments.cpp:2422:23: runtime error: 2.14748e+11 is outside the range of representable values of type 'int' Reviewed-by: stefank, dholmes ! src/hotspot/share/runtime/arguments.cpp ! test/hotspot/jtreg/gc/arguments/TestHeapFreeRatio.java Changeset: e2a503e2 Branch: premain Author: Manukumar V S Date: 2025-09-05 19:50:52 +0000 URL: https://git.openjdk.org/leyden/commit/e2a503e26ee2a3c428c5db0cd4cbe71cdc7d837f 8347277: java/awt/Focus/ComponentLostFocusTest.java fails intermittently Reviewed-by: serb ! test/jdk/java/awt/Focus/ComponentLostFocusTest.java Changeset: 4ab2b5bd Branch: premain Author: Manuel H?ssig Date: 2025-09-05 19:59:03 +0000 URL: https://git.openjdk.org/leyden/commit/4ab2b5bdb4e6d40a747d4088a25f7c6351131759 8366569: Disable CompileTaskTimeout for known long-running test cases Reviewed-by: dlong ! test/hotspot/jtreg/compiler/c2/TestScalarReplacementMaxLiveNodes.java ! test/hotspot/jtreg/compiler/codegen/TestAntiDependenciesHighMemUsage.java ! test/hotspot/jtreg/compiler/codegen/TestAntiDependenciesHighMemUsage2.java ! test/hotspot/jtreg/compiler/loopopts/TestMaxLoopOptsCountReached.java ! test/hotspot/jtreg/compiler/vectorapi/VectorReplicateLongSpecialImmTest.java Changeset: 3824c7cd Branch: premain Author: Naoto Sato Date: 2025-09-05 20:20:11 +0000 URL: https://git.openjdk.org/leyden/commit/3824c7cd06645b1dab5322015e8e6cf604afa754 8366517: Refine null locale processing of ctor/factory methods in `Date/DecimalFormatSymbols` Reviewed-by: jlu, rriggs ! src/java.base/share/classes/java/text/DateFormatSymbols.java ! src/java.base/share/classes/java/text/DecimalFormatSymbols.java ! test/jdk/java/text/Format/DateFormat/IntlTestDateFormatSymbols.java ! test/jdk/java/text/Format/NumberFormat/IntlTestDecimalFormatSymbols.java Changeset: b674a425 Branch: premain Author: Sarvesh Kumar Jain Committer: Sergey Bylokhov Date: 2025-09-05 20:35:30 +0000 URL: https://git.openjdk.org/leyden/commit/b674a425531974bb78c4622e0f1d9b46a117f575 8366750: Remove test 'java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java' from problemlist Reviewed-by: psadhukhan, serb ! test/jdk/ProblemList.txt Changeset: 1ebe9495 Branch: premain Author: Kim Barrett Date: 2025-09-05 20:47:48 +0000 URL: https://git.openjdk.org/leyden/commit/1ebe949507b48a6b62dd36e08f0ae80da2ee1dcc 8314488: Compiling the JDK with C++17 Reviewed-by: dholmes, stefank, ayang, kvn, iwalulya, jsjolen, ihse ! doc/hotspot-style.html ! doc/hotspot-style.md ! make/autoconf/flags-cflags.m4 ! make/ide/vscode/hotspot/indexers/ccls-settings.txt ! make/ide/vscode/hotspot/indexers/clangd-settings.txt ! make/ide/vscode/hotspot/indexers/cpptools-settings.txt ! make/ide/vscode/hotspot/indexers/rtags-settings.txt Changeset: cdc8b5eb Branch: premain Author: Chen Liang Date: 2025-09-05 21:08:29 +0000 URL: https://git.openjdk.org/leyden/commit/cdc8b5eb83ed6335a65b93cfa0cf38932486c7e3 8366455: Move VarHandles.GuardMethodGenerator to execute on build Reviewed-by: psandoz, redestad, erikj ! make/ToolsJdk.gmk + make/jdk/src/classes/build/tools/methodhandle/VarHandleGuardMethodGenerator.java ! make/modules/java.base/gensrc/GensrcVarHandles.gmk - src/java.base/share/classes/java/lang/invoke/VarHandleGuards.java ! src/java.base/share/classes/java/lang/invoke/VarHandles.java Changeset: dbf4ffff Branch: premain Author: Ioi Lam Date: 2025-09-05 23:55:13 +0000 URL: https://git.openjdk.org/leyden/commit/dbf4ffffe3fbbb513122081bbcc04c543473082e 8366477: Refactor AOT-related flag bits in klass.hpp Reviewed-by: liach, asmehra, kvn ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/lambdaFormInvokers.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/instanceKlassFlags.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp Changeset: e8c7d2aa Branch: premain Author: Magnus Ihse Bursie Date: 2025-09-06 09:00:51 +0000 URL: https://git.openjdk.org/leyden/commit/e8c7d2aaf3cdbbe07b8cdcc68dd7ec9645956bf2 8332872: SetupExecute should cd to temp directory Reviewed-by: erikj ! make/CreateJmods.gmk ! make/UpdateSleefSource.gmk ! make/common/Execute.gmk + test/make/TestExecute.gmk ! test/make/TestMake.gmk Changeset: 6bb15a54 Branch: premain Author: David Holmes Date: 2025-09-07 20:21:23 +0000 URL: https://git.openjdk.org/leyden/commit/6bb15a542b0eb6a4b17cfd9da50a94781d0180eb 8367035: [BACKOUT] Protect ExecuteWithLog from running with redirection without a subshell Reviewed-by: kbarrett ! make/RunTests.gmk ! make/StaticLibs.gmk ! make/common/MakeBase.gmk ! make/common/ProcessMarkdown.gmk ! make/hotspot/gensrc/GensrcDtrace.gmk Changeset: 14a40fd5 Branch: premain Author: Sergey Bylokhov Date: 2025-09-07 23:18:07 +0000 URL: https://git.openjdk.org/leyden/commit/14a40fd579b087f061da086f5eb18230c379dce0 8361533: Apply java.io.Serial annotations in java.logging Reviewed-by: rriggs ! src/java.logging/share/classes/java/util/logging/LoggingPermission.java Changeset: 8a6b8751 Branch: premain Author: Francesco Andreuzzi Committer: Chen Liang Date: 2025-09-07 23:20:22 +0000 URL: https://git.openjdk.org/leyden/commit/8a6b8751e1a8ad93646bf3900186802c863d7119 8354871: Replace stack map frame type magics with constants Reviewed-by: liach ! src/java.base/share/classes/java/lang/classfile/attribute/StackMapFrameInfo.java ! src/java.base/share/classes/jdk/internal/classfile/impl/CodeImpl.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java ! src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/ParserVerifier.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationTable.java ! src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationType.java Changeset: b0ca9bf6 Branch: premain Author: Jan Lahoda Date: 2025-09-08 04:35:05 +0000 URL: https://git.openjdk.org/leyden/commit/b0ca9bf61e0390a3b022a0915eacabb0cfd92e93 8365776: Convert JShell tests to use JUnit instead of TestNG Reviewed-by: vromero ! test/langtools/jdk/jshell/AbstractStopExecutionTest.java ! test/langtools/jdk/jshell/AnalysisTest.java ! test/langtools/jdk/jshell/AnalyzeSnippetTest.java ! test/langtools/jdk/jshell/BadExecutionControlSpecTest.java ! test/langtools/jdk/jshell/ClassMembersTest.java ! test/langtools/jdk/jshell/ClassPathTest.java ! test/langtools/jdk/jshell/ClassesTest.java ! test/langtools/jdk/jshell/CommandCompletionTest.java ! test/langtools/jdk/jshell/CompilerOptionsTest.java ! test/langtools/jdk/jshell/CompletenessStressTest.java ! test/langtools/jdk/jshell/CompletenessTest.java ! test/langtools/jdk/jshell/CompletionSuggestionTest.java ! test/langtools/jdk/jshell/ComputeFQNsTest.java ! test/langtools/jdk/jshell/ConsoleTest.java ! test/langtools/jdk/jshell/ConsoleToolTest.java ! test/langtools/jdk/jshell/CustomInputToolBuilder.java ! test/langtools/jdk/jshell/DropTest.java ! test/langtools/jdk/jshell/EditorTestBase.java ! test/langtools/jdk/jshell/EmptyTest.java ! test/langtools/jdk/jshell/ErrorRecoveryTest.java ! test/langtools/jdk/jshell/ErrorTranslationTest.java ! test/langtools/jdk/jshell/ExceptionMessageTest.java ! test/langtools/jdk/jshell/ExceptionsTest.java ! test/langtools/jdk/jshell/ExecutionControlSpecTest.java ! test/langtools/jdk/jshell/ExecutionControlTestBase.java ! test/langtools/jdk/jshell/ExpectedDiagnostic.java ! test/langtools/jdk/jshell/ExternalEditorTest.java ! test/langtools/jdk/jshell/FailOverDirectExecutionControlTest.java ! test/langtools/jdk/jshell/FailOverExecutionControlDyingLaunchTest.java ! test/langtools/jdk/jshell/FailOverExecutionControlHangingLaunchTest.java ! test/langtools/jdk/jshell/FailOverExecutionControlHangingListenTest.java ! test/langtools/jdk/jshell/FailOverExecutionControlTest.java ! test/langtools/jdk/jshell/FileManagerTest.java ! test/langtools/jdk/jshell/ForwardReferenceImportTest.java ! test/langtools/jdk/jshell/ForwardReferenceTest.java ! test/langtools/jdk/jshell/GetResourceTest.java ! test/langtools/jdk/jshell/HighlightUITest.java ! test/langtools/jdk/jshell/HistoryTest.java ! test/langtools/jdk/jshell/HistoryUITest.java ! test/langtools/jdk/jshell/IOTest.java ! test/langtools/jdk/jshell/IdGeneratorTest.java ! test/langtools/jdk/jshell/IgnoreTest.java ! test/langtools/jdk/jshell/IllegalArgumentExceptionTest.java ! test/langtools/jdk/jshell/ImportTest.java ! test/langtools/jdk/jshell/InaccessibleExpressionTest.java ! test/langtools/jdk/jshell/IndentUITest.java ! test/langtools/jdk/jshell/InferTypeTest.java ! test/langtools/jdk/jshell/InputUITest.java ! test/langtools/jdk/jshell/JLCollisionTest.java ! test/langtools/jdk/jshell/JShellQueryTest.java ! test/langtools/jdk/jshell/JShellStateClosedTest.java ! test/langtools/jdk/jshell/JavadocTest.java ! test/langtools/jdk/jshell/JdiBadOptionLaunchExecutionControlTest.java ! test/langtools/jdk/jshell/JdiBadOptionListenExecutionControlTest.java ! test/langtools/jdk/jshell/JdiBogusHostListenExecutionControlTest.java ! test/langtools/jdk/jshell/JdiFailingLaunchExecutionControlTest.java ! test/langtools/jdk/jshell/JdiFailingListenExecutionControlTest.java ! test/langtools/jdk/jshell/JdiHangingLaunchExecutionControlTest.java ! test/langtools/jdk/jshell/JdiHangingListenExecutionControlTest.java ! test/langtools/jdk/jshell/JdiLaunchingExecutionControlTest.java ! test/langtools/jdk/jshell/JdiListeningExecutionControlTest.java ! test/langtools/jdk/jshell/JdiListeningLocalhostExecutionControlTest.java ! test/langtools/jdk/jshell/JdiStarterTest.java ! test/langtools/jdk/jshell/KullaCompletenessStressTest.java ! test/langtools/jdk/jshell/KullaTesting.java ! test/langtools/jdk/jshell/LocalExecutionClassPathTest.java ! test/langtools/jdk/jshell/LocalExecutionContextLoaderParentTest.java ! test/langtools/jdk/jshell/LocalExecutionTestSupport.java ! test/langtools/jdk/jshell/LocalStopExecutionTest.java ! test/langtools/jdk/jshell/MethodsTest.java ! test/langtools/jdk/jshell/ModifiersTest.java ! test/langtools/jdk/jshell/MultipleDocumentationTest.java ! test/langtools/jdk/jshell/MyExecutionControl.java ! test/langtools/jdk/jshell/NullTest.java ! test/langtools/jdk/jshell/PasteAndMeasurementsUITest.java ! test/langtools/jdk/jshell/PipeInputStreamTest.java ! test/langtools/jdk/jshell/PrimitiveInstanceOfTest.java ! test/langtools/jdk/jshell/RecordsTest.java ! test/langtools/jdk/jshell/RejectedFailedTest.java ! test/langtools/jdk/jshell/ReplToolTesting.java ! test/langtools/jdk/jshell/ReplaceTest.java ! test/langtools/jdk/jshell/SealedClassesTest.java ! test/langtools/jdk/jshell/ShutdownTest.java ! test/langtools/jdk/jshell/SimpleRegressionTest.java ! test/langtools/jdk/jshell/SnippetEventToStringTest.java ! test/langtools/jdk/jshell/SnippetHighlightTest.java ! test/langtools/jdk/jshell/SnippetStatusListenerTest.java ! test/langtools/jdk/jshell/SnippetTest.java ! test/langtools/jdk/jshell/SourceLevelTest.java ! test/langtools/jdk/jshell/StartOptionTest.java ! test/langtools/jdk/jshell/StartupWithFormatSpecifierTest.java ! test/langtools/jdk/jshell/StopExecutionTest.java ! test/langtools/jdk/jshell/T8146368/JShellTest8146368.java ! test/langtools/jdk/jshell/T8146368/JShellToolTest8146368.java ! test/langtools/jdk/jshell/Test8294583.java ! test/langtools/jdk/jshell/Test8296012.java ! test/langtools/jdk/jshell/ToolBasicTest.java ! test/langtools/jdk/jshell/ToolCommandOptionTest.java ! test/langtools/jdk/jshell/ToolCompletionTest.java ! test/langtools/jdk/jshell/ToolEnableNativeAccessTest.java ! test/langtools/jdk/jshell/ToolEnablePreviewTest.java ! test/langtools/jdk/jshell/ToolFormatTest.java ! test/langtools/jdk/jshell/ToolLocalSimpleTest.java ! test/langtools/jdk/jshell/ToolLocaleMessageTest.java ! test/langtools/jdk/jshell/ToolMultilineSnippetHistoryTest.java ! test/langtools/jdk/jshell/ToolProviderTest.java ! test/langtools/jdk/jshell/ToolReloadTest.java ! test/langtools/jdk/jshell/ToolRetainTest.java ! test/langtools/jdk/jshell/ToolShiftTabTest.java ! test/langtools/jdk/jshell/ToolSimpleTest.java ! test/langtools/jdk/jshell/ToolTabCommandTest.java ! test/langtools/jdk/jshell/ToolTabSnippetTest.java ! test/langtools/jdk/jshell/ToolingTest.java ! test/langtools/jdk/jshell/TypeNameTest.java ! test/langtools/jdk/jshell/UITesting.java ! test/langtools/jdk/jshell/UndefinedClassTest.java ! test/langtools/jdk/jshell/UnicodeTest.java ! test/langtools/jdk/jshell/UnnamedTest.java ! test/langtools/jdk/jshell/UserExecutionControlTest.java ! test/langtools/jdk/jshell/UserInputTest.java ! test/langtools/jdk/jshell/UserJdiUserRemoteTest.java ! test/langtools/jdk/jshell/VariablesTest.java ! test/langtools/jdk/jshell/WrapperTest.java Changeset: f9dc640e Branch: premain Author: Jan Lahoda Date: 2025-09-08 06:33:30 +0000 URL: https://git.openjdk.org/leyden/commit/f9dc640ef07ea5569b3581360041db2bb7e30c40 8351260: java.lang.AssertionError: Unexpected type tree: (ERROR) = (ERROR) Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! test/langtools/tools/javac/parser/JavacParserTest.java ! test/langtools/tools/javac/recovery/AttrRecovery.java Changeset: fb1924d2 Branch: premain Author: Joel Sikstr?m Date: 2025-09-08 06:33:49 +0000 URL: https://git.openjdk.org/leyden/commit/fb1924d2e34f77dc834094485dccb1751bc5b3b6 8366874: Test gc/arguments/TestParallelGCErgo.java fails with UseTransparentHugePages Reviewed-by: ayang, shade, stefank, tschatzl ! test/hotspot/jtreg/gc/arguments/TestParallelGCErgo.java Changeset: 051f39e1 Branch: premain Author: Francesco Andreuzzi Committer: David Holmes Date: 2025-09-08 07:10:12 +0000 URL: https://git.openjdk.org/leyden/commit/051f39e12ce8845d13c7d4813dabc556a834892d 8366864: Sort os/linux includes Reviewed-by: ayang, dholmes ! src/hotspot/os/linux/cgroupSubsystem_linux.cpp ! src/hotspot/os/linux/cgroupSubsystem_linux.hpp ! src/hotspot/os/linux/cgroupUtil_linux.cpp ! src/hotspot/os/linux/cgroupUtil_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/osContainer_linux.cpp ! src/hotspot/os/linux/osContainer_linux.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_linux.inline.hpp ! src/hotspot/os/linux/os_perf_linux.cpp ! src/hotspot/os/linux/waitBarrier_linux.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: bea2b029 Branch: premain Author: Richard Reingruber Date: 2025-09-08 08:30:03 +0000 URL: https://git.openjdk.org/leyden/commit/bea2b029a77e126171d17c3a44baec6d5cafed4a 8360219: [AIX] assert(locals_base >= l2) failed: bad placement Reviewed-by: dlong, mdoerr ! src/hotspot/cpu/ppc/abstractInterpreter_ppc.cpp Changeset: 5e423e03 Branch: premain Author: Guanqiang Han Committer: Julian Waters Date: 2025-09-08 09:37:36 +0000 URL: https://git.openjdk.org/leyden/commit/5e423e034f1f077ce9c17cfe9b0d838a4cf9365e 8367025: zIndexDistributor.hpp uses angle-bracket inclusion of globalDefinitions.hpp Reviewed-by: aboldtch, tschatzl, jwaters ! src/hotspot/share/gc/z/zIndexDistributor.hpp Changeset: a2726968 Branch: premain Author: Fredrik Bredberg Date: 2025-09-08 10:28:18 +0000 URL: https://git.openjdk.org/leyden/commit/a272696813f2e5e896ac9de9985246aaeb9d476c 8365190: Remove LockingMode related code from share Reviewed-by: aboldtch, dholmes, ayang, coleenp, lmesnik, rcastanedalo ! src/hotspot/cpu/zero/zeroInterpreter_zero.cpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/gc/g1/g1BarrierSet.inline.hpp ! src/hotspot/share/gc/g1/g1BarrierSetRuntime.cpp ! src/hotspot/share/gc/g1/g1HeapRegion.inline.hpp ! src/hotspot/share/gc/g1/g1SATBMarkQueueSet.cpp ! src/hotspot/share/gc/shared/cardTableBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/interpreter/zero/bytecodeInterpreter.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/oops/instanceStackChunkKlass.cpp ! src/hotspot/share/oops/markWord.cpp ! src/hotspot/share/oops/markWord.hpp ! src/hotspot/share/oops/oop.cpp ! src/hotspot/share/oops/oop.hpp ! src/hotspot/share/oops/stackChunkOop.inline.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/prims/jvmtiEnv.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/basicLock.cpp ! src/hotspot/share/runtime/basicLock.hpp ! src/hotspot/share/runtime/basicLock.inline.hpp ! src/hotspot/share/runtime/continuation.cpp ! src/hotspot/share/runtime/continuationFreezeThaw.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/javaCalls.cpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/lightweightSynchronizer.cpp ! src/hotspot/share/runtime/lockStack.cpp ! src/hotspot/share/runtime/objectMonitor.cpp ! src/hotspot/share/runtime/objectMonitor.hpp ! src/hotspot/share/runtime/objectMonitor.inline.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! src/hotspot/share/runtime/synchronizer.inline.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/runtime/threads.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/utilities/globalDefinitions.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/hotspot/share/utilities/vmError.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ObjectMonitor.java ! test/hotspot/gtest/runtime/test_lockStack.cpp ! test/hotspot/jtreg/runtime/locking/TestRecursiveMonitorChurn.java Changeset: 03c54d42 Branch: premain Author: Jan Lahoda Date: 2025-09-08 12:26:58 +0000 URL: https://git.openjdk.org/leyden/commit/03c54d4288dfd70190c3f306a44a8424f268f787 8365689: Elements.getFileObjectOf fails with a NullPointerException when an erroneous Element is passed in Reviewed-by: darcy, vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java ! test/langtools/tools/javac/processing/model/element/TestFileObjectOf.java Changeset: bcff857b Branch: premain Author: Volker Simonis Date: 2025-09-08 13:30:45 +0000 URL: https://git.openjdk.org/leyden/commit/bcff857ba09028cc43e856726b5c839cc6b1b0d9 8361381: GlyphLayout behavior differs on JDK 11+ compared to JDK 8 Reviewed-by: prr, serb ! src/java.desktop/share/classes/sun/font/ExtendedTextSourceLabel.java ! test/jdk/java/awt/font/GlyphVector/GetGlyphCharIndexTest.java + test/jdk/java/awt/font/LineBreakMeasurer/KhmerLineBreakTest.java Changeset: 166ef5e7 Branch: premain Author: Mikhail Yankelevich Committer: Weijun Wang Date: 2025-09-08 14:37:25 +0000 URL: https://git.openjdk.org/leyden/commit/166ef5e7b1c6d6a9f0f1f29fedb7f65b94f53119 8366159: SkippedException is treated as a pass for pkcs11/KeyStore, pkcs11/SecretKeyFactory and pkcs11/SecureRandom Reviewed-by: weijun ! test/jdk/sun/security/pkcs11/KeyStore/CertChainRemoval.java ! test/jdk/sun/security/pkcs11/KeyStore/ClientAuth.java ! test/jdk/sun/security/pkcs11/SecretKeyFactory/TestGeneral.java ! test/jdk/sun/security/pkcs11/SecureRandom/Basic.java ! test/jdk/sun/security/pkcs11/SecureRandom/TestDeserialization.java Changeset: 6765a9d7 Branch: premain Author: Coleen Phillimore Date: 2025-09-08 15:50:09 +0000 URL: https://git.openjdk.org/leyden/commit/6765a9d775b5bd3d1b36090038060762f976d174 8366908: Use a different class for testing JDK-8351654 Reviewed-by: liach, lmesnik ! test/hotspot/jtreg/runtime/verifier/CFLH/TestVerify.java Changeset: ab12fbfd Branch: premain Author: Fabio Romano Committer: Raffaello Giulietti Date: 2025-09-08 16:10:22 +0000 URL: https://git.openjdk.org/leyden/commit/ab12fbfda2c364bb16ddf03b923989639f437f6a 8077587: BigInteger Roots Reviewed-by: rgiulietti ! src/java.base/share/classes/java/math/BigInteger.java ! src/java.base/share/classes/java/math/MutableBigInteger.java ! test/jdk/java/math/BigInteger/BigIntegerTest.java Changeset: 48831c65 Branch: premain Author: Naoto Sato Date: 2025-09-08 16:23:26 +0000 URL: https://git.openjdk.org/leyden/commit/48831c65b5535fef706b64a4eb23ba28b1567ead 8367021: Regression in LocaleDataTest refactoring Reviewed-by: jlu, joehw ! test/jdk/sun/text/resources/LocaleDataTest.java Changeset: 323b0201 Branch: premain Author: Magnus Ihse Bursie Date: 2025-09-08 16:46:30 +0000 URL: https://git.openjdk.org/leyden/commit/323b02016e7458a0be39d52c9b0a5c61d579347e 8367034: [REDO] Protect ExecuteWithLog from running with redirection without a subshell Reviewed-by: erikj ! make/RunTests.gmk ! make/StaticLibs.gmk ! make/common/MakeBase.gmk ! make/common/ProcessMarkdown.gmk ! make/hotspot/gensrc/GensrcDtrace.gmk Changeset: 55af9d83 Branch: premain Author: Magnus Ihse Bursie Date: 2025-09-08 16:48:14 +0000 URL: https://git.openjdk.org/leyden/commit/55af9d83800930966776224bc4c7ff4ab1af9817 8366837: Clean up gensrc by spp.Spp Reviewed-by: erikj ! make/common/Utils.gmk + make/common/modules/GensrcStreamPreProcessing.gmk ! make/modules/java.base/Gensrc.gmk ! make/modules/java.base/gensrc/GensrcBuffer.gmk ! make/modules/java.base/gensrc/GensrcCharsetCoder.gmk ! make/modules/java.base/gensrc/GensrcScopedMemoryAccess.gmk ! make/modules/java.base/gensrc/GensrcVarHandles.gmk ! src/java.base/share/classes/java/nio/charset/Charset-X-Coder.java.template ! test/make/TestMakeBase.gmk Changeset: cb58e656 Branch: premain Author: Magnus Ihse Bursie Date: 2025-09-08 16:48:35 +0000 URL: https://git.openjdk.org/leyden/commit/cb58e6560a3b80655224cb79d52bfd0afa3cf262 8330341: Wrap call to MT in ExecuteWithLog Reviewed-by: erikj ! make/common/native/LinkMicrosoft.gmk Changeset: 85441cec Branch: premain Author: Albert Mingkun Yang Date: 2025-09-08 18:30:18 +0000 URL: https://git.openjdk.org/leyden/commit/85441cec3558f76ffa2a785c959397333503d556 8367101: Remove unused includes in cardTable.cpp Reviewed-by: stefank ! src/hotspot/share/gc/shared/cardTable.cpp Changeset: 3e68d7d9 Branch: premain Author: Albert Mingkun Yang Date: 2025-09-08 19:13:55 +0000 URL: https://git.openjdk.org/leyden/commit/3e68d7d99fcf3039395ba94234ecbebe8e98c754 8366881: Parallel: Obsolete HeapMaximumCompactionInterval Reviewed-by: iwalulya ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/parallel_globals.hpp ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psParallelCompact.hpp ! src/hotspot/share/runtime/arguments.cpp Changeset: 56e37352 Branch: premain Author: Erik Joelsson Date: 2025-09-08 20:52:31 +0000 URL: https://git.openjdk.org/leyden/commit/56e37352d5b0a749ccd150c36c9248e37d280eb6 8367130: JDK builds broken by 8366837: Clean up gensrc by spp.Spp Reviewed-by: liach ! make/modules/java.base/gensrc/GensrcVarHandles.gmk Changeset: 81a1e8e1 Branch: premain Author: Cesar Soares Lucas Date: 2025-09-08 21:44:18 +0000 URL: https://git.openjdk.org/leyden/commit/81a1e8e1363446de499a59fc706221efde12dd86 8364936: Shenandoah: Switch nmethod entry barriers to conc_instruction_and_data_patch Reviewed-by: fyang, dzhang, kdnilsen, wkemper ! src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/gc/shared/barrierSetNMethod_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/ppc/gc/shared/barrierSetAssembler_ppc.hpp ! src/hotspot/cpu/ppc/gc/shenandoah/shenandoahBarrierSetAssembler_ppc.hpp ! src/hotspot/cpu/riscv/gc/shared/barrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/gc/shared/barrierSetAssembler_riscv.hpp ! src/hotspot/cpu/riscv/gc/shared/barrierSetNMethod_riscv.cpp ! src/hotspot/cpu/riscv/gc/shenandoah/shenandoahBarrierSetAssembler_riscv.hpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/TestHotSpotVMConfig.java Changeset: 4ec63e8f Branch: premain Author: Chris Plummer Date: 2025-09-09 00:05:56 +0000 URL: https://git.openjdk.org/leyden/commit/4ec63e8f5d1768ea78d0bbf477d68bcf3c6f96b6 8366850: Test com/sun/jdi/JdbStopInNotificationThreadTest.java failed Reviewed-by: ayang, lmesnik, syan ! test/jdk/com/sun/jdi/JdbStopInNotificationThreadTest.java Changeset: 0aee7bf2 Branch: premain Author: Dingli Zhang Committer: Fei Yang Date: 2025-09-09 00:38:15 +0000 URL: https://git.openjdk.org/leyden/commit/0aee7bf24d7f2578d3867bcfa25646cb0bd06d9a 8367048: RISC-V: Correct pipeline descriptions of the architecture Reviewed-by: fyang, fjiang, mli ! src/hotspot/cpu/riscv/riscv.ad Changeset: 680bf758 Branch: premain Author: erifan Committer: Emanuel Peter Date: 2025-09-09 06:58:00 +0000 URL: https://git.openjdk.org/leyden/commit/680bf758980452511ea72224066358e5fd38f060 8365911: AArch64: Fix encoding error in sve_cpy for negative floats Reviewed-by: aph, epeter ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h Changeset: ecfba66d Branch: premain Author: Johan Sj?len Date: 2025-09-09 07:31:14 +0000 URL: https://git.openjdk.org/leyden/commit/ecfba66d3d7c1fef755f0824f342189d0f231007 8366363: MemBaseline accesses VMT without using lock Co-authored-by: Casper Norrbin Reviewed-by: azafari, cnorrbin ! src/hotspot/share/nmt/memBaseline.cpp ! src/hotspot/share/nmt/memBaseline.hpp ! src/hotspot/share/nmt/memReporter.cpp ! src/hotspot/share/nmt/nmtNativeCallStackStorage.cpp ! src/hotspot/share/nmt/nmtNativeCallStackStorage.hpp ! src/hotspot/share/nmt/regionsTree.cpp ! src/hotspot/share/nmt/regionsTree.hpp ! src/hotspot/share/nmt/vmatree.cpp ! src/hotspot/share/nmt/vmatree.hpp ! src/hotspot/share/utilities/rbTree.hpp ! src/hotspot/share/utilities/rbTree.inline.hpp ! test/hotspot/gtest/utilities/test_rbtree.cpp Changeset: 67bb22f3 Branch: premain Author: Francesco Andreuzzi Committer: David Holmes Date: 2025-09-09 07:36:57 +0000 URL: https://git.openjdk.org/leyden/commit/67bb22f3d661d7edf7a0949612d9fb64f0124cad 8367085: Sort os/posix includes Reviewed-by: ayang, dholmes ! src/hotspot/os/posix/attachListener_posix.cpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/posix/os_posix.inline.hpp ! src/hotspot/os/posix/perfMemory_posix.cpp ! src/hotspot/os/posix/safefetch_sigjmp.cpp ! src/hotspot/os/posix/semaphore_posix.cpp ! src/hotspot/os/posix/threadLocalStorage_posix.cpp ! test/hotspot/jtreg/sources/TestIncludesAreSorted.java Changeset: e16c5100 Branch: premain Author: Johan Sj?len Date: 2025-09-09 08:14:55 +0000 URL: https://git.openjdk.org/leyden/commit/e16c510071f84bdbd57a8b2d3810c484c314ccf9 8367231: [BACKOUT] JDK-8366363: MemBaseline accesses VMT without using lock Reviewed-by: kbarrett, dholmes ! src/hotspot/share/nmt/memBaseline.cpp ! src/hotspot/share/nmt/memBaseline.hpp ! src/hotspot/share/nmt/memReporter.cpp ! src/hotspot/share/nmt/nmtNativeCallStackStorage.cpp ! src/hotspot/share/nmt/nmtNativeCallStackStorage.hpp ! src/hotspot/share/nmt/regionsTree.cpp ! src/hotspot/share/nmt/regionsTree.hpp ! src/hotspot/share/nmt/vmatree.cpp ! src/hotspot/share/nmt/vmatree.hpp ! src/hotspot/share/utilities/rbTree.hpp ! src/hotspot/share/utilities/rbTree.inline.hpp ! test/hotspot/gtest/utilities/test_rbtree.cpp Changeset: cfb80934 Branch: premain Author: Paul H?bner Committer: David Holmes Date: 2025-09-09 09:01:46 +0000 URL: https://git.openjdk.org/leyden/commit/cfb809344c0205875b35991ce6807333df41c949 8364103: Convert existing sprintf-chains to stringStream Reviewed-by: kbarrett, dholmes, iklam ! src/hotspot/share/classfile/javaClasses.cpp Changeset: f51e442b Branch: premain Author: Hamlin Li Date: 2025-09-09 09:29:23 +0000 URL: https://git.openjdk.org/leyden/commit/f51e442b0e26d0e9ebb6ec0da9584ba4f548322c 8367098: RISC-V: sync CPU features with related JVM flags for dependant ones Reviewed-by: fyang ! src/hotspot/cpu/riscv/vm_version_riscv.hpp Changeset: 4fc917c2 Branch: premain Author: Johannes Bechberger Date: 2025-09-09 10:15:53 +0000 URL: https://git.openjdk.org/leyden/commit/4fc917c25005d1f88fe43069fe623e243bd022c3 8366486: Test jdk/jfr/event/profiling/TestCPUTimeSampleMultipleRecordings.java is timing out Reviewed-by: jbachorik ! test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleMultipleRecordings.java Changeset: 002f936e Branch: premain Author: Johannes Bechberger Date: 2025-09-09 10:16:22 +0000 URL: https://git.openjdk.org/leyden/commit/002f936ef21943ff1c8c03618091793768e756ac 8366082: Improve queue size computation in CPU-time sampler Reviewed-by: jbachorik ! src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.hpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampling.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.cpp ! src/hotspot/share/prims/whitebox.cpp + test/jdk/jdk/jfr/event/profiling/TestCPUTimeSampleQueueAutoSizes.java ! test/lib/jdk/test/whitebox/WhiteBox.java Changeset: a25dde62 Branch: premain Author: Magnus Ihse Bursie Date: 2025-09-09 10:58:21 +0000 URL: https://git.openjdk.org/leyden/commit/a25dde6279c100dcff266d19b263e764f5da244e 8365231: Don't build gtest with /EHsc Reviewed-by: kbarrett, stuefe ! make/hotspot/lib/CompileGtest.gmk Changeset: a1ab12b7 Branch: premain Author: Stefan Karlsson Date: 2025-09-09 11:17:33 +0000 URL: https://git.openjdk.org/leyden/commit/a1ab12b77266c7124a297e1b2e0a8608b8facb2a 8366854: Extend jtreg failure handler with THP info Reviewed-by: ayang, shade, tschatzl, lmesnik, sjohanss ! test/failure_handler/src/share/conf/linux.properties Changeset: 06326176 Branch: premain Author: Marc Chevalier Date: 2025-09-09 11:17:48 +0000 URL: https://git.openjdk.org/leyden/commit/0632617670f991da23c3892d357e8d1f051d29a0 8367135: Test compiler/loopstripmining/CheckLoopStripMining.java needs internal timeouts adjusted Reviewed-by: thartmann, chagedorn ! test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMining.java Changeset: f10c85fb Branch: premain Author: Saint Wesonga Committer: Roger Riggs Date: 2025-09-09 13:13:08 +0000 URL: https://git.openjdk.org/leyden/commit/f10c85fbc336f6908a4f1ecae9fb5ab52984f636 8367027: java/lang/ProcessBuilder/Basic.java fails on Windows AArch64 Reviewed-by: rriggs ! test/jdk/java/lang/ProcessBuilder/Basic.java Changeset: b653ae92 Branch: premain Author: Kim Barrett Date: 2025-09-09 15:02:54 +0000 URL: https://git.openjdk.org/leyden/commit/b653ae92d5941202780873fad1a7cefd51e4e7a8 8367051: Build failure with clang on linux and AIX after switch to C++17 Reviewed-by: dholmes, ayang, mbaesken, mdoerr ! src/hotspot/share/utilities/forbiddenFunctions.hpp Changeset: cc6d34b2 Branch: premain Author: Daniel Jeli?ski Date: 2025-09-09 15:08:30 +0000 URL: https://git.openjdk.org/leyden/commit/cc6d34b2fa299a68a05e65e25c1f41dffa67c118 8366971: C2: Remove unused nop_list from PhaseOutput::init_buffer Reviewed-by: epeter, dlong ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/share/adlc/adlparse.cpp ! src/hotspot/share/adlc/formsopt.cpp ! src/hotspot/share/adlc/formsopt.hpp ! src/hotspot/share/adlc/output_c.cpp ! src/hotspot/share/adlc/output_h.cpp ! src/hotspot/share/opto/output.cpp Changeset: a12e9fce Branch: premain Author: Naoto Sato Date: 2025-09-09 19:37:57 +0000 URL: https://git.openjdk.org/leyden/commit/a12e9fcebda1d7b75cb892e7920333d73fb5de9c 8366261: Provide utility methods for sun.security.util.Password Reviewed-by: smarks, weijun ! src/java.base/share/classes/java/io/Console.java ! src/java.base/share/classes/jdk/internal/access/JavaIOAccess.java ! src/java.base/share/classes/jdk/internal/io/JdkConsoleImpl.java ! src/java.base/unix/native/libjava/Console_md.c ! src/java.base/windows/native/libjava/Console_md.c ! test/jdk/java/io/Console/ModuleSelectionTest.java Changeset: 24a73493 Branch: premain Author: Justin Lu Date: 2025-09-09 22:03:25 +0000 URL: https://git.openjdk.org/leyden/commit/24a734938e555882857cf0b06ea693ec6f18085f 8366733: Re-examine older java.text NF, DF, and DFS serialization tests Reviewed-by: naoto ! test/jdk/java/text/Format/DecimalFormat/DFSSerializationTest.java = test/jdk/java/text/Format/DecimalFormat/DecimalFormat.114.txt = test/jdk/java/text/Format/DecimalFormat/DecimalFormatSymbols.114.txt = test/jdk/java/text/Format/DecimalFormat/DecimalFormatSymbols.142.txt = test/jdk/java/text/Format/DecimalFormat/NumberFormat4185761a.ser.txt = test/jdk/java/text/Format/DecimalFormat/NumberFormat4185761b.ser.txt ! test/jdk/java/text/Format/DecimalFormat/SerializationTest.java - test/jdk/java/text/Format/NumberFormat/DFSDeserialization142.java - test/jdk/java/text/Format/NumberFormat/DFSSerialization.java - test/jdk/java/text/Format/NumberFormat/DFSSerialization142.java ! test/jdk/java/text/Format/NumberFormat/NumberRegression.java - test/jdk/java/text/Format/NumberFormat/SerializationLoadTest.java - test/jdk/java/text/Format/NumberFormat/SerializationSaveTest.java Changeset: f9640398 Branch: premain Author: Dean Long Date: 2025-09-09 23:27:33 +0000 URL: https://git.openjdk.org/leyden/commit/f96403986b99008593e025c4991ee865fce59bb1 8361376: Regressions 1-6% in several Renaissance in 26-b4 only MacOSX aarch64 Co-authored-by: Martin Doerr Reviewed-by: mdoerr, aph, eosterlund ! src/hotspot/cpu/aarch64/gc/shared/barrierSetNMethod_aarch64.cpp ! src/hotspot/cpu/arm/gc/shared/barrierSetNMethod_arm.cpp ! src/hotspot/cpu/ppc/gc/shared/barrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/gc/shared/barrierSetNMethod_ppc.cpp ! src/hotspot/cpu/ppc/nativeInst_ppc.hpp ! src/hotspot/cpu/riscv/gc/shared/barrierSetNMethod_riscv.cpp ! src/hotspot/cpu/s390/gc/shared/barrierSetNMethod_s390.cpp ! src/hotspot/cpu/x86/gc/shared/barrierSetNMethod_x86.cpp ! src/hotspot/cpu/zero/gc/shared/barrierSetNMethod_zero.cpp ! src/hotspot/share/gc/shared/barrierSetNMethod.cpp ! src/hotspot/share/gc/shared/barrierSetNMethod.hpp ! src/hotspot/share/gc/z/zBarrierSetNMethod.cpp ! src/hotspot/share/gc/z/zBarrierSetNMethod.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp Changeset: 8cd4e7d8 Branch: premain Author: Leonid Mesnik Date: 2025-09-09 23:50:33 +0000 URL: https://git.openjdk.org/leyden/commit/8cd4e7d856dcc68243505f4e771dc8ab87176584 8365192: post_meth_exit should be in vm state when calling get_jvmti_thread_state Reviewed-by: mdoerr, dholmes ! src/hotspot/share/prims/jvmtiExport.cpp Changeset: 53b3e056 Branch: premain Author: erifan Committer: Xiaohong Gong Date: 2025-09-10 01:49:55 +0000 URL: https://git.openjdk.org/leyden/commit/53b3e0567d2801ddf62c5849b219324ddfcb264a 8366588: VectorAPI: Re-intrinsify VectorMask.laneIsSet where the input index is a variable Reviewed-by: shade, xgong, epeter ! src/hotspot/share/opto/vectorIntrinsics.cpp ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java + test/hotspot/jtreg/compiler/vectorapi/VectorMaskLaneIsSetTest.java ! test/micro/org/openjdk/bench/jdk/incubator/vector/VectorExtractBenchmark.java Changeset: af9b9050 Branch: premain Author: Kim Barrett Date: 2025-09-10 03:30:16 +0000 URL: https://git.openjdk.org/leyden/commit/af9b9050ec51d0c43690fc42658741bd865b0310 8366057: HotSpot Style Guide should permit trailing return types Reviewed-by: dholmes, stefank, kvn, adinn, jsjolen ! doc/hotspot-style.html ! doc/hotspot-style.md Changeset: 8ab8d02e Branch: premain Author: David Holmes Date: 2025-09-10 05:45:31 +0000 URL: https://git.openjdk.org/leyden/commit/8ab8d02e40e987a5eb5e8036ff4f12146ac2b16a 8366938: Test runtime/handshake/HandshakeTimeoutTest.java crashed Reviewed-by: kbarrett ! test/hotspot/jtreg/runtime/handshake/HandshakeTimeoutTest.java Changeset: 2705e880 Branch: premain Author: Disha Committer: Manukumar V S Date: 2025-09-10 06:16:12 +0000 URL: https://git.openjdk.org/leyden/commit/2705e880b64825044e67487f01263121780d8f7a 8366764: Deproblemlist java/awt/ScrollPane/ScrollPositionTest.java Reviewed-by: azvegint ! test/jdk/ProblemList.txt Changeset: b7b01d6f Branch: premain Author: Daniel Jeli?ski Date: 2025-09-10 06:16:39 +0000 URL: https://git.openjdk.org/leyden/commit/b7b01d6f564ae34e913ae51bd2f8243a32807136 8366984: Remove delay slot support Reviewed-by: dlong, epeter ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/share/adlc/adlparse.cpp ! src/hotspot/share/adlc/formsopt.cpp ! src/hotspot/share/adlc/formsopt.hpp ! src/hotspot/share/adlc/output_c.cpp ! src/hotspot/share/adlc/output_h.cpp ! src/hotspot/share/c1/c1_LIR.cpp ! src/hotspot/share/c1/c1_LIR.hpp ! src/hotspot/share/c1/c1_LIRAssembler.cpp ! src/hotspot/share/c1/c1_LIRAssembler.hpp ! src/hotspot/share/code/relocInfo.hpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp Changeset: 9e3fa321 Branch: premain Author: Kazuhisa Takakuri Committer: David Holmes Date: 2025-09-10 06:37:17 +0000 URL: https://git.openjdk.org/leyden/commit/9e3fa3216fd4ebd73da6e003a7b767cf001a1169 8349288: runtime/os/windows/TestAvailableProcessors.java fails on localized Windows platform Reviewed-by: dholmes, alanb ! test/hotspot/jtreg/runtime/os/windows/TestAvailableProcessors.java Changeset: f3de3862 Branch: premain Author: David Holmes Date: 2025-09-10 08:46:07 +0000 URL: https://git.openjdk.org/leyden/commit/f3de386263e16e33c2812706cf41410da2cd58c6 8367309: Test runtime/os/windows/TestAvailableProcessors.java fails to compile after mis-merge Reviewed-by: shade, alanb ! test/hotspot/jtreg/runtime/os/windows/TestAvailableProcessors.java Changeset: 1d3364b0 Branch: premain Author: Daniel Fuchs Date: 2025-09-10 09:45:05 +0000 URL: https://git.openjdk.org/leyden/commit/1d3364b00725f9d2afa8274e2244357a109be545 8365239: Spec Clarification - InterfaceAddress:getBroadcast() returning null for loop back address Reviewed-by: msheppar, djelinski, jpai ! src/java.base/share/classes/java/net/InterfaceAddress.java Changeset: 5c9f60dc Branch: premain Author: Magnus Ihse Bursie Date: 2025-09-10 09:57:44 +0000 URL: https://git.openjdk.org/leyden/commit/5c9f60dc5a6e64be55819469bbf10948803d0fd5 8367259: Clean up make/scripts and bin directory Reviewed-by: erikj + bin/generate-symbol-data.sh = bin/lic_check.sh = bin/normalizer.pl - bin/unshuffle_list.txt - bin/unshuffle_patch.sh = bin/update_copyright_year.sh = bin/update_pch.sh ! make/autoconf/compare.sh.template = make/scripts/compare-logger.sh - make/scripts/generate-symbol-data.sh - make/scripts/hide_important_warnings_from_javac.sh Changeset: 33244c82 Branch: premain Author: Magnus Ihse Bursie Date: 2025-09-10 10:00:15 +0000 URL: https://git.openjdk.org/leyden/commit/33244c82445994131a9168451275216916ce635c 8344030: Improved handling of TOOLCHAIN_PATH Reviewed-by: erikj ! make/autoconf/basic.m4 ! make/autoconf/basic_tools.m4 ! make/autoconf/build-performance.m4 ! make/autoconf/flags-ldflags.m4 ! make/autoconf/toolchain.m4 ! make/autoconf/util_paths.m4 Changeset: edae355e Branch: premain Author: Magnus Ihse Bursie Date: 2025-09-10 10:27:38 +0000 URL: https://git.openjdk.org/leyden/commit/edae355e95f23294eda092dbedcb7f6cf165b0f8 8246325: Add DRYRUN facility to SetupExecute Reviewed-by: erikj ! make/Bundles.gmk ! make/autoconf/spec.gmk.template ! make/common/Execute.gmk ! test/make/TestExecute.gmk Changeset: 4d4e51c4 Branch: premain Author: David Beaumont Committer: Daniel Fuchs Date: 2025-09-10 11:49:02 +0000 URL: https://git.openjdk.org/leyden/commit/4d4e51c41fed79427fb621fd9fcc8e5e23bfb287 8365483: Test sun/rmi/runtime/Log/6409194/NoConsoleOutput.java sometimes fails Reviewed-by: dfuchs, jpai ! src/java.logging/share/classes/java/util/logging/StreamHandler.java + test/jdk/java/util/logging/StreamHandlerRacyCloseTest.java Changeset: 703d930e Branch: premain Author: Stefan Karlsson Date: 2025-09-10 11:55:31 +0000 URL: https://git.openjdk.org/leyden/commit/703d930e4d52a6f9741cf9affee8caade550e67b 8366980: TestTransparentHugePagesHeap.java fails when run with -UseCompressedOops Reviewed-by: aboldtch, tschatzl ! test/hotspot/jtreg/gc/TestTransparentHugePagesHeap.java Changeset: 46ae1ee8 Branch: premain Author: Evgeny Astigeevich Date: 2025-09-10 12:33:06 +0000 URL: https://git.openjdk.org/leyden/commit/46ae1ee87152742082e6047d0556944d7ae4567d 8277444: Data race between JvmtiClassFileReconstituter::copy_bytecodes and class linking Reviewed-by: dholmes, amenkov, coleenp ! src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp ! src/hotspot/share/prims/jvmtiEnv.cpp + test/jdk/java/lang/instrument/RetransformBigClassTest.java Changeset: 385c1329 Branch: premain Author: Albert Mingkun Yang Date: 2025-09-10 12:49:38 +0000 URL: https://git.openjdk.org/leyden/commit/385c13298932f1de16e6161652be35d966d822ec 8367240: Parallel: Refactor PSScavengeCLDClosure Reviewed-by: stefank ! src/hotspot/share/gc/parallel/psClosure.inline.hpp Changeset: c968a672 Branch: premain Author: Casper Norrbin Date: 2025-09-10 13:45:06 +0000 URL: https://git.openjdk.org/leyden/commit/c968a672c034fe533ea5f4ac5efe37ffb76c93e2 8362282: runtime/logging/StressAsyncUL.java failed with exitValue = 134 Reviewed-by: jsjolen, dholmes ! src/hotspot/share/logging/logAsyncWriter.cpp Changeset: 5cd7721a Branch: premain Author: Kerem Kat Committer: Kevin Walls Date: 2025-09-10 14:36:11 +0000 URL: https://git.openjdk.org/leyden/commit/5cd7721ad448cc4bdac37b0456252335f6b9d9f5 8366154: Validate thread type requirements in debug commands Reviewed-by: dholmes, simonis, kevinw ! src/hotspot/share/utilities/debug.cpp Changeset: 34c3ac03 Branch: premain Author: Prasanta Sadhukhan Date: 2025-09-10 16:00:28 +0000 URL: https://git.openjdk.org/leyden/commit/34c3ac0316dbd29ae670db51bd9230a1e77382d9 8162380: [TEST_BUG] MouseEvent/.../AltGraphModifierTest.java has only "Fail" button Reviewed-by: azvegint, aivanov ! test/jdk/ProblemList.txt ! test/jdk/java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java Changeset: af18ff8d Branch: premain Author: Hannes Walln?fer Date: 2025-09-10 16:43:40 +0000 URL: https://git.openjdk.org/leyden/commit/af18ff8d7c8fdd6437304839caa2e49eb34b6caa 8367007: javadoc generation of JavaFX docs fails after fix for JDK-8350920 Reviewed-by: liach, nbenalla ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/PropertyUtils.java ! test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java = test/langtools/jdk/javadoc/doclet/testJavaFX/pkg1/B.java Changeset: 7a3025e3 Branch: premain Author: Weijun Wang Date: 2025-09-10 17:24:53 +0000 URL: https://git.openjdk.org/leyden/commit/7a3025e3d7d33ed02db34c1485aa3c7b44b2d8ee 8367348: Enhance PassFailJFrame to support links in HTML Reviewed-by: aivanov ! test/jdk/java/awt/regtesthelpers/PassFailJFrame.java Changeset: 4e2a85f7 Branch: premain Author: Man Cao Date: 2025-09-10 17:42:15 +0000 URL: https://git.openjdk.org/leyden/commit/4e2a85f7500876d65c36aeaf54f5361a1549e7f5 8366118: DontCompileHugeMethods is not respected with -XX:-TieredCompilation Co-authored-by: Chuck Rasbold Co-authored-by: Justin King Reviewed-by: rasbold, iveresov, jiangli ! src/hotspot/share/compiler/compilationPolicy.cpp + test/hotspot/jtreg/compiler/runtime/TestDontCompileHugeMethods.java Changeset: fdc11a15 Branch: premain Author: Sergey Bylokhov Date: 2025-09-10 18:41:42 +0000 URL: https://git.openjdk.org/leyden/commit/fdc11a1569248c9b671b66d547b4616aeb953ecf 8367131: Test com/sun/jdi/ThreadMemoryLeakTest.java fails on 32 bits Reviewed-by: lmesnik, cjplummer, shade ! test/jdk/com/sun/jdi/ThreadMemoryLeakTest.java Changeset: 85715e10 Branch: premain Author: Ioi Lam Date: 2025-09-10 19:21:00 +0000 URL: https://git.openjdk.org/leyden/commit/85715e1050fa774c3267dbbe2f749717aeeec8ff 8317269: Store old classes in linked state in AOT cache Reviewed-by: coleenp, matsaave ! src/hotspot/share/cds/aotMetaspace.cpp ! src/hotspot/share/cds/aotMetaspace.hpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/cdsConfig.hpp ! src/hotspot/share/cds/dumpTimeClassInfo.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.hpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/lambdaProxyClassDictionary.cpp ! src/hotspot/share/cds/runTimeClassInfo.cpp ! src/hotspot/share/cds/runTimeClassInfo.hpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/methodData.cpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/mutexLocker.cpp ! test/hotspot/jtreg/TEST.groups ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/ExcludedClasses.java + test/hotspot/jtreg/runtime/cds/appcds/aotCache/OldA.jasm + test/hotspot/jtreg/runtime/cds/appcds/aotCache/OldClassSupport.java + test/hotspot/jtreg/runtime/cds/appcds/aotCache/OldClassWithExcludedVerifierConstraints.jasm + test/hotspot/jtreg/runtime/cds/appcds/aotCache/OldClassWithVerifierConstraints.jasm + test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/AOTClassLinkingVerification.java = test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/BadNewClass.jasm + test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/BadNewClass2.jasm + test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/BadNewClass3.jasm + test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/BadNewClass4.jasm = test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/BadOldClass.jasm + test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/BadOldClass2.jasm + test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/BadOldClass3.jasm + test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/BadOldClass4.jasm ! test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/BulkLoaderTest.java + test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/GoodOldClass.jasm Changeset: 5979abcc Branch: premain Author: Ioi Lam Date: 2025-09-10 13:10:12 +0000 URL: https://git.openjdk.org/leyden/commit/5979abcc1c9e2c5b9547bb899eafc6745eee5e95 Merge master 09-10-25 ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/cds/aotMetaspace.cpp ! src/hotspot/share/cds/aotMetaspace.hpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/cdsConfig.hpp ! src/hotspot/share/cds/dumpTimeClassInfo.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.hpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/code/relocInfo.hpp ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/gc/shared/barrierSetNMethod.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/opto/parse1.cpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/runtime/threads.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/utilities/ostream.cpp ! src/hotspot/share/utilities/vmError.cpp ! src/java.base/share/classes/java/lang/System.java ! test/hotspot/jtreg/TEST.groups ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/TestHotSpotVMConfig.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/ExcludedClasses.java ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/cds/aotMetaspace.cpp ! src/hotspot/share/cds/aotMetaspace.hpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/cdsConfig.hpp ! src/hotspot/share/cds/dumpTimeClassInfo.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.hpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/code/relocInfo.hpp ! src/hotspot/share/compiler/compilationPolicy.cpp ! src/hotspot/share/gc/shared/barrierSetNMethod.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/opto/parse1.cpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/runtime/threads.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/utilities/ostream.cpp ! src/hotspot/share/utilities/vmError.cpp ! src/java.base/share/classes/java/lang/System.java ! test/hotspot/jtreg/TEST.groups ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/TestHotSpotVMConfig.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCache/ExcludedClasses.java Changeset: c3aa552d Branch: premain Author: Ioi Lam Date: 2025-09-10 14:54:41 +0000 URL: https://git.openjdk.org/leyden/commit/c3aa552d2e773ff403b8ab90521b8c064d736419 Fixed merge ! src/hotspot/share/cds/dumpTimeClassInfo.cpp ! src/hotspot/share/cds/dumpTimeClassInfo.hpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/oops/instanceKlass.cpp Changeset: f2a6dba8 Branch: premain Author: Ioi Lam Date: 2025-09-22 20:22:15 +0000 URL: https://git.openjdk.org/leyden/commit/f2a6dba81776672968009478cb8d748fc7ebdd10 Fix for macosx build crash by @vnkozlov; see https://mail.openjdk.org/pipermail/leyden-dev/2025-September/002681.html ! src/hotspot/share/gc/shared/barrierSetNMethod.cpp Changeset: 46c508ee Branch: premain Author: Ioi Lam Date: 2025-09-22 20:27:00 +0000 URL: https://git.openjdk.org/leyden/commit/46c508ee79d55b6690a7d9f73ffa356b146ff022 Merge with latest leyden/premain ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/runtime/vmStructs.cpp Changeset: 4039c111 Branch: premain Author: Ioi Lam Date: 2025-09-22 22:31:29 +0000 URL: https://git.openjdk.org/leyden/commit/4039c11189807b7dc5b7fe17ceecd9c44234f12a Merge with latest leyden/premain ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/oops/trainingData.cpp From ioi.lam at oracle.com Tue Sep 23 05:56:32 2025 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Mon, 22 Sep 2025 22:56:32 -0700 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> <12ff5eaf-550d-4cfa-9aa6-b3b5aa91e30a@oracle.com> <5eb93354-e03a-4198-a356-8c0f674a0430@littlepinkcloud.com> <76abc39b-66a7-49b3-8e78-68bd0031dfb9@littlepinkcloud.com> <863f2439-3df7-4212-9b73-ea41facd435e@oracle.com> <125700ba-2c75-4c1a-b896-8cdf9fc8f254@oracle.com> Message-ID: <6dd69a82-20e8-4fd1-b14b-2a30002b6bfb@oracle.com> Thanks Vladimir for the patch. It fixes the crash. I have now merged up to https://github.com/openjdk/jdk/commit/85715e1050fa774c3267dbbe2f749717aeeec8ff (about 2 weeks old) into premain. - Ioi On 9/22/25 1:08 PM, Vladimir Kozlov wrote: > JDK-8361376 removed WXWrite from > BarrierSetNMethod::nmethod_stub_entry_barrier() because it does not > modify nmethod directly in mainline. In leyden repo we do modify it. > > Putting it back to leyden code solved the issue: > > src/hotspot/share/gc/shared/barrierSetNMethod.cpp > @@ -205,6 +205,7 @@ int > BarrierSetNMethod::nmethod_stub_entry_barrier(address* > return_address_ptr) { > ?? } > > ?? if (may_enter) { > +??? MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXWrite, Thread::current())); > ???? nm->set_used(); > ?? } else { > ???? log_trace(nmethod, barrier)("Deoptimizing nmethod: " PTR_FORMAT, > p2i(nm)); > > Vladimir K > > On 9/22/25 10:35 AM, Vladimir Kozlov wrote: >> Before you jump on it. Let me investigate this first to get more >> details. >> >> I am working on merge of latest mainline into leyden repo. >> >> Vladimir K >> >> On 9/22/25 12:37 AM, Andrew Haley wrote: >>> On 22/09/2025 01:04, ioi.lam at oracle.com wrote: >>>> Hi Andrew, do you know why we are seeing the crash in leyden but >>>> not in >>>> mainline? >>> >>> No. If you let me have your merged tree I'll have a look. >>> >> > From aph-open at littlepinkcloud.com Tue Sep 23 08:24:36 2025 From: aph-open at littlepinkcloud.com (Andrew Haley) Date: Tue, 23 Sep 2025 09:24:36 +0100 Subject: Crash on macosx-aarch64 when merging Leyden premain with mainline In-Reply-To: References: <0d15b6df-5f46-4893-9111-789f18da519d@oracle.com> <12ff5eaf-550d-4cfa-9aa6-b3b5aa91e30a@oracle.com> <5eb93354-e03a-4198-a356-8c0f674a0430@littlepinkcloud.com> <76abc39b-66a7-49b3-8e78-68bd0031dfb9@littlepinkcloud.com> <863f2439-3df7-4212-9b73-ea41facd435e@oracle.com> <125700ba-2c75-4c1a-b896-8cdf9fc8f254@oracle.com> Message-ID: <6f9058b1-b1ec-4321-85cd-5c8e23645b62@littlepinkcloud.com> On 22/09/2025 21:08, Vladimir Kozlov wrote: > JDK-8361376 removed WXWrite from > BarrierSetNMethod::nmethod_stub_entry_barrier() because it does not > modify nmethod directly in mainline. In leyden repo we do modify it. Aha! I knew it had to be something like that, but I couldn't figure out what had changed. -- Andrew Haley (he/him) Java Platform Lead Engineer https://keybase.io/andrewhaley EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671 From shade at openjdk.org Tue Sep 23 11:49:24 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 23 Sep 2025 11:49:24 GMT Subject: RFR: 8366681: [leyden] Precompile more C1 code [v4] In-Reply-To: References: Message-ID: <8zVxGsvijHeNx75mmBgxFo12tpQwN7Pzp3YKOZO5twg=.e869c98d-7f37-41f3-9768-65446da4c372@github.com> On Wed, 17 Sep 2025 10:37:37 GMT, Aleksey Shipilev wrote: >> Looking at how code goes through AOT+JIT pipeline, I believe we have several issues in the way we include the methods for precompilation. >> >> 1. AP4 code gets replaced by more efficient A4 code, which can then deopt. Once it does, we go back to the fully normal JIT pipeline, with C1 compiling, C2 compiling, etc. Training run currently does A2 versions only when there is a tier2/3 training data present. We can pessimistically assume that A4/AP4 method should have A2 method generated for the sake of quicker deopt. >> >> 2. I suspect a similar thing, but rarer, happens with A4 -> ... -> T1 transition when compiler queues are overloaded. We can generate A1 method for this case. >> >> 3. When training is done with default configuration, but at runtime we enable only C1, we summarily miss almost *all* AOT methods, because A1 methods are rarely generated with a normal tiered policy. Generating A1 methods always would be convenient for hybrid C2 AOT + C1 JIT modes as well. >> >> Overall, I think generating more C1 methods even when C2 methods are present in training is beneficial, as we prepare the ground for whatever corner case happens at runtime. Benchmarks show this improves performance model quite a bit. >> >> Since we now look at methods at all different tiers when deciding to precompile, compile IDs are not working all that well. I have rewritten that to use counters and method sizes. This seems to work well in practice. >> >> Additional testing: >> - [x] `javac` performance tests (see comments) >> - [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 four additional commits since the last revision: > > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Merge branch 'premain' into JDK-8366681-precompile-more-c1 > - Fix Re-measured after https://github.com/openjdk/leyden/pull/97 integration: some performance improvement is _still there_, but I attribute it to better precompilation policy code. I will PR those improvements separately. ------------- PR Comment: https://git.openjdk.org/leyden/pull/93#issuecomment-3323662591 From shade at openjdk.org Tue Sep 23 11:49:25 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 23 Sep 2025 11:49:25 GMT Subject: Withdrawn: 8366681: [leyden] Precompile more C1 code In-Reply-To: References: Message-ID: On Tue, 2 Sep 2025 10:29:33 GMT, Aleksey Shipilev wrote: > Looking at how code goes through AOT+JIT pipeline, I believe we have several issues in the way we include the methods for precompilation. > > 1. AP4 code gets replaced by more efficient A4 code, which can then deopt. Once it does, we go back to the fully normal JIT pipeline, with C1 compiling, C2 compiling, etc. Training run currently does A2 versions only when there is a tier2/3 training data present. We can pessimistically assume that A4/AP4 method should have A2 method generated for the sake of quicker deopt. > > 2. I suspect a similar thing, but rarer, happens with A4 -> ... -> T1 transition when compiler queues are overloaded. We can generate A1 method for this case. > > 3. When training is done with default configuration, but at runtime we enable only C1, we summarily miss almost *all* AOT methods, because A1 methods are rarely generated with a normal tiered policy. Generating A1 methods always would be convenient for hybrid C2 AOT + C1 JIT modes as well. > > Overall, I think generating more C1 methods even when C2 methods are present in training is beneficial, as we prepare the ground for whatever corner case happens at runtime. Benchmarks show this improves performance model quite a bit. > > Since we now look at methods at all different tiers when deciding to precompile, compile IDs are not working all that well. I have rewritten that to use counters and method sizes. This seems to work well in practice. > > Additional testing: > - [x] `javac` performance tests (see comments) > - [x] Linux x86_64 server fastdebug, `runtime/cds` This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/leyden/pull/93 From shade at openjdk.org Tue Sep 23 12:39:59 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 23 Sep 2025 12:39:59 GMT Subject: RFR: 8368465: [leyden] Improve precompiler method selection code Message-ID: Forked from [JDK-8366681](https://bugs.openjdk.org/browse/JDK-8366681): there are still some cleanups/performance improvements possible. Current selection code is a bit hairy, and turns out the changes I made for previous patch improve performance. Notable improvements: 1. Push the compilation level filters downwards. This allows compiling A2 from T2/T3 code more easily, and allows to implement policies for compiling on any A* level based on observing top-compiled T* levels. 2. Sort methods by hotness and code size. This avoids a fairly awkward path to get compile IDs, ditching which _I suspect_ is the cause for performance improvement. With new code, we compile a tad more A2 code. I have not digged through why current code accepts fewer methods for compilation. New code improves performance everywhere, so I suggest we just accept that and move on. Additional testing: - [x] Performance tests (see comments) - [x] Linux x86_64 server fastdebug, `runtime/cds` ------------- Commit messages: - Fix Changes: https://git.openjdk.org/leyden/pull/99/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=99&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8368465 Stats: 116 lines in 4 files changed: 59 ins; 27 del; 30 mod Patch: https://git.openjdk.org/leyden/pull/99.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/99/head:pull/99 PR: https://git.openjdk.org/leyden/pull/99 From shade at openjdk.org Tue Sep 23 12:40:00 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 23 Sep 2025 12:40:00 GMT Subject: RFR: 8368465: [leyden] Improve precompiler method selection code In-Reply-To: References: Message-ID: <6Q-B0JnPLsjsXHWFtJiHFe2WHfQ3viptaTJpmMsZx9w=.62761e52-e8d5-47d9-9ef4-5d1ddb8049d8@github.com> On Tue, 23 Sep 2025 12:33:23 GMT, Aleksey Shipilev wrote: > Forked from [JDK-8366681](https://bugs.openjdk.org/browse/JDK-8366681): there are still some cleanups/performance improvements possible. Current selection code is a bit hairy, and turns out the changes I made for previous patch improve performance. > > Notable improvements: > 1. Push the compilation level filters downwards. This allows compiling A2 from T2/T3 code more easily, and allows to implement policies for compiling on any A* level based on observing top-compiled T* levels. > 2. Sort methods by hotness and code size. This avoids a fairly awkward path to get compile IDs, ditching which _I suspect_ is the cause for performance improvement. With new code, we compile a tad more A2 code. I have not digged through why current code accepts fewer methods for compilation. New code improves performance everywhere, so I suggest we just accept that and move on. > > Additional testing: > - [x] Performance tests (see comments) > - [x] Linux x86_64 server fastdebug, `runtime/cds` javac test (1000 iterations trained, 50 iterations production) # --- Before 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 Time (mean ? ?): 350.4 ms ? 4.9 ms [User: 683.2 ms, System: 104.5 ms] Range (min ? max): 343.8 ms ? 359.8 ms 10 runs Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC -cp JavacBenchApp.jar -XX:+UnlockExperimentalVMOptions -XX:+PreloadOnly -XX:AOTCache=app.aot JavacBenchApp 50 Time (mean ? ?): 481.2 ms ? 3.4 ms [User: 475.0 ms, System: 55.8 ms] Range (min ? max): 477.0 ms ? 487.9 ms 10 runs # --- After 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 Time (mean ? ?): 344.0 ms ? 2.0 ms [User: 445.7 ms, System: 82.1 ms] Range (min ? max): 342.0 ms ? 348.2 ms 10 runs Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC -cp JavacBenchApp.jar -XX:+UnlockExperimentalVMOptions -XX:+PreloadOnly -XX:AOTCache=app.aot JavacBenchApp 50 Time (mean ? ?): 489.9 ms ? 1.7 ms [User: 481.2 ms, System: 58.6 ms] Range (min ? max): 487.2 ms ? 492.8 ms 10 runs `user` time significantly improves, I believe this is due to more `A2` code being used from the archive rather than being compiled on the fly. Larger benchmarks all improve with 1-core tests. quarkus-getting-started: Run,Old CDS + AOT,New CDS + AOT 1,301,284 2,309,278 3,299,290 4,307,280 5,300,280 6,304,293 7,298,283 8,308,301 9,319,284 10,307,288 Geomean,305.14,286.02 (1.07x improvement) Stdev,5.96,6.69 helidon-quickstart-se Run,Old CDS + AOT,New CDS + AOT 1,200,197 2,228,199 3,211,198 4,218,200 5,214,201 6,221,200 7,214,207 8,220,200 9,211,197 10,222,199 Geomean,215.77,199.78 (1.08x improvement) Stdev,7.34,2.71 micronaut-first-app Run,Old CDS + AOT,New CDS + AOT 1,256,224 2,250,239 3,259,232 4,264,240 5,252,225 6,250,236 7,248,234 8,265,244 9,246,231 10,265,234 Geomean,255.41,233.82 (1.09x improvement) Stdev,6.96,5.99 spring-boot-getting-started: Run,Old CDS + AOT,New CDS + AOT 1,567,567 2,581,557 3,581,564 4,575,560 5,571,540 6,571,548 7,575,557 8,575,553 9,568,543 10,571,552 Geomean,573.48,554.04 (1.04x improvement) Stdev,4.59,8.25 spring-petclinic: Run,Old CDS + AOT,New CDS + AOT 1,3440,3384 2,3375,3391 3,3367,3379 4,3371,3375 5,3444,3378 6,3391,3399 7,3403,3371 8,3391,3378 9,3454,3391 10,3409,3374 Geomean,3404.37,3381.99 (1.01x improvement) Stdev,30.09,8.54 ------------- PR Comment: https://git.openjdk.org/leyden/pull/99#issuecomment-3323828350 PR Comment: https://git.openjdk.org/leyden/pull/99#issuecomment-3323832493 From headius at headius.com Tue Sep 23 15:30:21 2025 From: headius at headius.com (Charles Oliver Nutter) Date: Tue, 23 Sep 2025 10:30:21 -0500 Subject: EA2 macos build "damaged and can't be opened" Message-ID: The EA2 builds for macos aarch64 available at https://jdk.java.net/leyden/ do not appear to be usable on my system running "Sequoia" v15.6.1. The dialog that pops up says: ``` "jdk26.jdk" is damaged and can't be opened. You should move it to the trash ``` I can build it myself if necessary, but this will hinder others wanting to try the AOT code caching on macos. *Charles Oliver Nutter* *Architect and Technologist* Headius Enterprises https://www.headius.com headius at headius.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From vladimir.kozlov at oracle.com Tue Sep 23 16:09:43 2025 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Tue, 23 Sep 2025 09:09:43 -0700 Subject: EA2 macos build "damaged and can't be opened" In-Reply-To: References: Message-ID: <310614a1-3dd5-48a4-8120-bba1f8df7403@oracle.com> I have the same v15.6.1 M1Pro macBook and it works for me. % curl https://download.java.net/java/early_access/leyden/1/openjdk-26-leydenpremain+1_macos-aarch64_bin.tar.gz -o openjdk-26-leydenpremain+1_macos-aarch64_bin.tar.gz % gunzip openjdk-26-leydenpremain+1_macos-aarch64_bin.tar.gz % tar -xf openjdk-26-leydenpremain+1_macos-aarch64_bin.tar % ./jdk-26.jdk/Contents/Home/bin/java HelloWorld Hellow World! Vladimir K On 9/23/25 8:30 AM, Charles Oliver Nutter wrote: > The EA2 builds for macos aarch64 available at https://jdk.java.net/ > leyden/ do not appear to be usable on my > system running "Sequoia" v15.6.1. The dialog that pops up says: > > ``` > "jdk26.jdk" is damaged and can't be opened. You should move it to the trash > ``` > > I can build it myself if necessary, but this will hinder others wanting > to try the AOT code caching on macos. > > *Charles Oliver Nutter* > /Architect and Technologist/ > Headius Enterprises > https://www.headius.com > headius at headius.com From philip.race at oracle.com Tue Sep 23 17:34:56 2025 From: philip.race at oracle.com (Philip Race) Date: Tue, 23 Sep 2025 10:34:56 -0700 Subject: EA2 macos build "damaged and can't be opened" In-Reply-To: References: Message-ID: <514d03a3-2d10-43a0-99e8-b17018cd5af3@oracle.com> Maybe lost its stapled notarization or some related problem ? Or somehow this bundle wasn't notarized ? If you are comfortable with trusting the bits try the following sudo xattr -r -d com.apple.quarantine jdk26.jdk -phil. On 9/23/25 8:30 AM, Charles Oliver Nutter wrote: > The EA2 builds for macos aarch64 available at > https://jdk.java.net/leyden/ do not appear to be usable on my system > running "Sequoia" v15.6.1. The dialog that pops up says: > > ``` > "jdk26.jdk" is damaged and can't be opened. You should move it to the > trash > ``` > > I can build it myself if necessary, but this will hinder others > wanting to try the AOT code caching on macos. > > *Charles Oliver Nutter* > /Architect and Technologist/ > Headius Enterprises > https://www.headius.com > headius at headius.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From shade at openjdk.org Tue Sep 23 17:52:41 2025 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 23 Sep 2025 17:52:41 GMT Subject: RFR: 8368465: [leyden] Improve precompiler method selection code [v2] In-Reply-To: References: Message-ID: > Forked from [JDK-8366681](https://bugs.openjdk.org/browse/JDK-8366681): there are still some cleanups/performance improvements possible. Current selection code is a bit hairy, and turns out the changes I made for previous patch improve performance. > > Notable improvements: > 1. Push the compilation level filters downwards. This allows compiling A2 from T2/T3 code more easily, and allows to implement policies for compiling on any A* level based on observing top-compiled T* levels. > 2. Sort methods by hotness and code size. This avoids a fairly awkward path to get compile IDs, ditching which _I suspect_ is the cause for performance improvement. With new code, we compile a tad more A2 code. I have not digged through why current code accepts fewer methods for compilation. New code improves performance everywhere, so I suggest we just accept that and move on. > > Additional testing: > - [x] Performance tests (see comments) > - [x] Linux x86_64 server fastdebug, `runtime/cds` Aleksey Shipilev has updated the pull request incrementally with two additional commits since the last revision: - Touchup - Touchups ------------- Changes: - all: https://git.openjdk.org/leyden/pull/99/files - new: https://git.openjdk.org/leyden/pull/99/files/d63bde8e..77b8b3ef Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=99&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=99&range=00-01 Stats: 6 lines in 1 file changed: 3 ins; 2 del; 1 mod Patch: https://git.openjdk.org/leyden/pull/99.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/99/head:pull/99 PR: https://git.openjdk.org/leyden/pull/99 From headius at headius.com Tue Sep 23 18:11:50 2025 From: headius at headius.com (Charles Oliver Nutter) Date: Tue, 23 Sep 2025 13:11:50 -0500 Subject: EA2 macos build "damaged and can't be opened" In-Reply-To: <514d03a3-2d10-43a0-99e8-b17018cd5af3@oracle.com> References: <514d03a3-2d10-43a0-99e8-b17018cd5af3@oracle.com> Message-ID: It does seem to be related to signing. Your xattr command line appears to have fixed the issue. Perhaps Vladimir K has more permissive settings? On Tue, Sep 23, 2025 at 12:35?PM Philip Race wrote: > Maybe lost its stapled notarization or some related problem ? > > Or somehow this bundle wasn't notarized ? > > If you are comfortable with trusting the bits try the following > > sudo xattr -r -d com.apple.quarantine jdk26.jdk > > -phil. > > > On 9/23/25 8:30 AM, Charles Oliver Nutter wrote: > > The EA2 builds for macos aarch64 available at https://jdk.java.net/leyden/ > do not appear to be usable on my system running "Sequoia" v15.6.1. The > dialog that pops up says: > > ``` > "jdk26.jdk" is damaged and can't be opened. You should move it to the trash > ``` > > I can build it myself if necessary, but this will hinder others wanting to > try the AOT code caching on macos. > > *Charles Oliver Nutter* > *Architect and Technologist* > Headius Enterprises > https://www.headius.com > headius at headius.com > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From philip.race at oracle.com Tue Sep 23 20:00:13 2025 From: philip.race at oracle.com (Philip Race) Date: Tue, 23 Sep 2025 13:00:13 -0700 Subject: EA2 macos build "damaged and can't be opened" In-Reply-To: References: <514d03a3-2d10-43a0-99e8-b17018cd5af3@oracle.com> Message-ID: <91ace740-3c65-4e72-b524-0c935a2bb53b@oracle.com> Vladimir used curl. I suspect you downloaded via the browser. So in your case macOS treated it as untrusted content. But macOS doesn't know about curl downloads so treated it the same as locally generated binaries - no need to notarize. I'm pretty sure of this since I tried both and with Safari saw what you saw and with curl macOS was happy to run it immediately. -phil. On 9/23/25 11:11 AM, Charles Oliver Nutter wrote: > It does seem to be related to signing. Your xattr command line appears > to have fixed the issue. > > Perhaps Vladimir K has more permissive settings? > > On Tue, Sep 23, 2025 at 12:35?PM Philip Race > wrote: > > Maybe lost its stapled notarization or some related problem ? > > Or somehow this bundle wasn't notarized ? > > If you are comfortable with trusting the bits try the following > > sudo xattr -r -d com.apple.quarantine jdk26.jdk > > -phil. > > > On 9/23/25 8:30 AM, Charles Oliver Nutter wrote: >> The EA2 builds for macos aarch64 available at >> https://jdk.java.net/leyden/ do not appear to be usable on my >> system running "Sequoia" v15.6.1. The dialog that pops up says: >> >> ``` >> "jdk26.jdk" is damaged and can't be opened. You should move it to >> the trash >> ``` >> >> I can build it myself if necessary, but this will hinder others >> wanting to try the AOT code caching on macos. >> >> *Charles Oliver Nutter* >> /Architect and Technologist/ >> Headius Enterprises >> https://www.headius.com >> headius at headius.com > -------------- next part -------------- An HTML attachment was scrubbed... URL: From headius at headius.com Tue Sep 23 21:19:30 2025 From: headius at headius.com (Charles Oliver Nutter) Date: Tue, 23 Sep 2025 16:19:30 -0500 Subject: EA2 macos build "damaged and can't be opened" In-Reply-To: <91ace740-3c65-4e72-b524-0c935a2bb53b@oracle.com> References: <514d03a3-2d10-43a0-99e8-b17018cd5af3@oracle.com> <91ace740-3c65-4e72-b524-0c935a2bb53b@oracle.com> Message-ID: That may be the case, but I'm betting most people will download it through a browser. It would be nice for there at least to be a note somewhere indicating how to deal with this. Maybe this thread is the note. On Tue, Sep 23, 2025, 15:00 Philip Race wrote: > Vladimir used curl. I suspect you downloaded via the browser. > So in your case macOS treated it as untrusted content. > > But macOS doesn't know about curl downloads so treated it the same as > locally generated binaries - no need to notarize. > > I'm pretty sure of this since I tried both and with Safari saw what you > saw and with curl macOS was happy to run it immediately. > > -phil. > > > On 9/23/25 11:11 AM, Charles Oliver Nutter wrote: > > It does seem to be related to signing. Your xattr command line appears to > have fixed the issue. > > Perhaps Vladimir K has more permissive settings? > > On Tue, Sep 23, 2025 at 12:35?PM Philip Race > wrote: > >> Maybe lost its stapled notarization or some related problem ? >> >> Or somehow this bundle wasn't notarized ? >> >> If you are comfortable with trusting the bits try the following >> >> sudo xattr -r -d com.apple.quarantine jdk26.jdk >> >> -phil. >> >> >> On 9/23/25 8:30 AM, Charles Oliver Nutter wrote: >> >> The EA2 builds for macos aarch64 available at >> https://jdk.java.net/leyden/ do not appear to be usable on my system >> running "Sequoia" v15.6.1. The dialog that pops up says: >> >> ``` >> "jdk26.jdk" is damaged and can't be opened. You should move it to the >> trash >> ``` >> >> I can build it myself if necessary, but this will hinder others wanting >> to try the AOT code caching on macos. >> >> *Charles Oliver Nutter* >> *Architect and Technologist* >> Headius Enterprises >> https://www.headius.com >> headius at headius.com >> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From philip.race at oracle.com Wed Sep 24 15:52:30 2025 From: philip.race at oracle.com (Philip Race) Date: Wed, 24 Sep 2025 08:52:30 -0700 Subject: EA2 macos build "damaged and can't be opened" In-Reply-To: References: <514d03a3-2d10-43a0-99e8-b17018cd5af3@oracle.com> <91ace740-3c65-4e72-b524-0c935a2bb53b@oracle.com> Message-ID: <071bfdaa-3128-4847-a051-bb461d5f7c0e@oracle.com> I am not disagreeing. Hopefully whoever prepares the leyden EA binaries is reading this and will check it out. -phil. On 9/23/25 2:19 PM, Charles Oliver Nutter wrote: > That may be the case, but I'm betting most people will download it > through a browser. It would be nice for there at least to be a note > somewhere indicating how to deal with this. Maybe this thread is the note. > > On Tue, Sep 23, 2025, 15:00 Philip Race wrote: > > Vladimir used curl. I suspect you downloaded via the browser. > So in your case macOS treated it as untrusted content. > > But macOS doesn't know about curl downloads so treated it the same > as locally generated binaries - no need to notarize. > > I'm pretty sure of this since I tried both and with Safari saw > what you saw and with curl macOS was happy to run it immediately. > > -phil. > > > On 9/23/25 11:11 AM, Charles Oliver Nutter wrote: >> It does seem to be related to signing. Your xattr command line >> appears to have fixed the issue. >> >> Perhaps Vladimir K has more permissive settings? >> >> On Tue, Sep 23, 2025 at 12:35?PM Philip Race >> wrote: >> >> Maybe lost its stapled notarization or some related problem ? >> >> Or somehow this bundle wasn't notarized ? >> >> If you are comfortable with trusting the bits try the following >> >> sudo xattr -r -d com.apple.quarantine jdk26.jdk >> >> -phil. >> >> >> On 9/23/25 8:30 AM, Charles Oliver Nutter wrote: >>> The EA2 builds for macos aarch64 available at >>> https://jdk.java.net/leyden/ do not appear to be usable on >>> my system running "Sequoia" v15.6.1. The dialog that pops up >>> says: >>> >>> ``` >>> "jdk26.jdk" is damaged and can't be opened. You should move >>> it to the trash >>> ``` >>> >>> I can build it myself if necessary, but this will hinder >>> others wanting to try the AOT code caching on macos. >>> >>> *Charles Oliver Nutter* >>> /Architect and Technologist/ >>> Headius Enterprises >>> https://www.headius.com >>> headius at headius.com >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mli at openjdk.org Wed Sep 24 20:08:58 2025 From: mli at openjdk.org (Hamlin Li) Date: Wed, 24 Sep 2025 20:08:58 GMT Subject: RFR: 8368595: [leyden] Enhance CPU features check Message-ID: Hi, Can you help to review this patch? Current implementation of CPU features check compare the whole buffer of cpu features. This could introduce a potential issue when CPU features accumulate. Consider this example. If at JDK version X there are 5 CPU features, they are a(0), b(1), c(2), d(3), e(4), the number inside () is the feature index assigned (it could be explicitly or implicitly, depends on the implementation of VM_Version). In the future at JDK version Y there could be another feature f added, but f could be added at the middle of features list (reason could be to group some features together or order all cpu features in alphabetical way, so now it looks like a(0), b(1), c(2), f(3), d(4), e(5). So, cpu features buffer of the version X in an archive could be 111110000..., which means all 5 features (a/b/c/d/e) are supported, and this archive could be used by a runtime of version Y, and the local CPU supports a/b/c/f/d, but not e, in this situation, the cpu features are also 111110000..., which means buffer comparison result is equal, but indeed they are not equal. The solution could be to just introduce an cpu_feature_number, before comparing the buffer, compare if the number is equal, if not just fail the cpu feature comparison. This solution is based on the assumption that we only add but not remove CPU features. Thanks! ------------- Commit messages: - fix - add log msg - initial commit Changes: https://git.openjdk.org/leyden/pull/100/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=100&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8368595 Stats: 44 lines in 7 files changed: 29 ins; 0 del; 15 mod Patch: https://git.openjdk.org/leyden/pull/100.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/100/head:pull/100 PR: https://git.openjdk.org/leyden/pull/100 From asmehra at openjdk.org Wed Sep 24 20:37:35 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Wed, 24 Sep 2025 20:37:35 GMT Subject: RFR: 8368595: [leyden] Enhance CPU features check In-Reply-To: References: Message-ID: <80QRJQCocQcV8JKVad5ymXV1sgScxAoJ6xByUlnJ-Mw=.adf4d785-385c-4a44-b38f-d3823166c9b5@github.com> On Wed, 24 Sep 2025 20:01:46 GMT, Hamlin Li wrote: > Hi, > Can you help to review this patch? > > Current implementation of CPU features check compare the whole buffer of cpu features. This could introduce a potential issue when CPU features accumulate. > > Consider this example. > If at JDK version X there are 5 CPU features, they are a(0), b(1), c(2), d(3), e(4), the number inside () is the feature index assigned (it could be explicitly or implicitly, depends on the implementation of VM_Version). In the future at JDK version Y there could be another feature f added, but f could be added at the middle of features list (reason could be to group some features together or order all cpu features in alphabetical way, so now it looks like a(0), b(1), c(2), f(3), d(4), e(5). > So, cpu features buffer of the version X in an archive could be 111110000..., which means all 5 features (a/b/c/d/e) are supported, and this archive could be used by a runtime of version Y, and the local CPU supports a/b/c/f/d, but not e, in this situation, the cpu features are also 111110000..., which means buffer comparison result is equal, but indeed they are not equal. > > The solution could be to just introduce an cpu_feature_number, before comparing the buffer, compare if the number is equal, if not just fail the cpu feature comparison. > This solution is based on the assumption that we only add but not remove CPU features. > > Thanks! @Hamlin-Li while I don't disagree with adding a check for cpu features number as such, I think the scenario you mentioned is not a problem because AOTCache is tightly coupled to the JDK version. So an AOTCache built with a JDK version X that supports 5 features cannot be used with a JDK version Y with support for 6 features. ------------- PR Comment: https://git.openjdk.org/leyden/pull/100#issuecomment-3330624361 From mli at openjdk.org Thu Sep 25 08:57:21 2025 From: mli at openjdk.org (Hamlin Li) Date: Thu, 25 Sep 2025 08:57:21 GMT Subject: RFR: 8368595: [leyden] Enhance CPU features check In-Reply-To: <80QRJQCocQcV8JKVad5ymXV1sgScxAoJ6xByUlnJ-Mw=.adf4d785-385c-4a44-b38f-d3823166c9b5@github.com> References: <80QRJQCocQcV8JKVad5ymXV1sgScxAoJ6xByUlnJ-Mw=.adf4d785-385c-4a44-b38f-d3823166c9b5@github.com> Message-ID: On Wed, 24 Sep 2025 20:34:53 GMT, Ashutosh Mehra wrote: >> Hi, >> Can you help to review this patch? >> >> Current implementation of CPU features check compare the whole buffer of cpu features. This could introduce a potential issue when CPU features accumulate. >> >> Consider this example. >> If at JDK version X there are 5 CPU features, they are a(0), b(1), c(2), d(3), e(4), the number inside () is the feature index assigned (it could be explicitly or implicitly, depends on the implementation of VM_Version). In the future at JDK version Y there could be another feature f added, but f could be added at the middle of features list (reason could be to group some features together or order all cpu features in alphabetical way, so now it looks like a(0), b(1), c(2), f(3), d(4), e(5). >> So, cpu features buffer of the version X in an archive could be 111110000..., which means all 5 features (a/b/c/d/e) are supported, and this archive could be used by a runtime of version Y, and the local CPU supports a/b/c/f/d, but not e, in this situation, the cpu features are also 111110000..., which means buffer comparison result is equal, but indeed they are not equal. >> >> The solution could be to just introduce an cpu_feature_number, before comparing the buffer, compare if the number is equal, if not just fail the cpu feature comparison. >> This solution is based on the assumption that we only add but not remove CPU features. >> >> Thanks! > > @Hamlin-Li while I don't disagree with adding a check for cpu features number as such, I think the scenario you mentioned is not a problem because AOTCache is tightly coupled to the JDK version. So an AOTCache built with a JDK version X that supports 5 features cannot be used with a JDK version Y with support for 6 features. Ah, I see, I thought there could be such an restriction, but I did not check further. Thanks for confirmation! @ashu-mehra Then I'll close this PR later if it's not that useful. ------------- PR Comment: https://git.openjdk.org/leyden/pull/100#issuecomment-3332953001 From duke at openjdk.org Thu Sep 25 19:24:34 2025 From: duke at openjdk.org (duke) Date: Thu, 25 Sep 2025 19:24:34 GMT Subject: git: openjdk/leyden: premain: Set SkipTier2IfPossible to true if AOTCodeCacheing is true Message-ID: <6da300d1-83cd-4565-9258-f315b9a28fd6@openjdk.org> Changeset: 3be99e00 Branch: premain Author: Igor Veresov Date: 2025-09-25 12:06:39 +0000 URL: https://git.openjdk.org/leyden/commit/3be99e0087c3588693dc7ce0f8d0a0b860ecbbd4 Set SkipTier2IfPossible to true if AOTCodeCacheing is true ! src/hotspot/share/cds/cdsConfig.cpp From mli at openjdk.org Fri Sep 26 08:12:15 2025 From: mli at openjdk.org (Hamlin Li) Date: Fri, 26 Sep 2025 08:12:15 GMT Subject: Withdrawn: 8368595: [leyden] Enhance CPU features check In-Reply-To: References: Message-ID: On Wed, 24 Sep 2025 20:01:46 GMT, Hamlin Li wrote: > Hi, > Can you help to review this patch? > > Current implementation of CPU features check compare the whole buffer of cpu features. This could introduce a potential issue when CPU features accumulate. > > Consider this example. > If at JDK version X there are 5 CPU features, they are a(0), b(1), c(2), d(3), e(4), the number inside () is the feature index assigned (it could be explicitly or implicitly, depends on the implementation of VM_Version). In the future at JDK version Y there could be another feature f added, but f could be added at the middle of features list (reason could be to group some features together or order all cpu features in alphabetical way, so now it looks like a(0), b(1), c(2), f(3), d(4), e(5). > So, cpu features buffer of the version X in an archive could be 111110000..., which means all 5 features (a/b/c/d/e) are supported, and this archive could be used by a runtime of version Y, and the local CPU supports a/b/c/f/d, but not e, in this situation, the cpu features are also 111110000..., which means buffer comparison result is equal, but indeed they are not equal. > > The solution could be to just introduce an cpu_feature_number, before comparing the buffer, compare if the number is equal, if not just fail the cpu feature comparison. > This solution is based on the assumption that we only add but not remove CPU features. > > Thanks! This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/leyden/pull/100 From Fei.Gao2 at arm.com Fri Sep 26 13:52:08 2025 From: Fei.Gao2 at arm.com (Fei Gao) Date: Fri, 26 Sep 2025 13:52:08 +0000 Subject: Leverage profiled compiled size to avoid aggressive inlining and code growth Message-ID: Hi @leyden-dev and @hotspot compiler, TL;DR https://github.com/openjdk/jdk/pull/27527 I proposed a PoC that explores leveraging profiled compiled sizes to improve C2 inlining decisions and mitigate code bloat. The approach records method sizes during a pre-run and feeds them back via compiler directives, helping to reduce aggressive inlining of large methods. Testing on Renaissance and SPECjbb2015 showed clear code size differences but no significant performance impact on either AArch64 or x86. An alternative AOT-cache-based approach was also evaluated but did not produce meaningful code size changes. Open questions remain about the long-term value of profiling given Project Leyden's direction of caching compiled code in AOT, and whether global profiling information could help C2 make better inlining decisions. 1. Motivation In the current C2 behavior, the inliner only considers the estimated inlined size [1] [2] of a callee if the method has already been compiled by C2. In particular, C2 will explicitly reject inlining in the following cases: Hot methods with bytecode size > FreqInlineSize (325) [3] Cold methods with bytecode size > MaxInlineSize (35) However, a common situation arises where a method's bytecode size is below 325, yet once compiled by C2 it produces a very large machine code body. If this method has not been compiled at the time its caller is being compiled, the inliner may aggressively inline it, potentially bloating the caller, even though an independent compiled copy might eventually exist. To mitigate such cases, we can make previously profiled compiled sizes available early, allowing the inliner to make more informed decisions and reduce excessive code growth. [1] https://github.com/openjdk/jdk/blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/opto/bytecodeInfo.cpp#L180 [2] https://github.com/openjdk/jdk/blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/opto/bytecodeInfo.cpp#L274 [3] https://github.com/openjdk/jdk/blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/opto/bytecodeInfo.cpp#L184 2. Proof of Concept To validate this idea, I created a proof-of-concept: https://github.com/openjdk/jdk/pull/27527 In this PoC: 1) A dumping interface was added to record C2-compiled method sizes, enabled via the `-XX:+PrintOptoMethodSize` flag. 2) A new attribute was introduced in InlineMatcher: _inline_instructions_size. This attribute stores the estimated inlined size of a method, sourced from a compiler directive JSON file generated during a prior profiling run. 3) The inliner was updated to use these previously profiled method sizes to prevent aggressive inlining of large methods. 3. How to Use To apply this approach to any workload, the workload must be run twice: 1) Pre-run: collect inlined sizes for all C2-compiled methods. 2) Product run: use the profiled method sizes to improve C2 inlining. Step 1 Profile method size (pre-run) Log the compiled method size: `-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:+PrintOptoMethodSize -XX:LogFile=logmethodsize.out` This will generate a log containing method size information from C2. Step 2 Generate the compiler directive file Use the provided Python script to extract method size info and generate a JSON file: `python3 extract_size_to_directives.py logmethodsize.out output_directives.json` This file contains estimated inlined sizes to guide inlining decisions in product run. If the same method is compiled multiple times, the script conservatively retains the smallest observed size. Note: Methods that are not accepted by the CompilerDirective format need to be excluded. Step 3 Use the compiler directive in a product run Pass the generated JSON to the JVM as a directive: `-XX:+UnlockDiagnosticVMOptions -XX:CompilerDirectivesFile=output_directives.json` This enables the inliner to make decisions using previously profiled method sizes, potentially avoiding aggressive inlining of large methods. Note: The patch reuses the existing `inline` directive attribute for inlining control. If multiple inline rules match the same method, only the first match is effective. 4. Testing I tested the following workloads using the method above and measured the code cache size with `-XX:+PrintCodeCache`. The results are shown below, compared against the mainline code. All statistics (min, max, median, mean) are based on three runs. (patch - mainline) / mainline 1) Renaissance.dotty Code size change: AArch64: ``` used min max median mean non-profiled -9.88% -8.13% -8.92% -8.98% profiled -0.73% -0.21% -0.40% -0.45% non-nmethods -15.20% -0.02% -14.92% -10.32% codecache -2.82% -2.88% -2.97% -2.89% max_used min max median mean non-profiled -9.88% -8.13% -8.92% -8.98% profiled 2.37% 1.41% 1.50% 1.76% non-nmethods -0.95% -1.73% -0.93% -1.21% codecache -0.35% -1.00% -0.95% -0.77% ``` X86: ``` used min max median mean non-profiled -9.72% -9.61% -9.36% -9.56% profiled -0.81% -0.90% -1.15% -0.95% non-nmethods -0.04% 0.04% -0.02% -0.01% codecache -2.94% -2.96% -3.11% -3.00% max_used min max median mean non-profiled -9.72% -9.61% -9.36% -9.56% profiled 2.32% 2.60% 2.51% 2.48% non-nmethods -0.63% -2.25% -1.28% -1.39% codecache -0.68% -0.59% -0.70% -0.66% ``` No significant performance changes were observed on either platform. 2) SPECjbb 2015 Code size change: AArch64: ``` used min max median mean non-profiled -1.00% -11.68% -12.73% -8.62% profiled 9.07% -6.93% -2.34% -0.29% non-nmethods 0.02% -0.02% 0.00% 0.00% codecache 2.98% -7.18% -5.35% -3.28% max_used min max median mean non-profiled -10.85% -11.68% -12.73% -11.76% profiled -2.09% -11.65% -1.26% -5.62% non-nmethods 0.13% -1.21% -0.16% -0.41% codecache -6.42% -6.33% -6.10% -6.29% ``` On the AArch64 platform, no significant performance changes were observed for either high-bound IR or max jOPS. For critical jOPS: ``` Min Median Mean Max Var% -2.45% -1.87% -2.45% -3.00% 1.9% ``` X86: ``` used min max median mean non-profiled -9.02% -9.65% -7.93% -8.87% profiled -6.09% -3.18% -4.52% -4.61% non-nmethods -0.02% 0.25% 0.04% 0.09% codecache -5.36% -4.75% -4.58% -4.90% max_used min max median mean non-profiled -4.03% -9.65% -7.93% -7.23% profiled -2.86% 1.16% -1.03% -0.93% non-nmethods 0.02% -0.08% 0.08% 0.01% codecache -0.23% -4.20% -3.70% -2.73% ``` No significant performance change was observed on x86 platform. 5. AOT cache The current procedure above requires three steps: a pre-run to record method sizes, a separate step to process the JSON file, and finally a product run using the profiled method sizes. This workflow may add extra burden to workload deployment. With JEP 515 [4], we can instead store the estimated inlined size in the AOT cache when ciMethod::inline_instructions_size() is called during the premain run, and later load this size from the AOT cache during the product run [5]. The store-load mechanism for inlined size can help reduce the overhead of recomputing actual sizes, but it does not provide the inliner with much additional information about the callee, since the compilation order in the product run generally follows that of the premain run, even if not exactly. To give the inliner more profiled information about callees, I tried another simple draft that records inlined sizes for more C2-compiled methods: https://github.com/openjdk/jdk/pull/27519/commits/ef5e61f3d68ad565ee11e2cc6aa57b6e2697ae6d However, with this draft using the AOT cache, I did not observe any significant code size changes for any workloads. This may require further investigation. [4] https://openjdk.org/jeps/515 [5] https://github.com/openjdk/jdk/blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/ci/ciMethod.cpp#L1152 6 Questions 1) Relation to Project Leyden Project Leyden aims to enhance the AOT cache to store compiled code from training runs [6]. This suggests that we may eventually prefer to cache compiled code directly from the AOT cache rather than rely solely on JIT compilation. Given this direction, is it still worthwhile to invest further in using profiled method sizes as a means to improve inlining heuristics? Could such profiling provide complementary benefits even if compiled code is cached? 2) Global profiling information for C2 Should we consider leveraging profiled information stored in the AOT cache to give the C2 inliner a broader, more global view of methods, enabling better inlining decisions? For example, could global visibility into method sizes and call sites help address pathological cases of code bloat or missed optimization opportunities? [7] [6] https://openjdk.org/jeps/8335368 [7] https://wiki.openjdk.org/display/hotspot/inlining I'd greatly appreciate any feedback. Thank you for your time and consideration. Thanks, Fei IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Fei.Gao2 at arm.com Fri Sep 26 15:15:15 2025 From: Fei.Gao2 at arm.com (Fei Gao) Date: Fri, 26 Sep 2025 15:15:15 +0000 Subject: Leverage profiled compiled size to avoid aggressive inlining and code growth In-Reply-To: References: Message-ID: Post to hotspot-compiler-dev at openjdk.org instead of hotspot-compiler-dev at openjdk.java.net. Sorry for the repetition. From: Fei Gao Date: Friday, 26 September 2025 at 14:52 To: leyden-dev , hotspot compiler Subject: Leverage profiled compiled size to avoid aggressive inlining and code growth Hi @leyden-dev and @hotspot compiler, TL;DR https://github.com/openjdk/jdk/pull/27527 I proposed a PoC that explores leveraging profiled compiled sizes to improve C2 inlining decisions and mitigate code bloat. The approach records method sizes during a pre-run and feeds them back via compiler directives, helping to reduce aggressive inlining of large methods. Testing on Renaissance and SPECjbb2015 showed clear code size differences but no significant performance impact on either AArch64 or x86. An alternative AOT-cache-based approach was also evaluated but did not produce meaningful code size changes. Open questions remain about the long-term value of profiling given Project Leyden's direction of caching compiled code in AOT, and whether global profiling information could help C2 make better inlining decisions. 1. Motivation In the current C2 behavior, the inliner only considers the estimated inlined size [1] [2] of a callee if the method has already been compiled by C2. In particular, C2 will explicitly reject inlining in the following cases: Hot methods with bytecode size > FreqInlineSize (325) [3] Cold methods with bytecode size > MaxInlineSize (35) However, a common situation arises where a method's bytecode size is below 325, yet once compiled by C2 it produces a very large machine code body. If this method has not been compiled at the time its caller is being compiled, the inliner may aggressively inline it, potentially bloating the caller, even though an independent compiled copy might eventually exist. To mitigate such cases, we can make previously profiled compiled sizes available early, allowing the inliner to make more informed decisions and reduce excessive code growth. [1] https://github.com/openjdk/jdk/blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/opto/bytecodeInfo.cpp#L180 [2] https://github.com/openjdk/jdk/blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/opto/bytecodeInfo.cpp#L274 [3] https://github.com/openjdk/jdk/blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/opto/bytecodeInfo.cpp#L184 2. Proof of Concept To validate this idea, I created a proof-of-concept: https://github.com/openjdk/jdk/pull/27527 In this PoC: 1) A dumping interface was added to record C2-compiled method sizes, enabled via the `-XX:+PrintOptoMethodSize` flag. 2) A new attribute was introduced in InlineMatcher: _inline_instructions_size. This attribute stores the estimated inlined size of a method, sourced from a compiler directive JSON file generated during a prior profiling run. 3) The inliner was updated to use these previously profiled method sizes to prevent aggressive inlining of large methods. 3. How to Use To apply this approach to any workload, the workload must be run twice: 1) Pre-run: collect inlined sizes for all C2-compiled methods. 2) Product run: use the profiled method sizes to improve C2 inlining. Step 1 Profile method size (pre-run) Log the compiled method size: `-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:+PrintOptoMethodSize -XX:LogFile=logmethodsize.out` This will generate a log containing method size information from C2. Step 2 Generate the compiler directive file Use the provided Python script to extract method size info and generate a JSON file: `python3 extract_size_to_directives.py logmethodsize.out output_directives.json` This file contains estimated inlined sizes to guide inlining decisions in product run. If the same method is compiled multiple times, the script conservatively retains the smallest observed size. Note: Methods that are not accepted by the CompilerDirective format need to be excluded. Step 3 Use the compiler directive in a product run Pass the generated JSON to the JVM as a directive: `-XX:+UnlockDiagnosticVMOptions -XX:CompilerDirectivesFile=output_directives.json` This enables the inliner to make decisions using previously profiled method sizes, potentially avoiding aggressive inlining of large methods. Note: The patch reuses the existing `inline` directive attribute for inlining control. If multiple inline rules match the same method, only the first match is effective. 4. Testing I tested the following workloads using the method above and measured the code cache size with `-XX:+PrintCodeCache`. The results are shown below, compared against the mainline code. All statistics (min, max, median, mean) are based on three runs. (patch - mainline) / mainline 1) Renaissance.dotty Code size change: AArch64: ``` used min max median mean non-profiled -9.88% -8.13% -8.92% -8.98% profiled -0.73% -0.21% -0.40% -0.45% non-nmethods -15.20% -0.02% -14.92% -10.32% codecache -2.82% -2.88% -2.97% -2.89% max_used min max median mean non-profiled -9.88% -8.13% -8.92% -8.98% profiled 2.37% 1.41% 1.50% 1.76% non-nmethods -0.95% -1.73% -0.93% -1.21% codecache -0.35% -1.00% -0.95% -0.77% ``` X86: ``` used min max median mean non-profiled -9.72% -9.61% -9.36% -9.56% profiled -0.81% -0.90% -1.15% -0.95% non-nmethods -0.04% 0.04% -0.02% -0.01% codecache -2.94% -2.96% -3.11% -3.00% max_used min max median mean non-profiled -9.72% -9.61% -9.36% -9.56% profiled 2.32% 2.60% 2.51% 2.48% non-nmethods -0.63% -2.25% -1.28% -1.39% codecache -0.68% -0.59% -0.70% -0.66% ``` No significant performance changes were observed on either platform. 2) SPECjbb 2015 Code size change: AArch64: ``` used min max median mean non-profiled -1.00% -11.68% -12.73% -8.62% profiled 9.07% -6.93% -2.34% -0.29% non-nmethods 0.02% -0.02% 0.00% 0.00% codecache 2.98% -7.18% -5.35% -3.28% max_used min max median mean non-profiled -10.85% -11.68% -12.73% -11.76% profiled -2.09% -11.65% -1.26% -5.62% non-nmethods 0.13% -1.21% -0.16% -0.41% codecache -6.42% -6.33% -6.10% -6.29% ``` On the AArch64 platform, no significant performance changes were observed for either high-bound IR or max jOPS. For critical jOPS: ``` Min Median Mean Max Var% -2.45% -1.87% -2.45% -3.00% 1.9% ``` X86: ``` used min max median mean non-profiled -9.02% -9.65% -7.93% -8.87% profiled -6.09% -3.18% -4.52% -4.61% non-nmethods -0.02% 0.25% 0.04% 0.09% codecache -5.36% -4.75% -4.58% -4.90% max_used min max median mean non-profiled -4.03% -9.65% -7.93% -7.23% profiled -2.86% 1.16% -1.03% -0.93% non-nmethods 0.02% -0.08% 0.08% 0.01% codecache -0.23% -4.20% -3.70% -2.73% ``` No significant performance change was observed on x86 platform. 5. AOT cache The current procedure above requires three steps: a pre-run to record method sizes, a separate step to process the JSON file, and finally a product run using the profiled method sizes. This workflow may add extra burden to workload deployment. With JEP 515 [4], we can instead store the estimated inlined size in the AOT cache when ciMethod::inline_instructions_size() is called during the premain run, and later load this size from the AOT cache during the product run [5]. The store-load mechanism for inlined size can help reduce the overhead of recomputing actual sizes, but it does not provide the inliner with much additional information about the callee, since the compilation order in the product run generally follows that of the premain run, even if not exactly. To give the inliner more profiled information about callees, I tried another simple draft that records inlined sizes for more C2-compiled methods: https://github.com/openjdk/jdk/pull/27519/commits/ef5e61f3d68ad565ee11e2cc6aa57b6e2697ae6d However, with this draft using the AOT cache, I did not observe any significant code size changes for any workloads. This may require further investigation. [4] https://openjdk.org/jeps/515 [5] https://github.com/openjdk/jdk/blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/ci/ciMethod.cpp#L1152 6 Questions 1) Relation to Project Leyden Project Leyden aims to enhance the AOT cache to store compiled code from training runs [6]. This suggests that we may eventually prefer to cache compiled code directly from the AOT cache rather than rely solely on JIT compilation. Given this direction, is it still worthwhile to invest further in using profiled method sizes as a means to improve inlining heuristics? Could such profiling provide complementary benefits even if compiled code is cached? 2) Global profiling information for C2 Should we consider leveraging profiled information stored in the AOT cache to give the C2 inliner a broader, more global view of methods, enabling better inlining decisions? For example, could global visibility into method sizes and call sites help address pathological cases of code bloat or missed optimization opportunities? [7] [6] https://openjdk.org/jeps/8335368 [7] https://wiki.openjdk.org/display/hotspot/inlining I'd greatly appreciate any feedback. Thank you for your time and consideration. Thanks, Fei IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. -------------- next part -------------- An HTML attachment was scrubbed... URL: From vladimir.kozlov at oracle.com Fri Sep 26 15:40:16 2025 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 26 Sep 2025 08:40:16 -0700 Subject: Leverage profiled compiled size to avoid aggressive inlining and code growth In-Reply-To: References: Message-ID: <8e23a680-cc52-4b43-8620-f74b982f58a1@oracle.com> Hi Fei, I think you stumble on `InlineSmallCode` (1000 or 1500) issues. The flag is used exactly for filter out inlining of previously big compiled code. But it not always helps - for example, if the method is inlined some paths could be removed due to constants (exact klass) propagation or EA can eliminate some allocations. We know about such limitation and have numerous RFEs to improve it. On other hand, FreqInlineSize and MaxInlineSize flags are based on bytecode size of method. This are more stable. Note, AOT profiling caching also preserves inlining decisions for C2 which is used during JIT compilation in production run to reproduce compilation decisions in training run. We don't advise to use JSON. Please, store information in AOT cache instead. Regards, Vladimir K On 9/26/25 8:15 AM, Fei Gao wrote: > Post to hotspot-compiler-dev at openjdk.org dev at openjdk.org> instead of hotspot-compiler-dev at openjdk.java.net > . > > Sorry for the repetition. > > *From: *Fei Gao > *Date: *Friday, 26 September 2025 at 14:52 > *To: *leyden-dev , hotspot compiler compiler-dev at openjdk.java.net> > *Subject: *Leverage profiled compiled size to avoid aggressive inlining > and code growth > > Hi @leyden-dev and @hotspot compiler > , > > *TL;DR* > > ** > > *https://github.com/openjdk/jdk/pull/27527* jdk/pull/27527> > > I proposed a PoC that explores leveraging profiled compiled sizes to > improve C2 inlining decisions and mitigate code bloat. The approach > records method sizes during a pre-run and feeds them back via compiler > directives, helping to reduce aggressive inlining of large methods. > > Testing on Renaissance and SPECjbb2015 showed clear code size > differences but no significant performance impact on either AArch64 or > x86. An alternative AOT-cache-based approach was also evaluated but did > not produce meaningful code size changes. > > Open questions remain about the long-term value of profiling given > Project Leyden's direction of caching compiled code in AOT, and whether > global profiling information could help C2 make better inlining decisions. > > *1. Motivation* > > In the current C2 behavior, the inliner only considers the estimated > inlined size [1] [2] of a callee if the method has already been compiled > by C2. In particular, C2 will explicitly reject inlining in the > following cases: > > ??? Hot methods with bytecode size > FreqInlineSize (325) [3] > > ??? Cold methods with bytecode size > MaxInlineSize (35) > > However, a common situation arises where a method's bytecode size is > below 325, yet once compiled by C2 it produces a very large machine code > body. If this method has not been compiled at the time its caller is > being compiled, the inliner may aggressively inline it, potentially > bloating the caller, even though an independent compiled copy might > eventually exist. > > To mitigate such cases, we can make previously profiled compiled sizes > available early, allowing the inliner to make more informed decisions > and reduce excessive code growth. > > [1] https://github.com/openjdk/jdk/ > blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/opto/ > bytecodeInfo.cpp#L180 blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/opto/ > bytecodeInfo.cpp#L180> > > [2] https://github.com/openjdk/jdk/ > blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/opto/ > bytecodeInfo.cpp#L274 blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/opto/ > bytecodeInfo.cpp#L274> > > [3] https://github.com/openjdk/jdk/ > blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/opto/ > bytecodeInfo.cpp#L184 blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/opto/ > bytecodeInfo.cpp#L184> > > *2. Proof of Concept* > > To validate this idea, I created a proof-of-concept: *https:// > github.com/openjdk/jdk/pull/27527* pull/27527> > > In this PoC: > > 1) A dumping interface was added to record C2-compiled method sizes, > enabled via the `-XX:+PrintOptoMethodSize` flag. > > 2) A new attribute was introduced in InlineMatcher: > _inline_instructions_size. This attribute stores the estimated inlined > size of a method, sourced from a compiler directive JSON file generated > during a prior profiling run. > > 3) The inliner was updated to use these previously profiled method sizes > to prevent aggressive inlining of large methods. > > *3. How to Use* > > To apply this approach to any workload, the workload must be run twice: > > 1) Pre-run: collect inlined sizes for all C2-compiled methods. > > 2) Product run: use the profiled method sizes to improve C2 inlining. > > Step 1 Profile method size (pre-run) > > Log the compiled method size: > > `-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX: > +PrintOptoMethodSize -XX:LogFile=logmethodsize.out` This will generate a > log containing method size information from C2. > > Step 2 Generate the compiler directive file > > Use the provided Python script to extract method size info and generate > a JSON file: > > `python3 extract_size_to_directives.py logmethodsize.out > output_directives.json` > > This file contains estimated inlined sizes to guide inlining decisions > in product run. If the same method is compiled multiple times, the > script conservatively retains the smallest observed size. > > Note: Methods that are not accepted by the CompilerDirective format need > to be excluded. > > Step 3 Use the compiler directive in a product run > > Pass the generated JSON to the JVM as a directive: > > `-XX:+UnlockDiagnosticVMOptions - > XX:CompilerDirectivesFile=output_directives.json` > > This enables the inliner to make decisions using previously profiled > method sizes, potentially avoiding aggressive inlining of large methods. > > Note: The patch reuses the existing `inline` directive attribute for > inlining control. If multiple inline rules match the same method, only > the first match is effective. > > *4. Testing* > > I tested the following workloads using the method above and measured the > code cache size with `-XX:+PrintCodeCache`. The results are shown below, > compared against the mainline code. All statistics (min, max, median, > mean) are based on three runs. > > (patch - mainline) / mainline > > 1) Renaissance.dotty > > Code size change: > > AArch64: > > ``` > > used?????????? min????? max????? median?? mean > > non-profiled?? -9.88%?? -8.13%?? -8.92%?? -8.98% > > profiled?????? -0.73%?? -0.21%?? -0.40%?? -0.45% > > non-nmethods?? -15.20%? -0.02%?? -14.92%?? -10.32% > > codecache????? -2.82%?? -2.88%?? -2.97%?? -2.89% > > max_used?????? min????? max????? median?? mean > > non-profiled?? -9.88%?? -8.13%?? -8.92%?? -8.98% > > profiled?????? 2.37%??? 1.41%??? 1.50%??? 1.76% > > non-nmethods?? -0.95%?? -1.73%?? -0.93%?? -1.21% > > codecache????? -0.35%?? -1.00%?? -0.95%?? -0.77% > > ``` > > X86: > > ``` > > used??????????? min????? max????? median?? mean > > non-profiled??? -9.72%?? -9.61%?? -9.36%?? -9.56% > > profiled??????? -0.81%?? -0.90%?? -1.15%?? -0.95% > > non-nmethods??? -0.04%?? 0.04%??? -0.02%?? -0.01% > > codecache?????? -2.94%?? -2.96%?? -3.11%?? -3.00% > > max_used??????? min????? max????? median?? mean > > non-profiled??? -9.72%?? -9.61%?? -9.36%?? -9.56% > > profiled??????? 2.32%??? 2.60%??? 2.51%??? 2.48% > > non-nmethods??? -0.63%?? -2.25%?? -1.28%?? -1.39% > > codecache?????? -0.68%?? -0.59%?? -0.70%?? -0.66% > > ``` > > No significant performance changes were observed on either platform. > > 2) SPECjbb 2015 > > Code size change: > > AArch64: > > ``` > > used?????????? min????? max?????? median??? mean > > non-profiled?? -1.00%?? -11.68%?? -12.73%?? -8.62% > > profiled?????? 9.07%??? -6.93%??? -2.34%??? -0.29% > > non-nmethods?? 0.02%??? -0.02%??? 0.00%???? 0.00% > > codecache????? 2.98%??? -7.18%??? -5.35%??? -3.28% > > max_used?????? min????? max?????? median??? mean > > non-profiled?? -10.85%? -11.68%?? -12.73%?? -11.76% > > profiled?????? -2.09%?? -11.65%?? -1.26%?? -5.62% > > non-nmethods?? 0.13%??? -1.21%??? -0.16%?? -0.41% > > codecache????? -6.42%?? -6.33%??? -6.10%?? -6.29% > > ``` > > On the AArch64 platform, no significant performance changes were > observed for either high-bound IR or max jOPS. > > For critical jOPS: > > ``` > > Min????? Median?? Mean???? Max???? Var% > > -2.45%?? -1.87%?? -2.45%?? -3.00%? 1.9% > > ``` > > X86: > > ``` > > used?????????? min????? max????? median?? mean > > non-profiled?? -9.02%?? -9.65%?? -7.93%?? -8.87% > > profiled?????? -6.09%?? -3.18%?? -4.52%?? -4.61% > > non-nmethods?? -0.02%?? 0.25%??? 0.04%??? 0.09% > > codecache????? -5.36%?? -4.75%?? -4.58%?? -4.90% > > max_used?????? min????? max????? median?? mean > > non-profiled?? -4.03%?? -9.65%?? -7.93%?? -7.23% > > profiled?????? -2.86%?? 1.16%??? -1.03%?? -0.93% > > non-nmethods?? 0.02%??? -0.08%?? 0.08%??? 0.01% > > codecache????? -0.23%?? -4.20%?? -3.70%?? -2.73% > > ``` > > No significant performance change was observed on x86 platform. > > *5. AOT cache* > > The current procedure above requires three steps: > > a pre-run to record method sizes, > > a separate step to process the JSON file, > > and finally a product run using the profiled method sizes. > > This workflow may add extra burden to workload deployment. > > With JEP 515 [4], we can instead store the estimated inlined size in the > AOT cache when ciMethod::inline_instructions_size() is called during the > premain run, and later load this size from the AOT cache during the > product run [5]. > > The store-load mechanism for inlined size can help reduce the overhead > of recomputing actual sizes, but it does not provide the inliner with > much additional information about the callee, since the compilation > order in the product run generally follows that of the premain run, even > if not exactly. > > To give the inliner more profiled information about callees, I tried > another simple draft that records inlined sizes for more C2-compiled > methods: > > https://github.com/openjdk/jdk/pull/27519/commits/ > ef5e61f3d68ad565ee11e2cc6aa57b6e2697ae6d jdk/pull/27519/commits/ef5e61f3d68ad565ee11e2cc6aa57b6e2697ae6d> > > However, with this draft using the AOT cache, I did not observe any > significant code size changes for any workloads. This may require > further investigation. > > [4] https://openjdk.org/jeps/515 > > [5] https://github.com/openjdk/jdk/ > blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/ci/ > ciMethod.cpp#L1152 blob/0ba4141cb12414c08be88b37ea2a163aacbfa7de/src/hotspot/share/ci/ > ciMethod.cpp#L1152> > > *6 Questions* > > 1) Relation to Project Leyden > > Project Leyden aims to enhance the AOT cache to store compiled code from > training runs [6]. This suggests that we may eventually prefer to cache > compiled code directly from the AOT cache rather than rely solely on JIT > compilation. > > Given this direction, is it still worthwhile to invest further in using > profiled method sizes as a means to improve inlining heuristics? > > Could such profiling provide complementary benefits even if compiled > code is cached? > > 2) Global profiling information for C2 > > Should we consider leveraging profiled information stored in the AOT > cache to give the C2 inliner a broader, more global view of methods, > enabling better inlining decisions? > > For example, could global visibility into method sizes and call sites > help address pathological cases of code bloat or missed optimization > opportunities? [7] > > [6] https://openjdk.org/jeps/8335368 > > [7] https://wiki.openjdk.org/display/hotspot/inlining wiki.openjdk.org/display/hotspot/inlining> > > I'd greatly appreciate any feedback. Thank you for your time and > consideration. > > Thanks, > > Fei > > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy > the information in any medium. Thank you. From asmehra at openjdk.org Fri Sep 26 20:11:08 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 26 Sep 2025 20:11:08 GMT Subject: RFR: Minor cleanup and refactoring Message-ID: Removed unused parameter `aot_code_entry` in `ciEnv::register_method`. Removed `preload` local variable in `ciEnv::register_method` as it is always false. Refactored `ciEnv::is_compilation_valid` a bit. ------------- Commit messages: - Minor cleanup and refactoring Changes: https://git.openjdk.org/leyden/pull/101/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=101&range=00 Stats: 45 lines in 5 files changed: 6 ins; 24 del; 15 mod Patch: https://git.openjdk.org/leyden/pull/101.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/101/head:pull/101 PR: https://git.openjdk.org/leyden/pull/101 From asmehra at openjdk.org Fri Sep 26 20:57:54 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Fri, 26 Sep 2025 20:57:54 GMT Subject: RFR: Minor cleanup and refactoring In-Reply-To: References: Message-ID: <4BBpA1dXSfx9nRHCuzk3oqIHmMV-BdFXNsNepzSsdkY=.8550f72f-3e71-41a1-b9c9-2a8e26347364@github.com> On Fri, 26 Sep 2025 20:04:20 GMT, Ashutosh Mehra wrote: > Removed unused parameter `aot_code_entry` in `ciEnv::register_method`. > Removed `preload` local variable in `ciEnv::register_method` as it is always false. > Refactored `ciEnv::is_compilation_valid` a bit. src/hotspot/share/ci/ciEnv.cpp line 1003: > 1001: // - AOTCodeCache is closed, AOTCode entry is garbage. > 1002: // - AOTCode entry indicates this shared code was marked invalid while it was loaded. > 1003: if (!AOTCodeCache::is_on() || aot_code_entry->not_entrant()) { We don't need to check for `AOTCodeCache::is_on` anymore because AOTCodeCache won't be closed if there are nmethod readers. See `AOTCodeCache::wait_for_no_nmethod_readers`. ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/101#discussion_r2383480628 From kvn at openjdk.org Sat Sep 27 17:27:55 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Sat, 27 Sep 2025 17:27:55 GMT Subject: RFR: Minor cleanup and refactoring In-Reply-To: References: Message-ID: On Fri, 26 Sep 2025 20:04:20 GMT, Ashutosh Mehra wrote: > Removed unused parameter `aot_code_entry` in `ciEnv::register_method`. > Removed `preload` local variable in `ciEnv::register_method` as it is always false. > Refactored `ciEnv::is_compilation_valid` a bit. Just one comment src/hotspot/share/ci/ciEnv.cpp line 986: > 984: } > 985: > 986: // is_aot_code = true implies loading compiled code from AOT code cache Suggestion: `is_aot_code` -> `is_loading_aot_code` ------------- PR Review: https://git.openjdk.org/leyden/pull/101#pullrequestreview-3275032720 PR Review Comment: https://git.openjdk.org/leyden/pull/101#discussion_r2384252502 From kvn at openjdk.org Sun Sep 28 00:02:02 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Sun, 28 Sep 2025 00:02:02 GMT Subject: RFR: 8368811: [Leyden] Use AOTRuntimeConstants table for card_table::_byte_map_base Message-ID: Currently we use `Relocation` info to patch `card_table::_byte_map_base` referenced in compiled code. This is not completely correct since this is not address. We currently have special check in `AOTCodeCache::init2()` to skip AOT code generation and usage if `byte_map_base` is not relocatable [aotCodeCache.cpp#L341](https://github.com/openjdk/leyden/blob/premain/src/hotspot/share/code/aotCodeCache.cpp#L341) To avoid this we should use existing `AOTRuntimeConstants` table to load `byte_map_base` from it. I also added few missing loads `card_shift` from `AOTRuntimeConstants` table. Actually I am not sure why we have it in `AOTRuntimeConstants` table. From what I see, it is based on `GCCardSizeInBytes` flag [cardTable.cpp#L46](https://github.com/openjdk/leyden/blob/premain/src/hotspot/share/gc/shared/cardTable.cpp#L46) and never modified. The flags is not adjusted ergonomically. So we can simple record the flag in AOT code configuration and verify it when loading AOT code. @adinn what do you think about `card_shift` in `AOTRuntimeConstants` table? You added it there. Changes were testing tier1-5. ------------- Commit messages: - 8368811: [Leyden] Use AOTRuntimeConstants table for card_table::_byte_map_base Changes: https://git.openjdk.org/leyden/pull/102/files Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=102&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8368811 Stats: 355 lines in 18 files changed: 203 ins; 113 del; 39 mod Patch: https://git.openjdk.org/leyden/pull/102.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/102/head:pull/102 PR: https://git.openjdk.org/leyden/pull/102 From maurizio.cimadamore at oracle.com Mon Sep 29 09:15:36 2025 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 29 Sep 2025 10:15:36 +0100 Subject: bye stable values, enter lazy constants Message-ID: Hi all, Per and I have been completed another round of preview of the Stable Value API. As you might have noticed, the name changed (again!) to LazyConstant ? https://openjdk.org/jeps/526 In many ways, the new API is more similar to the old ComputedConstant API, as the imperative methods are gone: the only way to create a lazy constant is by providing a lambda expression at construction. The reason behind the change is that, after performing extensive experiments with the StableValue API, we have learned that: * Most use cases could be expressed with a caching supplier. This meant that in most cases developers never needed to interact with StableValue -- which seemed odd. * For low-level cases, the imperative API we provided was not low-level enough, as it still added significant synchronization and boxing costs. This made the API unsuitable to use in performance critical code (such as the ClassFile API). For these reasons we have decided to shift the design center of the API back to the most common, functional use cases, which led us to this simpler API. That said, the quest for a more fundamental building block is not over: we now have a clearer idea on how to expose "stable" access to regular fields/array elements, using a _new_ var handle access mode. Initial experiments look indeed promising: such an approach doesn't require the allocation of intermediate abstractions, and allows clients to decide if they want to pay for synchronization or not. As always, we are very thankful for all the feedback we have received so far, and we look forward for some more! Cheers Maurizio From asmehra at openjdk.org Mon Sep 29 15:24:50 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 29 Sep 2025 15:24:50 GMT Subject: RFR: Minor cleanup and refactoring [v2] In-Reply-To: References: Message-ID: > Removed unused parameter `aot_code_entry` in `ciEnv::register_method`. > Removed `preload` local variable in `ciEnv::register_method` as it is always false. > Refactored `ciEnv::is_compilation_valid` a bit. Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: Rename is_aot_code to is_loading_aot_code Signed-off-by: Ashutosh Mehra ------------- Changes: - all: https://git.openjdk.org/leyden/pull/101/files - new: https://git.openjdk.org/leyden/pull/101/files/a161f27d..ee684780 Webrevs: - full: https://webrevs.openjdk.org/?repo=leyden&pr=101&range=01 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=101&range=00-01 Stats: 4 lines in 2 files changed: 0 ins; 0 del; 4 mod Patch: https://git.openjdk.org/leyden/pull/101.diff Fetch: git fetch https://git.openjdk.org/leyden.git pull/101/head:pull/101 PR: https://git.openjdk.org/leyden/pull/101 From asmehra at openjdk.org Mon Sep 29 15:24:52 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 29 Sep 2025 15:24:52 GMT Subject: RFR: Minor cleanup and refactoring [v2] In-Reply-To: References: Message-ID: On Sat, 27 Sep 2025 17:19:28 GMT, Vladimir Kozlov wrote: >> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: >> >> Rename is_aot_code to is_loading_aot_code >> >> Signed-off-by: Ashutosh Mehra > > src/hotspot/share/ci/ciEnv.cpp line 986: > >> 984: } >> 985: >> 986: // is_aot_code = true implies loading compiled code from AOT code cache > > Suggestion: `is_aot_code` -> `is_loading_aot_code` Done ------------- PR Review Comment: https://git.openjdk.org/leyden/pull/101#discussion_r2388375228 From bylokhov at amazon.com Mon Sep 29 16:28:44 2025 From: bylokhov at amazon.com (Sergey Bylokhov) Date: Mon, 29 Sep 2025 09:28:44 -0700 Subject: bye stable values, enter lazy constants In-Reply-To: References: Message-ID: <0c1214f6-c4e5-44c1-b04b-330e38ff41a2@amazon.com> Hello Java Guru! There is a very small and mostly cosmetic problem with the code examples in https://openjdk.org/jeps/526. The modifiers "private/public final" are used inconsistently. In some cases they are omitted, in others they are included. If they are added everywhere, some examples become unnecessarily verbose. For instance: private static final LazyConstant ORDERS = LazyConstant.of(OrderController::new) **Some random thoughts: The description of the JEP highlights two main issues: lazy initialization and constant-folding optimizations. This is even reflected in the name of the proposed class LazyConstant. From the user's perspective, knowing the type immediately conveys that the data will be initialized on demand and that the JVM may propagate it as a constant where possible. But is this always true? Consider the case: private LazyConstant ORDERS = LazyConstant.of(...) The value is initialized lazily, but can the JVM reliably inline ORDERS since it is not declared final? If correct usage requires declaring the field as final, then the following looks somewhat redundant, almost like writing "final-final" private final LazyConstant ORDERS = LazyConstant.of(...) It would be better if the new API could enforce these semantics regardless of whether the user adds final. In other words, laziness and stability should be intrinsic properties of the construct. Ideally something like: private static lazy OrderController ORDERS = OrderController::new or private static lazy OrderController ORDERS = () -> new OrderController(...params...) where the lazy modifier would imply both final and lazy initialization semantics. Since introducing new keywords is not currently desirable, a practical alternative might be: private static final Lazy ORDERS = OrderController::new or private static final Lazy ORDERS = () -> new OrderController(...params...) In this case the Lazy class provides laziness and stability, while final ensures the reference itself is constant and therefore optimizable by the JVM. At this point one may ask why a lambda or method reference must be wrapped in Lazy at all. We already have a well-established abstraction for this: Supplier and any other functional interfaces. Perhaps all we need is a way to mark such suppliers as stable? For example: private static final Supplier ORDERS = (() -> new OrderController(...)).stable(); The JEP is very performance and stability focused, but one important use case it tries to simplify is the initialization of singletons. A well-known current idiom described in the JEP is: public static Logger getLogger() { class Holder { private static final Logger LOGGER = Logger.create(...); } return Holder.LOGGER; } One great and useful property of this idiom is that the enclosing class's namespace is not polluted with unnecessary fields. By contrast, the new API encourages declaring fields directly at class scope. This introduces potential problems. A field may be initialized and accessed directly, bypassing the accessor method: private final LazyConstant logger = LazyConstant.of(() -> Logger.create(OrderController.class)) Or a field may remain unset until the accessor is executed, which could lead to exceptions if it is accessed elsewhere prematurely: private final LazyConstant logger = LazyConstant.of() A more natural solution could be to allow static lazy fields inside methods. This can be implemented independently of this JEP and would remove singleton initialization from the scope of lazy constants, addressing part of the criticism. For example: public static Logger getLogger() { static lazy/const/final Logger LOGGER = Logger.create(...); return LOGGER; } at the end this will be just a syntactic sugar around: private static final/lazy Logger LOGGER = Logger.create(...); public static Logger getLogger() { return LOGGER; } -- Best regards, Sergey. On 9/29/25 02:15, Maurizio Cimadamore wrote: > Hi all, > Per and I have been completed another round of preview of the Stable > Value API. As you might have noticed, the name changed (again!) to > LazyConstant ? > > https://openjdk.org/jeps/526 > > In many ways, the new API is more similar to the old ComputedConstant > API, as the imperative methods are gone: the only way to create a lazy > constant is by providing a lambda expression at construction. > > The reason behind the change is that, after performing extensive > experiments with the StableValue API, we have learned that: > > * Most use cases could be expressed with a caching supplier. This meant > that in most cases developers never needed to interact with StableValue > -- which seemed odd. > * For low-level cases, the imperative API we provided was not low-level > enough, as it still added significant synchronization and boxing costs. > This made the API unsuitable to use in performance critical code (such > as the ClassFile API). > > For these reasons we have decided to shift the design center of the API > back to the most common, functional use cases, which led us to this > simpler API. That said, the quest for a more fundamental building block > is not over: we now have a clearer idea on how to expose "stable" access > to regular fields/array elements, using a _new_ var handle access mode. > Initial experiments look indeed promising: such an approach doesn't > require the allocation of intermediate abstractions, and allows clients > to decide if they want to pay for synchronization or not. > > As always, we are very thankful for all the feedback we have received so > far, and we look forward for some more! > > Cheers > Maurizio > > > -- Best regards, Sergey. From maurizio.cimadamore at oracle.com Mon Sep 29 17:07:25 2025 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 29 Sep 2025 18:07:25 +0100 Subject: bye stable values, enter lazy constants In-Reply-To: <0c1214f6-c4e5-44c1-b04b-330e38ff41a2@amazon.com> References: <0c1214f6-c4e5-44c1-b04b-330e38ff41a2@amazon.com> Message-ID: <015c85a4-d117-4b32-9e56-9fb458d7d16f@oracle.com> Hi Sergey, thanks for the feedback On 29/09/2025 17:28, Sergey Bylokhov wrote: > Hello Java Guru! > > There is a very small and mostly cosmetic problem with the code > examples in https://openjdk.org/jeps/526 . The modifiers > "private/public final" are used inconsistently. In some cases they are > omitted, in others they are included. If they are added everywhere, > some examples become unnecessarily verbose. For instance: > > ?private static final LazyConstant ORDERS = > LazyConstant.of(OrderController::new) ok, we'll see if we can make this more consistent > > > It would be better if the new API could enforce these semantics > regardless of whether the user adds final. In other words, laziness > and stability should be intrinsic properties of the construct. Ideally > something like: > > ? private static lazy OrderController ORDERS = OrderController::new I'd like to keep this focussed on an API discussion, rather than trying to compare the propsed API with "what would a language feature for this look like". If this is an API, then how can we ensure constant folding in the absence of finality? The JVM has no idea that the LazyConstant object it sees on a particular read will also be the same LazyConstant object the next time around? > > Since introducing new keywords is not currently desirable, a practical > alternative might be: > > ? private static final Lazy ORDERS = > OrderController::new > > or > > ? private static final Lazy ORDERS = () -> new > OrderController(...params...) > > In this case the Lazy class provides laziness and stability, while > final ensures the reference itself is constant and therefore > optimizable by the JVM. So, your question is: since you need "final" anyway, why also needing "Constant" in the name? I think "final" and "Constant" mean two different things, really. "final" just means (as it always did) that the field (an instance of LazyConstant) cannot be reassigned. This is a necessary condition for constant folding to occur. But you also need another piece -- a promise that the value associated with a LazyConstant changes _at most once_. That's why "Lazy", alone, doesn't seem sufficient. "Lazy" just means initialized before use -- can you also reassign the content? Maybe? LazyAtMostOnce would have been more precise, but I don't think it's a better name :-) > > At this point one may ask why a lambda or method reference must be > wrapped in Lazy at all. We already have a well-established > abstraction for this: Supplier and any other functional interfaces. > Perhaps all we need is a way to mark such suppliers as stable? For > example: > > ? private static final Supplier ORDERS = (() -> new > OrderController(...)).stable(); Not sure about this one. Your code doesn't work as is -- you need at least a cast: ((Supplier)() -> new OrderController(...)).stable(); This is not more readable than the proposed factory. Also, if the type of the field is "just" a Supplier, other things might be lost as well -- for instance, I believe the current prototype automatically trusts all fields of type LazyConstant to be "trusted final fields". This is not possible if the type of the field is just a Supplier. I can also imagine that Leyden condensers might be more interested in seeing a field with a LazyConstant type than just a Supplier that might come from anywhere. But, of course, we've been navigatig a similar space -- in the StableValue API we had the concept of "caching supplier": private static final Supplier ORDERS = StableValue.ofSupplier(() -> new OrderController(...)); We could have put the factory inside Supplier (e.g. Supplier::ofCaching), but when we started thinking about doing just that, we realized that the resulting API would be less discoverable. Of course, in a minimalistic world, we don't need a LazyConstant type, we just add lazy suppliers, lists and maps. But we think that capturing what a lazy constant is, once and for all, adds value -- maybe not necessarily in terms of code you can write, but certainly in terms of readability and clearly documenting programmers intent. > > > The JEP is very performance and stability focused, but one important > use case it tries to simplify is the initialization of singletons. A > well-known current idiom described in the JEP is: > > ? public static Logger getLogger() { > ??? class Holder { > ????? private static final Logger LOGGER = Logger.create(...); > ??? } > ??? return Holder.LOGGER; > ? } > > One great and useful property of this idiom is that the enclosing > class's namespace is not polluted with unnecessary fields. > > By contrast, the new API encourages declaring fields directly at class > scope. This introduces potential problems. A field may be initialized > and accessed directly, bypassing the accessor method: > > ? private final LazyConstant logger = LazyConstant.of(() -> > Logger.create(OrderController.class)) > > Or a field may remain unset until the accessor is executed, which > could lead to exceptions if it is accessed elsewhere prematurely: > > ? private final LazyConstant logger = LazyConstant.of() True, a lazy constant field is, 99.99% of the time an implementation detail. It is up to the implementor to make sure the lazy constant is exposed correctly through public APIs. While I understand your point re. encapsulation, cretaing a _whole new class_ to avoid a class-level field, doesn't seem a great trade off. I agree that a language-level keyword might push things further in this space -- but that's not part of the JEP under discussion. Cheers Maurizio From forax at univ-mlv.fr Mon Sep 29 17:16:37 2025 From: forax at univ-mlv.fr (Remi Forax) Date: Mon, 29 Sep 2025 19:16:37 +0200 (CEST) Subject: bye stable values, enter lazy constants In-Reply-To: References: Message-ID: <1000010260.1904625.1759166197423.JavaMail.zimbra@univ-eiffel.fr> ----- Original Message ----- > From: "Maurizio Cimadamore" > To: "leyden-dev" > Sent: Monday, September 29, 2025 11:15:36 AM > Subject: bye stable values, enter lazy constants > Hi all, > Per and I have been completed another round of preview of the Stable > Value API. As you might have noticed, the name changed (again!) to > LazyConstant ? > > https://openjdk.org/jeps/526 > > In many ways, the new API is more similar to the old ComputedConstant > API, as the imperative methods are gone: the only way to create a lazy > constant is by providing a lambda expression at construction. > > The reason behind the change is that, after performing extensive > experiments with the StableValue API, we have learned that: > > * Most use cases could be expressed with a caching supplier. This meant > that in most cases developers never needed to interact with StableValue > -- which seemed odd. > * For low-level cases, the imperative API we provided was not low-level > enough, as it still added significant synchronization and boxing costs. > This made the API unsuitable to use in performance critical code (such > as the ClassFile API). > > For these reasons we have decided to shift the design center of the API > back to the most common, functional use cases, which led us to this > simpler API. That said, the quest for a more fundamental building block > is not over: we now have a clearer idea on how to expose "stable" access > to regular fields/array elements, using a _new_ var handle access mode. > Initial experiments look indeed promising: such an approach doesn't > require the allocation of intermediate abstractions, and allows clients > to decide if they want to pay for synchronization or not. +1 for a new VarHandle access mode ! > > As always, we are very thankful for all the feedback we have received so > far, and we look forward for some more! > > Cheers > Maurizio regards, R?mi From kvn at openjdk.org Mon Sep 29 17:42:24 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Mon, 29 Sep 2025 17:42:24 GMT Subject: RFR: Minor cleanup and refactoring [v2] In-Reply-To: References: Message-ID: On Mon, 29 Sep 2025 15:24:50 GMT, Ashutosh Mehra wrote: >> Removed unused parameter `aot_code_entry` in `ciEnv::register_method`. >> Removed `preload` local variable in `ciEnv::register_method` as it is always false. >> Refactored `ciEnv::is_compilation_valid` a bit. > > Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision: > > Rename is_aot_code to is_loading_aot_code > > Signed-off-by: Ashutosh Mehra Good ------------- Marked as reviewed by kvn (Committer). PR Review: https://git.openjdk.org/leyden/pull/101#pullrequestreview-3280972992 From asmehra at openjdk.org Mon Sep 29 18:29:48 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 29 Sep 2025 18:29:48 GMT Subject: Integrated: Minor cleanup and refactoring In-Reply-To: References: Message-ID: On Fri, 26 Sep 2025 20:04:20 GMT, Ashutosh Mehra wrote: > Removed unused parameter `aot_code_entry` in `ciEnv::register_method`. > Removed `preload` local variable in `ciEnv::register_method` as it is always false. > Refactored `ciEnv::is_compilation_valid` a bit. This pull request has now been integrated. Changeset: 7b7084b5 Author: Ashutosh Mehra URL: https://git.openjdk.org/leyden/commit/7b7084b5ecb5ae978209434216e84ddf0ad81f5e Stats: 45 lines in 5 files changed: 6 ins; 24 del; 15 mod Minor cleanup and refactoring Reviewed-by: kvn ------------- PR: https://git.openjdk.org/leyden/pull/101 From asmehra at openjdk.org Mon Sep 29 18:30:17 2025 From: asmehra at openjdk.org (Ashutosh Mehra) Date: Mon, 29 Sep 2025 18:30:17 GMT Subject: git: openjdk/leyden: premain: Minor cleanup and refactoring Message-ID: <48a95cd9-dfb5-4c8b-b498-58c63637cd96@openjdk.org> Changeset: 7b7084b5 Branch: premain Author: Ashutosh Mehra Date: 2025-09-29 18:26:36 +0000 URL: https://git.openjdk.org/leyden/commit/7b7084b5ecb5ae978209434216e84ddf0ad81f5e Minor cleanup and refactoring Reviewed-by: kvn ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/ci/ciEnv.hpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/nmethod.hpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp From bylokhov at amazon.com Mon Sep 29 19:02:34 2025 From: bylokhov at amazon.com (Sergey Bylokhov) Date: Mon, 29 Sep 2025 12:02:34 -0700 Subject: bye stable values, enter lazy constants In-Reply-To: <015c85a4-d117-4b32-9e56-9fb458d7d16f@oracle.com> References: <0c1214f6-c4e5-44c1-b04b-330e38ff41a2@amazon.com> <015c85a4-d117-4b32-9e56-9fb458d7d16f@oracle.com> Message-ID: On 9/29/25 10:07, Maurizio Cimadamore wrote: > If this is an API, then how can we ensure constant folding in the > absence of finality? The JVM has no idea that the LazyConstant object it > sees on a particular read will also be the same LazyConstant object the > next time around? That was my point in this case the LazyConstant field is not really a constant, right? And the name just misleading. I think it should be mentioned in the proposal that the final keyword play important role here. > I think "final" and "Constant" mean two different things, really. > "final" just means (as it always did) that the field (an instance of > LazyConstant) cannot be reassigned. This is a necessary condition for > constant folding to occur. The description of the JEP is similar, but it seems to focus too much on low-level optimizations. > > But you also need another piece -- a promise that the value associated > with a LazyConstant changes _at most once_. That's why "Lazy", alone, > doesn't seem sufficient. "Lazy" just means initialized before use -- can > you also reassign the content? Maybe? Maybe? Do we have similar notes for records? I doubt we ever had a proposal like "recordConstant" to highlight that "record" fields cannot be reassigned. > LazyAtMostOnce would have been more precise, but I don't think it's a > better name :-) I have no preferences or suggestions, but if we are talking about library then maybe just Lazy is good enough. > Not sure about this one. > > Your code doesn't work as is -- you need at least a cast: > > ((Supplier)() -> new OrderController(...)).stable(); That cast can be done through some magic, but what I want to highlight is that instead of creating a new lazy-related API, we could provide an API to mark an existing lazy values as "stable". > This is not more readable than the proposed factory. > > Also, if the type of the field is "just" a Supplier, other things might > be lost as well -- for instance, I believe the current prototype > automatically trusts all fields of type LazyConstant to be "trusted > final fields". This is not possible if the type of the field is just a > Supplier. I can also imagine that Leyden condensers might be more > interested in seeing a field with a LazyConstant type than just a > Supplier that might come from anywhere. But, of course, we've been > navigatig a similar space -- in the StableValue API we had the concept > of "caching supplier": Sooner or later, we?ll be able to trust all final values, so it?s worth keeping that in mind. This approach might not be better than the current proposal, but it has the potential to be extended to other data structures. For example, any API that currently accepts a Supplier (or other functional interfaces) could accept a stable wrapper, ensuring the Supplier is executed only once. In that sense, it?s a form of caching for pure functions. > We could have put the factory inside Supplier (e.g. > Supplier::ofCaching), but when we started thinking about doing just > that, we realized that the resulting API would be less discoverable. > > Of course, in a minimalistic world, we don't need a LazyConstant type, > we just add lazy suppliers, lists and maps. But we think that capturing > what a lazy constant is, once and for all, adds value -- maybe not > necessarily in terms of code you can write, but certainly in terms of > readability and clearly documenting programmers intent. Yes and no. In the current proposal, the API is split across two areas: one part is introduced in the new LazyConstant, and another is added to existing types like Map and List. But in fact, you only need a single 'lazy Supplier' that can be passed to already existing immutable types like List or Map/etc, allowing them to lazily compute their values. > True, a lazy constant field is, 99.99% of the time an implementation > detail. It is up to the implementor to make sure the lazy constant is > exposed correctly through public APIs. I?m not the one comparing the Holder idiom with the JEP 526 proposal, that comparison is made in the JEP description itself. I just pointed out that Holder have a good "property" which we will lost if the current proposal will be used instead. > While I understand your point re. encapsulation, cretaing a _whole new > class_ to avoid a class-level field, doesn't seem a great trade off. I tried reimplementing some singletons in the JDK using StableValue and compared the performance. The results were great but on par with the Holder idiom for cold startup as well. > I agree that a language-level keyword might push things further in this > space -- but that's not part of the JEP under discussion. With a new keyword it will be easier to make mistakes that are hard to fix .... finalization, serialization, or cloning. -- Best regards, Sergey. From maurizio.cimadamore at oracle.com Mon Sep 29 19:51:19 2025 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 29 Sep 2025 20:51:19 +0100 Subject: bye stable values, enter lazy constants In-Reply-To: References: <0c1214f6-c4e5-44c1-b04b-330e38ff41a2@amazon.com> <015c85a4-d117-4b32-9e56-9fb458d7d16f@oracle.com> Message-ID: <033cfbd1-d6c8-4bf4-9f54-c9b7e85c5b89@oracle.com> > >> >> But you also need another piece -- a promise that the value associated >> with a LazyConstant changes _at most once_. That's why "Lazy", alone, >> doesn't seem sufficient. "Lazy" just means initialized before use -- can >> you also reassign the content? Maybe? > > Maybe? Do we have similar notes for records? I doubt we ever had a > proposal like "recordConstant" to highlight that "record" fields > cannot be reassigned. > > >> LazyAtMostOnce would have been more precise, but I don't think it's a >> better name :-) > > I have no preferences or suggestions, but if we are talking about > library then maybe just Lazy is good enough. The point remains: lazy doesn't imply "only one" -- so, I don't buy that Lazy is "good enough" (although I agree it's much shorter to type -- which is, I think, the real argument here?) > > >> Not sure about this one. >> >> Your code doesn't work as is -- you need at least a cast: >> >> ((Supplier)() -> new OrderController(...)).stable(); > > > That cast can be done through some magic, but what I want to highlight > is that instead of creating a new lazy-related API, we could provide > an API to mark an existing lazy values as "stable". It's a possibility. But I think adding ad-hoc _language_ rules to allow the creation of a special supplier has a pretty terrible price vs. benefit ratio. Overall it is not quite clear to me what is the main point you are trying to make. Once you buy this is an API and not a language feature (and I understand you don't fully buy that), and once you buy its name (as verbose as it might be), are there ways in which the proposed API seems insuficient? > > I tried reimplementing some singletons in the JDK using StableValue > and compared the performance. The results were great but on par with > the Holder idiom for cold startup as well. That depends on the use case -- for a single static final field, then yes, you move the class holder from compile-time to runtime. When you have lots of fields, using a lazy list provides quite a big win compared to having separate holders (we made experiments with our jextract tool which demonstrate this) -- because you can have a single lambda/class for _all_ the elements. So you get the same performance as having one holder class for each element, w/o really having one holder for each element. Maurizio From bylokhov at amazon.com Mon Sep 29 20:39:26 2025 From: bylokhov at amazon.com (Sergey Bylokhov) Date: Mon, 29 Sep 2025 13:39:26 -0700 Subject: bye stable values, enter lazy constants In-Reply-To: <033cfbd1-d6c8-4bf4-9f54-c9b7e85c5b89@oracle.com> References: <0c1214f6-c4e5-44c1-b04b-330e38ff41a2@amazon.com> <015c85a4-d117-4b32-9e56-9fb458d7d16f@oracle.com> <033cfbd1-d6c8-4bf4-9f54-c9b7e85c5b89@oracle.com> Message-ID: <39b68d9b-7eeb-4c12-aac3-dd85d5f6a01f@amazon.com> On 9/29/25 12:51, Maurizio Cimadamore wrote: > The point remains: lazy doesn't imply "only one" -- so, I don't buy that > Lazy is "good enough" (although I agree it's much shorter to type -- > which is, I think, the real argument here?) I have two points about this (and yes, naming is hard): - First, why does "lazy" not imply "only once"? We already have an example of such an API: records. Does the word "record" explicitly imply that its components can only be assigned once? We implemented and documented it that way. Similarly, we can document the behavior for the new interface/class to clarify that laziness also means "stability". - Second, the main argument here is about the "Constant" part. The API is being compared to the final keyword and is positioned as an improvement, since it allows lazy initialization while still enabling the JVM to optimize everything. This optimization capability is emphasized by the "Constant" in the name. But if the field itself is not declared final, that undermines the whole argument. In that sense, I felt StableValue was a better name, but perhaps we can come up with something even more suitable. > Overall it is not quite clear to me what is the main point you are > trying to make. Once you buy this is an API and not a language feature > (and I understand you don't fully buy that), and once you buy its name > (as verbose as it might be), are there ways in which the proposed API > seems insuficient? I was just trying to think of possible alternatives. For example, have we considered something similar to @FunctionalInterface, like a @PureInterface (or any other mechanism to introduce pure functions) interfaces that behave like functional ones but also allow result caching? As for the current proposal, it feels somewhat unnatural that the API is split between LazyConstants and Map/List. I think it needs some time and experimentation to see how it plays out in practice. > When you have lots of fields, using a lazy list provides quite a big win > compared to having separate holders (we made experiments with our > jextract tool which demonstrate this) -- because you can have a single > lambda/class for _all_ the elements. So you get the same performance as > having one holder class for each element, w/o really having one holder > for each element. This argument is overly focused on performance. It suggests that exposing many unrelated fields in a class is acceptable if it leads to better performance. While that might be beneficial for generated code, in manually written code, clarity might be more important than performance. I hope we can achieve both goals: good performance and proper encapsulation. -- Best regards, Sergey. From maurizio.cimadamore at oracle.com Mon Sep 29 21:08:03 2025 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 29 Sep 2025 22:08:03 +0100 Subject: bye stable values, enter lazy constants In-Reply-To: <39b68d9b-7eeb-4c12-aac3-dd85d5f6a01f@amazon.com> References: <0c1214f6-c4e5-44c1-b04b-330e38ff41a2@amazon.com> <015c85a4-d117-4b32-9e56-9fb458d7d16f@oracle.com> <033cfbd1-d6c8-4bf4-9f54-c9b7e85c5b89@oracle.com> <39b68d9b-7eeb-4c12-aac3-dd85d5f6a01f@amazon.com> Message-ID: On 29/09/2025 21:39, Sergey Bylokhov wrote: > On 9/29/25 12:51, Maurizio Cimadamore wrote: >> The point remains: lazy doesn't imply "only one" -- so, I don't buy that >> Lazy is "good enough" (although I agree it's much shorter to type -- >> which is, I think, the real argument here?) > > I have two points about this (and yes, naming is hard): > ?- First, why does "lazy" not imply "only once"? We already have an > example of such an API: records. Does the word "record" explicitly > imply that its components can only be assigned once? We implemented > and documented it that way. Similarly, we can document the behavior > for the new interface/class to clarify that laziness also means > "stability". Record components are not "lazy" -- they are assigned at record creation. Also, record is a language feature. Sure there's an API as well (Record) but it's very unlikely for users to use that directly. So I'm not sure how much of a precedent that is. > ?- Second, the main argument here is about the "Constant" part. The > API is being compared to the final keyword and is positioned as an > improvement, since it allows lazy initialization while still enabling > the JVM to optimize everything. This optimization capability is > emphasized by the "Constant" in the name. But if the field itself is > not declared final, that undermines the whole argument. Final fields need to be initialized in the constructor/static initializer. Mutable fields can be initialized wherever you want, but then they don't get any stability guarantees. Lazy constants define (_through an API_) a holder for a new kind of field that can be initialized lazily, but only once (so, it is stable). The fact that, to get perfect runtime performance you need final on the declaration of the LazyConstant field seems, frankly, secondary -- and derives from the choice of modelling this as an API. Perhaps, in the table where we list the main differences between final fields, mutable fields and lazy constants we could drop the column on constant folding. Aside from that reference, I don't think the JEP is so focussed on performance and low-level details as you seem to imply? The only reference to constant folding happens quite late in the game: > There is, furthermore, mechanical sympathy between lazy constants and the Java runtime. Under the hood, the content of a lazy constant is stored in a non-|final| field annotated with the JDK-internal |@Stable| annotation. This annotation is a common feature of low-level JDK code. It asserts that, even though the field is non-|final|, the field?s value will not change after the field?s initial and only update. This allows the JVM to treat the content of a lazy constant as a true constant, provided that the field which refers to the lazy constant is |final|. Thus the JVM can apply constant-folding optimizations to code that accesses immutable data through multiple levels of lazy constants, e.g., |Application.orders().getLogger()|. Which seems fair, and even states that the lazy constant field needs to be final for this to happen (as you pointed out). > > > As for the current proposal, it feels somewhat unnatural that the API > is split between LazyConstants and Map/List. I think it needs some > time and experimentation to see how it plays out in practice. Sure, we need to see how this plays out. > > >> When you have lots of fields, using a lazy list provides quite a big win >> compared to having separate holders (we made experiments with our >> jextract tool which demonstrate this) -- because you can have a single >> lambda/class for _all_ the elements. So you get the same performance as >> having one holder class for each element, w/o really having one holder >> for each element. > > This argument is overly focused on performance. It suggests that > exposing many unrelated fields in a class is acceptable if it leads to > better performance. While that might be beneficial for generated code, > in manually written code, clarity might be more important than > performance. I was replying to your own performance observation that LazyConstant and holder classes are the same. The answer is, I think, it depends. There will be cases where you have completely unrelated fields, and so you don't want to model these fields with a list/map -- there will be other cases where your class has 42 similar method handles, one for each entity it wants to represent -- at which point the advantage of representing each field separately seems much less obvious. The LazyConstant API gives you both options. > > I hope we can achieve both goals: good performance and proper > encapsulation. You need to define what you mean by "encapsulation" here -- we're talking about private fields in a class after all, so it's not entirely clear to me what do you mean by "expose" and "encapsulation". I believe what you are after is a way to write the field declaration as regular field declaration (perhaps with a keyword sprinkled on top), and let the compiler worry about desugaring the code in a way that doesn't need an holder class per field. Fair, but we're in language territory again. Maurizio -------------- next part -------------- An HTML attachment was scrubbed... URL: From bylokhov at amazon.com Tue Sep 30 00:21:06 2025 From: bylokhov at amazon.com (Sergey Bylokhov) Date: Mon, 29 Sep 2025 17:21:06 -0700 Subject: bye stable values, enter lazy constants In-Reply-To: References: <0c1214f6-c4e5-44c1-b04b-330e38ff41a2@amazon.com> <015c85a4-d117-4b32-9e56-9fb458d7d16f@oracle.com> <033cfbd1-d6c8-4bf4-9f54-c9b7e85c5b89@oracle.com> <39b68d9b-7eeb-4c12-aac3-dd85d5f6a01f@amazon.com> Message-ID: On 9/29/25 14:08, Maurizio Cimadamore wrote: > Record components are not "lazy" -- they are assigned at record creation. Also, record is a language > feature. Sure there's an API as well (Record) but it's very unlikely for users to use that directly. > So I'm not sure how much of a precedent that is. Sure, records are not lazy, that is an obvious difference between records and lazy constants. But the similarity lies in how the 'only once' assignment is documented: when an internal field is assigned, it can never be changed for both. > The fact that, to get perfect runtime performance you need final on the declaration of the > LazyConstant field seems, frankly, secondary -- and derives from the choice of modelling this as an > API. This might become a new trick question in interviews - similar to why the DCL pattern does not work as expected. Ouch... "volatile", now it will be ouuch "final". > Aside from that reference, I don't think the JEP is so focussed on performance and low-level details > as you seem to imply? The only reference to constant folding happens quite late in the game: Performance actually mentioned right in the Summary block of the JEP (true constants!?): >Summary >Introduce an API for lazy constants, which are objects that hold immutable data. Lazy constants are treated as true constants by the JVM, enabling the same performance optimizations that are enabled by declaring a field final. Compared to final fields, however, lazy constants offer greater flexibility as to the timing of their initialization. > > > There is, furthermore, mechanical sympathy between lazy constants and the Java runtime. Under the > hood, the content of a lazy constant is stored in a non-|final| field annotated with the JDK- > internal |@Stable| internal/vm/annotation/Stable.java#L30-L90> annotation. This annotation is a common feature of low- > level JDK code. Right, maybe the issue is that this effort started as an attempt to expose the @Stable annotation in the public API. Instead, perhaps the focus should have been on lazy initialization and singleton-like behavior for various types, with performance benefits being a positive side effect, rather than the primary goal. As you mentioned, something like LazyInitOnce might be a better name. Is "__Constant really a good alternative? Does it mainly reflect the fact that @Stable is used internally, and the JVM will treat the value as a ***true constants***? That seems more about internal JVM behavior than the actual semantic property of being stable. > I was replying to your own performance observation that LazyConstant and holder classes are the > same. The answer is, I think, it depends. There will be cases where you have completely unrelated > fields, and so you don't want to model these fields with a list/map -- there will be other cases > where your class has 42 similar method handles, one for each entity it wants to represent -- at > which point the advantage of representing each field separately seems much less obvious. The > LazyConstant API gives you both options. My original point was about the statement that 'a great and useful property of this idiom is that the enclosing class's namespace is not polluted with unnecessary fields'. That property is lost if the new API is used instead. I only brought up performance because you mentioned it: > cretaing a _whole new class_ to avoid a class-level field, doesn't seem a great trade off. > You need to define what you mean by "encapsulation" here -- we're talking about private fields in a > class after all, so it's not entirely clear to me what do you mean by "expose" and "encapsulation". ?Encapsulation? means exactly what it says. While nested interfaces have been supported for a long time, local interfaces were introduced to further narrow their visibility. It is just a good thing to minimize visibility if possible. > I believe what you are after is a way to write the field declaration as regular field declaration > (perhaps with a keyword sprinkled on top), and let the compiler worry about desugaring the code in a > way that doesn't need an holder class per field. No, I would like a solution for singletons that avoids the following issues: - Uninitialized default value (e.g., LazyConstant.of()) - similar problems exist with DCL - Value being created too early((e.g., LazyConstant.of(Supplier..))) and accessed without using the getter method - Handling exceptions more robustly than the Holder idiom BTW, I think this will be one of the best features added in a long time. Hope it will be possible to use/test it in JDK soon. -- Best regards, Sergey. From john.r.rose at oracle.com Tue Sep 30 02:18:26 2025 From: john.r.rose at oracle.com (John Rose) Date: Mon, 29 Sep 2025 19:18:26 -0700 Subject: AOT code JEP text updated Message-ID: <51CA4919-AA5F-4259-AB58-03A260D5FED4@oracle.com> I have updated the text for the AOT code JEP: https://openjdk.org/jeps/8335368 I would appreciate any editorial comments. My present goal is to come closer to the style of our previous JEPs, and also to reflect recent conversations about AOT code. (That style is relatively non-technical and light on details, FTR. This is just the way things are with JEPs.) The recent conversations involve discussions about different AOT code shapes (AP4 vs. A4) and concerns about ISA compatibility. Please remind me of other recent conversations that may also be applicable to this JEP. Thanks! ? John P.S. This is not urgent. I don?t think this JEP will be in the current release. But it is important! From maurizio.cimadamore at oracle.com Tue Sep 30 09:27:58 2025 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 30 Sep 2025 10:27:58 +0100 Subject: bye stable values, enter lazy constants In-Reply-To: References: <0c1214f6-c4e5-44c1-b04b-330e38ff41a2@amazon.com> <015c85a4-d117-4b32-9e56-9fb458d7d16f@oracle.com> <033cfbd1-d6c8-4bf4-9f54-c9b7e85c5b89@oracle.com> <39b68d9b-7eeb-4c12-aac3-dd85d5f6a01f@amazon.com> Message-ID: <2a7191e7-097b-4696-a37e-70c63092464b@oracle.com> Hi Sergey > > As you mentioned, something like LazyInitOnce might be a better name. > Is "__Constant > ?really a good alternative? Does it mainly reflect the fact that > @Stable is used internally, and the JVM will treat the value as a > ***true constants***? That seems more about internal JVM behavior than > the actual semantic property of being stable. This is a valid argument -- we'll keep fishing to see if there's better names to express the "stability" part of the contract. > No, I would like a solution for singletons that avoids the following > issues: This is a good shopping list, thanks > ?- Uninitialized default value (e.g., LazyConstant.of()) - similar > problems exist with DCL In the new API, LazyConstant.of() is no longer present (unlike StableValue::of), so I don't think this is an issue (e.g. you _have_ to pass a lambda). > ?- Value being created too early((e.g., > LazyConstant.of(Supplier..))) and accessed without using the getter > method By "value" you mean the LazyConstant itself? Or the lambda expression passed to the factory? Or something else? Also, the "accessed w/o using the getter method" part: if the initialization logic is fully provided at construction, via the lambda, the only thing you can do to get the contents of a lazy constant is by calling its `get` method. This is no longer like StableValue, there's no set method. But perhaps this is the "encapsulation" problem you are referring to -- e.g. the fact that a lazy constant field is available in the namespace of the class (even if privately) in the first place. Let's go back to loggers: ``` class Foo { ??? private static final LazyConstant LOGGER = LazyConstant.of(() -> makeLogger(Foo.class)); ??? static Logger getLogger() { ??????? return LOGGER.get(); ??? } } ``` The "problem" here is that you have a LOGGER field, and the implementation of Foo can access that field directly, w/o calling `getLogger`. Fine. But what can you do with LOGGER if not calling its get() method (which is also what the getter does) ? I'd like to understand the concern better here. > ?- Handling exceptions more robustly than the Holder idiom If an exception is thrown while computing the value is never set on the lazy constant -- meaning the next call to `get` will re-generate the same exception. With holder idiom one of the issue is that exceptions are thrown during initialization of the holder class, which can sometimes add confusion. Maurizio From adinn at openjdk.org Tue Sep 30 15:29:31 2025 From: adinn at openjdk.org (Andrew Dinn) Date: Tue, 30 Sep 2025 15:29:31 GMT Subject: RFR: 8368811: [Leyden] Use AOTRuntimeConstants table for card_table::_byte_map_base In-Reply-To: References: Message-ID: On Sat, 27 Sep 2025 23:55:51 GMT, Vladimir Kozlov wrote: > @adinn what do you think about card_shift in AOTRuntimeConstants table? You added it there. I added it because 1. When I added the AOTRuntimeConstants area to cater for ergonomic changes to RegionGrainSize I thought it might be enlightening to add a 2nd constant as a proof of the concept 2. The card shift is controlled by a GC command line option that users might in theory (but probably not in practice) wish to change between training/assembly and production runs. I'm not committed to keeping it in AOTRuntimeConstants. I agree we can simply log the Assembly time flag and then enforce the same setting in production. ------------- PR Comment: https://git.openjdk.org/leyden/pull/102#issuecomment-3352742051 From kvn at openjdk.org Tue Sep 30 16:14:58 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Tue, 30 Sep 2025 16:14:58 GMT Subject: RFR: 8368811: [Leyden] Use AOTRuntimeConstants table for card_table::_byte_map_base In-Reply-To: References: Message-ID: On Tue, 30 Sep 2025 15:26:32 GMT, Andrew Dinn wrote: > I'm not committed to keeping it in AOTRuntimeConstants. I agree we can simply log the Assembly time flag and then enforce the same setting in production. Thank you. My main concern is that it adds a lot of code to barriers. I will replace it with flag check. Thanks! ------------- PR Comment: https://git.openjdk.org/leyden/pull/102#issuecomment-3352905619 From kvn at openjdk.org Tue Sep 30 16:14:59 2025 From: kvn at openjdk.org (Vladimir Kozlov) Date: Tue, 30 Sep 2025 16:14:59 GMT Subject: RFR: 8368811: [Leyden] Use AOTRuntimeConstants table for card_table::_byte_map_base In-Reply-To: References: Message-ID: On Sat, 27 Sep 2025 23:55:51 GMT, Vladimir Kozlov wrote: > Currently we use `Relocation` info to patch `card_table::_byte_map_base` referenced in compiled code. This is not completely correct since this is not address. We currently have special check in `AOTCodeCache::init2()` to skip AOT code generation and usage if `byte_map_base` is not relocatable [aotCodeCache.cpp#L341](https://github.com/openjdk/leyden/blob/premain/src/hotspot/share/code/aotCodeCache.cpp#L341) > > To avoid this we should use existing `AOTRuntimeConstants` table to load `byte_map_base` from it. > > I also added few missing loads `card_shift` from `AOTRuntimeConstants` table. Actually I am not sure why we have it in `AOTRuntimeConstants` table. From what I see, it is based on `GCCardSizeInBytes` flag [cardTable.cpp#L46](https://github.com/openjdk/leyden/blob/premain/src/hotspot/share/gc/shared/cardTable.cpp#L46) and never modified. The flags is not adjusted ergonomically. So we can simple record the flag in AOT code configuration and verify it when loading AOT code. > > @adinn what do you think about `card_shift` in `AOTRuntimeConstants` table? You added it there. > > Changes were testing tier1-5. And I need to fix minimal VM build :(. ------------- PR Comment: https://git.openjdk.org/leyden/pull/102#issuecomment-3352906735 From iklam at openjdk.org Tue Sep 30 18:57:24 2025 From: iklam at openjdk.org (Ioi Lam) Date: Tue, 30 Sep 2025 18:57:24 GMT Subject: git: openjdk/leyden: premain: 2 new changesets Message-ID: Changeset: 8a1fc0c9 Branch: premain Author: Ioi Lam Date: 2025-09-30 10:48:40 +0000 URL: https://git.openjdk.org/leyden/commit/8a1fc0c9f8a6825540ee40c951eed5bf4ee74b7e Updated benchmarks up to 7b7084b5ecb5ae978209434216e84ddf0ad81f5e ! README.md + test/hotspot/jtreg/premain/bench_data/bench.20250930.txt + test/hotspot/jtreg/premain/bench_data/digest.tcl + test/hotspot/jtreg/premain/bench_data/do_bench.sh ! test/hotspot/jtreg/premain/lib/GithubMDChart.java Changeset: 0af48c89 Branch: premain Author: Ioi Lam Date: 2025-09-30 11:53:48 +0000 URL: https://git.openjdk.org/leyden/commit/0af48c891d742c35ac7eb25abcf59d7ce9c8aa5b Added benchmark data for 2 Cores Only ! README.md + test/hotspot/jtreg/premain/bench_data/bench.20250930-2cpu.txt ! test/hotspot/jtreg/premain/bench_data/digest.tcl From ioi.lam at oracle.com Tue Sep 30 19:48:08 2025 From: ioi.lam at oracle.com (ioi.lam at oracle.com) Date: Tue, 30 Sep 2025 12:48:08 -0700 Subject: Updated benchmark numbers in premain README Message-ID: I've updated the benchmark numbers using the latest premain tip (as of 2025/09/30): https://github.com/openjdk/leyden/blob/premain/README.md#premain-aot-cache-summary There's quite a bit of improvement due to the new compiler tuning changes by Aleksey. I also added a "2 cores only" mode to emulate?microservices that are allocated very few CPUs. Here are the results of {premain AOT} vs {JDK 25, no CDS, no AOT}. Note that premain is generally much more beneficial with the 2 Cores Only case, except for PetClinic: Benchmark? ? ? ? Desktop/Server Class (28 Cores)? ?2 Cores Only *---------------------------------------------------------------------------- *Helidon Quick Start? ? ? ? ? ? ? ? 3.59x 4.11x? ++ JavacBenchApp 50 source files? ? ? 2.21x? ? ? ? ? ? ? ? 3.17x ++++ Micronaut First App Demo? ? ? ? ? ?2.91x? ? ? ? ? ? ? ? 4.90x +++++++ Quarkus Getting Started Demo? ? ? ?2.97x? ? ? ? ? ? ? ? 3.74x +++ Spring-boot Getting Started Demo? ?4.13x? ? ? ? ? ? ? ? 4.70x ++ Spring PetClinic Demo? ? ? ? ? ? ? 3.33x? ? ? ? ? ? ? ? 3.03x -- ??? Changes from last time ( https://github.com/openjdk/leyden/blob/46e03d000efd1b2784ad4dcd4c83310ace498ec0/README.md ) The 2 Core Only case see a lot of improvements with the compiler tuning. PetClinic is again an outlier. Benchmark? ? ? ? ? ?Desktop/Server Class (28 Cores)? ?2 Cores Only ---------------------------------------------------------------------------- Helidon Quick Start? ? ? ? ? ? ? ? 3.60 -> 3.59x? ~? ? ? 3.53 -> 4.11x? ++ JavacBenchApp 50 source files? ? ? 2.17 -> 2.21x? ~? ? ? 2.74 -> 3.17x? ++ Micronaut First App Demo? ? ? ? ? ?2.85 -> 2.91x? +? ? ? 4.39 -> 4.90x? ++ Quarkus Getting Started Demo? ? ? ?2.73 -> 2.97x? ++? ? ?2.95 -> 3.74x? +++ Spring-boot Getting Started Demo? ?3.96 -> 4.13x? ++? ? ?3.70 -> 4.70x? +++ Spring PetClinic Demo? ? ? ? ? ? ? 3.24 -> 3.33x? +? ? ? 3.04 -> 3.03x? ~ (The +, -, ~ are calculated by my eyeballs so not very scientific :-) -------------- next part -------------- An HTML attachment was scrubbed... URL: