-
Notifications
You must be signed in to change notification settings - Fork 115
阿里巴巴Dragonwell11 Extended发布说明
lvfei.lv edited this page Aug 15, 2024
·
23 revisions
openjdk version "11.0.24.21" 2024-07-16
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.24.21+8-GA (build 11.0.24.21+8)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.24.21+8-GA (build 11.0.24.21+8, mixed mode)
- 优化了BigDecimal类在大数据场景下的性能,可通过UseBigDecimalOpt使用本优化
- 优化了重IO场景下的表现,可通过UseIOPrioritySizePolicy使用本优化
- Backport了8246718,在ParallelGC拷贝活对象到survivor区前先执行prefetch,优化GC性能
- 增加G1BarrierSimple选项,优化G1 barrier代码提升吞吐性能
- 增加ReduceNMethodSize选项,打开后可以减少CodeCache的使用量,提升性能,默认关闭。
summary | cr |
---|---|
[Misc] Update version | Issue#225 |
[Misc] optimize BigDecimal.divide | Issue#848 |
[GC] Fix data type in IOPrioritySizePolicy | Issue#855 |
[GC] Fix an assertion that assumed ICBuffer should be cleaned | Issue#850 |
[GC] Fix option type in IOPrioritySizePolicy | CR#852 |
[GC] Add IO related size policy for Parallel GC | CR#847 |
[JIT] Backport: 8331087: Move immutable nmethod data from CodeCache | Issue#842 |
[Misc] Reduce runner permissions | Issue#840 |
[Backport] 8246718: ParallelGC should not check for forward objects for copy task queue | CR#804 |
[GC] Add option G1BarrierSimple to use simple g1 post barrier | Issue#828 |
[GC] Disable ArrayBaseOffsets.java on risc64 | Issue#814 |
[GC] Disable ArrayBaseOffsets.java on risc64 | Issue#814 |
openjdk version "11.0.23.20" 2024-04-16
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.23.20+9-ga (build 11.0.23.20+9)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.23.20+9-ga (build 11.0.23.20+9, mixed mode)
- -XX:+UseCompactObjectHeaders增加了Array的支持,优化了Array的对象内存布局
- 重构RISCV架构的支持代码,和上游对齐
summary | cr |
---|---|
[Misc] Update version | Issue#225 |
[Misc] Disable ArrayBaseOffsets.java#no-coh-no-ccp when test with -XX:+UseCompactObjectHeaders | Issue#812 |
Merge pull request #811 from dragonwell-project/dragonwell_extended-11.0.23.20.9 | CR#811 |
[GC] Fix & optimize arrayEquals on AArch64 (#743) | Issue#743 |
[Backport] 8139457: Relax alignment of array elements | Issue#727 |
[Backport] 8276799: Implementation of JEP 422: Linux/RISC-V Port | CR#800 |
[Misc] Update CI configuration | Issue#796 |
[Misc] Test CdsDifferentCompactObjectHeaders.java should only run with supported GC | Issue#794 |
openjdk version "11.0.22.19" 2024-01-16
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.22.19+7-ga (build 11.0.22.19+7)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.22.19+7-ga (build 11.0.22.19+7, mixed mode)
- Backport 8266074, 8065760, 8036580, 在进行inline分析时,如果通过类继承结构分析发现被调用方法只有一个实现,则可以进行inline提升性能,可以使用选项-XX:+UseVtableBasedCHA打开该优化
- Backport 8225776, 将C2中对G1 post-barrier的布局移动到冷路径,使用G1 GC时性能会有提升
- Backport 8254723, 支持导出JIT编译方法的符号信息用于perf等使用, 可通过选项-XX:+DumpPerfMapAtExit在进程结束时导出或者在运行过程中使用命令jcmd Compiler.perfmap导出
- Backport 8307352,优化itable stub里的搜索循环来提高性能。
summary | cr |
---|---|
[Misc] Update version | Issue#225 |
[GC] Fix a test failure on G1 Concurrent GC MXBean (#789) | Issue#790 |
[JIT] Change option UseVtableBasedCHA to product | Issue#774 |
[JIT] Disable UseVtableBasedCHA by default | Issue#774 |
[Backport] 8307352: AARCH64: Improve itable_stub (#764) | Issue#763 |
[Backport] 8232828: AArch64: compiler/c2/aarch64/TestVolatilesG1.java fails after JDK-8225776 | Issue#766 |
[Backport] 8225776: Optimize branch frequency of G1's write post-barrier in C2 | Issue#766 |
[Backport] 8254723: add diagnostic command to write Linux perf map file | Issue#744 |
openjdk version "11.0.21.18" 2023-10-17
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.21.18+9-GA (build 11.0.21.18+9)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.21.18+9-GA (build 11.0.21.18+9, mixed mode)
- 使用-XX:+UseCompactObjectHeaders开启对象头压缩,一般可以节约10%左右的Java对象内存占用,并可能提升程序性能。目前仅支持G1GC和ParallelGC
- 在x86和aarch64平台解耦了compressed oops and compressed class pointers
- 修复了Windows上HeapDump分段转储无法删除分段文件的问题
summary | cr |
---|---|
[Misc] Update version | Issue#225 |
[Revert] Backout [Backport] 8139457: Relax alignment of array elements | Issue#743 |
[Backport] 8305895: Fix G1 root region scanning crash of original 8305895 backport | Issue#755 |
[Backport] 8305895: Fix a -UseTLAB crash of original 8305895 backport | Issue#747 |
[Backport] 8291555: Fix jvmti of original 8291555 backport | Issue#748 |
[EagerAppCDS] fix compile bugs in testcase | Issue#731 |
[Backport] 8139457: Relax alignment of array elements | Issue#727 |
[Backport] 8305895: Implementation: JEP 450: Compact Object Headers | Issue#721 |
[Misc] Update dragonwell standard commit template | Issue#724 |
[Backport] Fix new fast-locking is_lock_owned of backport of 8291555 | Issue#679 |
[Backport] 8319053: Segment dump files remain after parallel heap dump on Windows | Issue#714 |
[Backport] 8283710: JVMTI: Use BitSet for object marking | Issue#704 |
[EagerAppCDS] Add a EagerAppCDS testcase that test when source is null | Issue#710 |
[Backport] Fix windows build failure | Issue#704 |
[Backport] 8275415: Prepare Leak Profiler for Lilliput | Issue#704 |
[Backport] 8234173: assert(loader != __null && oopDesc::is_oop(loader)) failed: loader must be oop | Issue#704 |
[Wisp] Support new fast locking from backport of 8291555 | Issue#697 |
[Backport] 8305898: Alternative self-forwarding mechanism | Issue#692 |
[Backport] Missing monitor inflation log | Issue#679 |
[Backport] 8305896: Alternative full GC forwarding | Issue#683 |
[Backport] C2CodeStubList should be ResourceObj | Issue#685 |
[EagerAppCDS] Fix unstable test case TestExecStartupProbe | Issue#687 |
[GC] Avoid testing TestSoftMaxHeapSizeFlag.java while using other GCs | Issue#332 |
[Backport] 8291555: Implement alternative fast-locking scheme | Issue#679 |
[Backport] 8246689: Enable independent compressed oops/class ptrs on Aarch64 | Issue#677 |
[Backport] 8241825: Make compressed oops and compressed class pointers independent(x86_64) | Issue#669 |
[Misc] Update riscv build environment | Issue#674 |
[Misc] Fix CI workflow | Issue#674 |
openjdk version "11.0.20.17" 2023-07-18
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.20.17+8-GA (build 11.0.20.17+8)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.20.17+8-GA (build 11.0.20.17+8, mixed mode)
- Backport 了JEP346,帮助及时回收未使用的Uncommitted Memory给系统。增加2个新的jvm参数G1PeriodicGCInterval和G1PeriodicGCSystemLoadThreshold,表示如果程序在最近G1PeriodicGCInterval没有触发过gc且最近1分钟内系统load低于G1PeriodicGCSystemLoadThreshold则触发一次old gc后回收内存。更多信息请参见JEP346。
- 修复自研测试用例TestExecStartupProbe.java超时问题。
- 新增双阶段heapdump,显著降低heapdump期间应用暂停时间
- 调整code cache的segment布局以减少长跳转,从而降低code cache的内存使用率
- Backport C2的patch,提升JIT生成的代码性能
summary | cr |
---|---|
[Misc] Update version | Issue#225 |
[HeapDump] Optimize segmented heap file merging phase | Issue#630 |
[Backport] 8280872: Reorder code cache segments to improve code density | Issue#664 |
[Backport] 8210853: JIT: C2 doesn't skip post barrier for new allocated objects | Issue#658 |
[Backport] 8212883: Setting a double manageable flag with jcmd/jinfo crashes the JVM | Issue#662 |
[Backport] 8218880: G1 crashes when issuing a periodic GC while the GCLocker is held | Issue#662 |
[Backport] JEP346 and bug fixes | Issue#662 |
[Backport] 6490394 and 8213898 | Issue#662 |
[Backport] 8071913: Filter out entries to free/uncommitted regions during iteration | Issue#662 |
[Backport] 8231412: C2: InitializeNode::detect_init_independence() bails out on simple IR shapes | Issue#660 |
[Backport] 8276673: Optimize abs operations in C2 compiler | Issue#648 |
[Backport] Two phase segmented heap dump | Issue#630 |
[EagerAppCDS] extend time for testcase TestExecStartupProbe | Issue#655 |
openjdk version "11.0.20.16" 2023-07-18
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.20.16+8-GA (build 11.0.20.16+8)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.20.16+8-GA (build 11.0.20.16+8, mixed mode)
- 对于MethodHandle,通过receiver的推断类型,提升inline的判断,提升MH的性能表现
- 提升inline的表现,取消根据绝对调用次数进行inline的判断逻辑
- 修复
_do_not_unlock_if_synchronized
机制引发的丢锁
summary | cr |
---|---|
[Misc] Update version | Issue#225 |
[Backport] 8272873: C2: Inlining should not depend on absolute call site counts | Issue#635 |
[Wisp] Fix potential issues: unbalanced monitors and killed arrayoop pending_unpark | Issue#619 |
[Backport] 8269285: Crash/miscompile in CallGenerator::for_method_handle_inline after JDK-8191998 | Issue#636 |
[Backport] 8192001: C2: inlining through dispatching MH linkers ignores speculative type of the receiver | Issue#635 |
[Backport] 8191998: C2: inlining through MH linkers drops speculative part of argument types | Issue#634 |
openjdk version "11.0.19.15" 2023-04-18
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.19.15+7-GA (build 11.0.19.15+7)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.19.15+7-GA (build 11.0.19.15+7, mixed mode)
- 提供了1st incubator VectorAPI。JDK用户可以通过VectorAPI来使用向量化运算来提升性能。 这些API在运行时能够可靠地编译为当前支持的CPU架构上的最佳向量化指令,从而获得优于同等标量计算的性能。
- 支持平台:x86
- 修复了1st incubator相关的一系列bugs
- 相关的代码提交:
- JDK-8265317: [vector] assert(payload->is_object()) failed: expected 'object' value for scalar-replaced boxed vector but got: NULL
- JDK-8263125: During deoptimization vectors should reassign scalarized payload after all objects are reallocated.
- JDK-8262096: Vector API fails to work due to VectorShape initialization exception
- JDK-8257625: C2: Harden input checks in vector intrinsics
- JDK-8265956: JVM crashes when matching LShiftVB Node
- JDK-8255915: jdk/incubator/vector/AddTest.java timed out
- JDK-8263972: C2: LoadVector/StoreVector type mismatch in MemNode::can_see_stored_value()
- JDK-8259775: [Vector API] Incorrect code-gen for VectorReinterpret operation
- JDK-8258272: LoadVectorMaskedNode can't be replaced by zero con
- JDK-8259213: Vector conversion with part > 0 is not getting intrinsic implementation
- JDK-8257537: [vector] Cleanup redundant bitwise cases on floating point vectors
- JDK-8257165: C2: Improve box elimination for vector masks and shuffles
- JDK-8259353: VectorReinterpretNode is incorrectly optimized out
- JDK-8258989: JVM is failed to inline in jdk.internal.vm.vector.VectorSupport::convert
- JDK-8257806: Optimize x86 allTrue and anyTrue vector mask operations of Vector API
- JDK-8255959: Timeouts in VectorConversion tests
- JDK-8257057: C2: Improve safepoint processing during vector scalarization pass
- JDK-8256585: Remove in-place conversion vector operators from Vector API
- JDK-8256995: [vector] Improve broadcast operations
- JDK-8256073: Improve vector rematerialization support
- JDK-8255367: C2: Deoptimization during vector box construction is broken
- JDK-8256058: Improve vector register handling in RegisterMap::pd_location() on x86
- JDK-8256581: Refactor vector conversion tests
- JDK-8255448: Fastdebug JVM crashes with Vector API when PrintAssembly is turned on
- JDK-8256054: C2: Floating-point min/max operations on vectors intermittently produce wrong results for NaN values
- JDK-8255565 [Vector API] Add missing format strings for extract instructs in x86.ad
- JDK-8255438 [Vector API] More instructs in x86.ad should use legacy mode for code-gen
- JDK-8255349: Vector API issues on Big Endian
- JDK-8255378 [Vector API] Remove redundant vector length check after JDK-8254814 and JDK-8255210
- JDK-8255210 [Vector API] jdk/incubator/vector/Int256VectorTests.java crashes on AVX512 machines
- JDK-8255174: Vector API unit tests for missed public api code coverage
- JDK-8255022: Documentation missing for Vector API zero methods
- JDK-8255020: Minor updates to docs jdk.incubator.vector
- JDK-8244186: assertion failure test/jdk/javax/net/ssl/DTLS/RespondToRetransmit.java
- JDK-8242491: C2: assert(v2->bottom_type() == vt) failed: mismatch when creating MacroLogicV
- JDK-8250745: assert(eval_map.contains(n)) failed: absent
- JDK-8223347: Integration of Vector API (Incubator)
- JDK-8239009: C2: Don't use PSHUF to load scalars from memory on x86
- JDK-8242492: C2: Remove Matcher::vector_shift_count_ideal_reg()
- JDK-8241434: x86: Fix Assembler::emit_operand asserts for XMM registers
- JDK-8242070: AArch64: Fix a typo introduced by JDK-8238690
- JDK-8238690: C2: Handle vector shifts by constant and non-constant scalar uniformly
- JDK-8242073: x86_32 build failure after JDK-8241040
- JDK-8241040: Support for AVX-512 Ternary Logic Instruction.
- JDK-8239008: C2: Simplify Replicate support for sub-word types on x86
- JDK-8238680: C2: Remove redundant AD instructions for Replicate nodes
- Subset of 8223320 for VectorAPI: 8223347
- JDK-8241042: x86_64: Improve Assembler generation.
- JDK-8234891: AArch64: Fix build failure after JDK-8234387
- JDK-8240248: Extend superword reduction optimizations for x86
- JDK-8236443: Issues with specializing vector register type for phi operand with generic operands
- JDK-8236364: TEMP vector registers could be incorrectly assigned upper bank xmm registers after Generic Operands (JDK-8234391)
- JDK-8235756: C2: Merge AD instructions for DivV, SqrtV, and FmaV nodes
- JDK-8235825: C2: Merge AD instructions for Replicate nodes
- JDK-8235688: C2: Merge AD instructions for AddV, SubV, and MulV nodes
- JDK-8235719: C2: Merge AD instructions for ShiftV, AbsV, and NegV nodes
- JDK-8235824: C2: Merge AD instructions for AddReductionV and MulReductionV nodes
- JDK-8235405: C2: Merge AD instructions for different vector operations
- JDK-8234391: C2: Generic vector operands
- JDK-8234392 C2: Extend Matcher::match_rule_supported_vector() with element type information
- JDK-8234394: C2: Dynamic register class support in ADLC
- JDK-8234387: C2: Better support of operands with multiple match rules in AD files
- JDK-8286277: 修复在使用CDS的情况下,对class进行Verify的bug。此bug会导致okhttp的包如果在CDS中使用时会出现类校验失败的问题
- 提供了 EagerAppCDS 和 QuickStart 特性,用户可以执行两次
-Xquickstart:verbose
进行开启:第一次用于 trace 内部数据、dump 共享文件,第二次用于 replay 加速应用启动。
-
- 增加了自动触发dump的功能,此功能是为了配合k8s中环境中使用快速启动,不建议直接使用此功能。
-
- 为AArch64平台增加CDS支持
- JDK-8255756: 修改并简化关闭日志操作,disable_outputs在后续测试中会出现crash,所以需要移植。
- JDK-8256178: 给LogFileStreamOutput::write()中用到的锁添加RAII机制,和上游保持一致。
- JDK-8256008: 磁盘写失败时增加报错。
- JDK-8266536: 增加一个重载函数os::iso8601_time(),可以输出特定时间,为异步日志提供便利。
- JDK-8266503: 修改Decorations类使其可以安全地被复制,并减小其大小,在后续patch JDK-8267952中会用到。
- JDK-8229517: 初步支持异步日志功能。
- JDK-8267926: 修复debug模式下LogDecorations和LogOutput::_decorators不一致的问题。
- JDK-8268165: 修复rotate()失败导致的crash问题,增加对_stream是否为空的检测。
- JDK-8268852: 由于AsyncLogWriter是一种特殊的gc线程,所以不应该覆盖is_Named_thread()。
- JDK-8268638: 修复JVM退出时信号量损坏问题。
- JDK-8269064: 修复丢失信息时导致的内存泄漏问题。
- JDK-8267952: 增加对动态改变tag和decorator的支持。
- JDK-8269865: 处理信号量溢出问题。
- JDK-8273610: 修复LogTestFixture::restore_config()中对options的修改。
- JDK-8267517: 为stdout和stderr增加async log功能。
- JDK-8288904: 修复内存顺序问题,防止对LogOutputList节点的修改在检查reader前面。
- JDK-8305819: 修复LogOutputList并发读写时乱序导致的错误,在读写两侧增加内存屏障。
- JDK-8297247: 加入G1的Remark和Cleanup阶段的GarbageCollectorMXBean
- 增加海光平台支持
summary | cr |
---|---|
[Misc] Update version | Issue#225 |
[Backport] 8305819: LogConfigurationTest intermittently fails on AArch64 | Issue#529 |
[Backport] 8288904: Incorrect memory ordering in UL | Issue#529 |
[EagerAppCDS] Add CDS Support for AArch64 | Issue#547 |
[Backport] 8297247: Add GarbageCollectorMXBean for Remark and Cleanup | Issue#538 |
[Backport] 8262096: Vector API fails to work due to VectorShape initialization exception | Issue#543 |
[Misc] Add riscv build in workflow | Issue#540 |
[Misc] RISC-V backend build broken after merging VectorAPI | Issue#510 |
[Backport] JDK-8286277: CDS VerifyError when calling clone() on object array | Issue#536 |
[Backport] 8265317: [vector] assert(payload->is_object()) failed: expected 'object' value for scalar-replaced boxed vector but got: NULL | Issue#507 |
[Backport] 8263125: During deoptimization vectors should reassign scalarized payload after all objects are reallocated. | Issue#465 |
[Backport] 8257625: C2: Harden input checks in vector intrinsics | Issue#453 |
[Backport] 8265956: JVM crashes when matching LShiftVB Node | Issue#464 |
[Backport] 8255915: jdk/incubator/vector/AddTest.java timed out | Issue#467 |
[Backport] 8263972: C2: LoadVector/StoreVector type mismatch in MemNode::can_see_stored_value() | Issue#466 |
[Backport] 8259775: [Vector API] Incorrect code-gen for VectorReinterpret operation | Issue#462 |
[Backport] 8258272: LoadVectorMaskedNode can't be replaced by zero con | Issue#461 |
[Backport] 8259213: Vector conversion with part > 0 is not getting intrinsic implementation | Issue#458 |
[Backport] 8257537: [vector] Cleanup redundant bitwise cases on floating point vectors | Issue#452 |
[Backport] 8257165: C2: Improve box elimination for vector masks and shuffles | Issue#450 |
[Backport] 8259353: VectorReinterpretNode is incorrectly optimized out | Issue#460 |
[Backport] 8258989: JVM is failed to inline in jdk.internal.vm.vector.VectorSupport::convert | Issue#459 |
[Backport] 8257806: Optimize x86 allTrue and anyTrue vector mask operations of Vector API | Issue#455 |
[Backport] 8255959: Timeouts in VectorConversion tests | Issue#454 |
[Backport] 8257057: C2: Improve safepoint processing during vector scalarization pass | Issue#449 |
[Backport] 8256585: Remove in-place conversion vector operators from Vector API | Issue#448 |
[Backport] 8256995: [vector] Improve broadcast operations | Issue#451 |
[Backport] 8256073: Improve vector rematerialization support | Issue#447 |
[Backport] 8255367: C2: Deoptimization during vector box construction is broken | Issue#446 |
[Backport] 8256058: Improve vector register handling in RegisterMap::pd_location() on x86 | Issue#444 |
[Backport] 8256581: Refactor vector conversion tests | Issue#443 |
[Backport] 8255448: Fastdebug JVM crashes with Vector API when PrintAssembly is turned on | Issue#442 |
[Backport] 8256054: C2: Floating-point min/max operations on vectors intermittently produce wrong results for NaN values | Issue#439 |
[Backport] 8255565 [Vector API] Add missing format strings for extract instructs in x86.ad | Issue#438 |
[Backport] 8255438 [Vector API] More instructs in x86.ad should use legacy mode for code-gen | Issue#437 |
[Backport] 8255349: Vector API issues on Big Endian | Issue#435 |
[Backport] 8255378 [Vector API] Remove redundant vector length check after JDK-8254814 and JDK-8255210 | Issue#436 |
[Backport] 8255210 [Vector API] jdk/incubator/vector/Int256VectorTests.java crashes on AVX512 machines | Issue#434 |
[Backport] 8255174: Vector API unit tests for missed public api code coverage | Issue#433 |
[Backport] 8255022: Documentation missing for Vector API zero methods | Issue#432 |
[Backport] 8255020: Minor updates to docs jdk.incubator.vector | Issue#431 |
[Backport] 8244186: assertion failure test/jdk/javax/net/ssl/DTLS/RespondToRetransmit.java | Issue#414 |
[Backport] 8242491: C2: assert(v2->bottom_type() == vt) failed: mismatch when creating MacroLogicV | Issue#413 |
[Backport] 8250745: assert(eval_map.contains(n)) failed: absent | Issue#412 |
[Backport] 8223347: Integration of Vector API (Incubator) | Issue#294 |
[Backport] 8239009: C2: Don't use PSHUF to load scalars from memory on x86 | Issue#381 |
[Backport] 8242492: C2: Remove Matcher::vector_shift_count_ideal_reg() | Issue#352 |
[Backport] 8241434: x86: Fix Assembler::emit_operand asserts for XMM registers | Issue#374 |
[Backport] 8242070: AArch64: Fix a typo introduced by JDK-8238690 | Issue#376 |
[Backport] 8238690: C2: Handle vector shifts by constant and non-constant scalar uniformly | Issue#373 |
[Backport] 8242073: x86_32 build failure after JDK-8241040 | Issue#369 |
[Backport] 8241040: Support for AVX-512 Ternary Logic Instruction. | Issue#367 |
[Backport] 8239008: C2: Simplify Replicate support for sub-word types on x86 | Issue#365 |
[Backport] 8238680: C2: Remove redundant AD instructions for Replicate nodes | Issue#363 |
[Backport] Subset of 8223320 for VectorAPI: 8223347 | Issue#361 |
[Backport] 8241042: x86_64: Improve Assembler generation. | Issue#350 |
[Backport] 8234891: AArch64: Fix build failure after JDK-8234387 | Issue#348 |
[Backport] VectorAPI: 8240248: Extend superword reduction optimizations for x86 | Issue#304 |
[Backport] VectorAPI: 8236443: Issues with specializing vector register type for phi operand with generic operands | Issue#302 |
[Backport] VectorAPI: 8236364: TEMP vector registers could be incorrectly assigned upper bank xmm registers after Generic Operands (JDK-8234391) | Issue#300 |
[Backport] 8235756: C2: Merge AD instructions for DivV, SqrtV, and FmaV nodes | Issue#292 |
[Backport] 8235825: C2: Merge AD instructions for Replicate nodes | Issue#286 |
[Backport] 8235688: C2: Merge AD instructions for AddV, SubV, and MulV nodes | Issue#290 |
[Backport] 8235719: C2: Merge AD instructions for ShiftV, AbsV, and NegV nodes | Issue#287 |
[Backport] 8235824: C2: Merge AD instructions for AddReductionV and MulReductionV nodes | Issue#284 |
[Backport] 8235405: C2: Merge AD instructions for different vector operations | Issue#282 |
[Backport] 8234391: C2: Generic vector operands | Issue#277 |
[Backport] 8234392 C2: Extend Matcher::match_rule_supported_vector() with element type information | Issue#278 |
[Backport] 8234394: C2: Dynamic register class support in ADLC | Issue#269 |
[Backport] 8234387: C2: Better support of operands with multiple match rules in AD files | Issue#268 |
[QuickStart] Add startupProbe support and disable Quickstart by environment variable | Issue#521 |
[Misc] Update serverless-adapter.jar in Git Action | Issue#345 |
[Backport] 8222090: Add Hygon Dhyana processor support | Issue#516 |
[Backport] 8267517: async logging for stdout and stderr | Issue#514 |
[Backport] 8273610: LogTestFixture::restore_config() should not restore options | Issue#514 |
[Backport] 8269865: Async UL needs to handle ERANGE on exceeding SEM_VALUE_MAX | Issue#514 |
[Backport] 8267952: async logging supports to dynamically change tags and decorators | Issue#514 |
[Backport] 8269064: Dropped messages of AsyncLogWriter cause | Issue#514 |
[Backport] 8268638: semaphores of AsyncLogWriter may be broken when JVM is exiting | Issue#514 |
[Backport] 8268852: AsyncLogWriter should not overide | Issue#514 |
[Backport] 8268165: AsyncLogging will crash if rotate() fails | Issue#514 |
[Backport] 8267926: AsyncLogGtest.java fails on assert with: | Issue#514 |
[Backport] 8229517: Support for optional asynchronous/buffered | Issue#514 |
[Backport] 8266503: [UL] Make Decorations safely copy-able and | Issue#514 |
[Backport] 8266536: Provide a variant of os::iso8601_time which | Issue#514 |
[Backport] 8256008: UL does not report anything if disk writing | Issue#514 |
[Backport] 8256178: Add RAII object for file lock | Issue#514 |
[Backport] 8255756: Disabling logging does unnecessary work | Issue#514 |
[Misc] Update dragonwell links to new org | Issue#510 |
[QuickStart] Add Quickstart tests | Issue#345 |
[EagerAppCDS] Add EagerAppCDS tests | Issue#345 |
[Misc] Enable serverless-adapter build in aciton workflow | Issue#497 |
[QuickStart] QuickStart implementation | Issue#345 |
[EagerAppCDS] EagerAppCDS implementation | Issue#345 |
[Backport] 8218029: [TESTBUG] Use -Djava.class.path= to specify empty -cp in CDS tests | Issue#402 |
[Misc] Fix CDS test failures | Issue#402 |
[Backport] 8221351: Crash in KlassFactory::check_shared_class_file_load_hook | Issue#402 |
[Misc] Introduce a ClassLoader instance signature mechanism | Issue#402 |
[Backport] Port missing tests from upstream for the JDK11 port: 8218751: Do not store original classfiles inside the CDS archive | Issue#402 |
[Wisp] Fix test/jdk/java/dyn tests | Issue#405 |
[Backport] JDK-8213587: Speed up CDS dump time by using resizable hashtables | Issue#402 |
[Backport] 8232069: Enable CDS even when UseCompressedClassPointers and/or UseCompressedOops are false | Issue#402 |
openjdk version "11.0.18.14" 2023-01-17
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.18.14+9-GA (build 11.0.18.14+9)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.18.14+9-GA (build 11.0.18.14+9, mixed mode)
- Wisp: 修复 WispThreadCompositeData.getCompositeData() 抛 NPE 的问题。
- Wisp: 支持不同协程阻塞在同一个socket的读和写事件上,
-Dcom.alibaba.wisp.separateIOPoller=true
开启。 - 增加了功能类似JAVA_TOOL_OPTIONS环境变量:DRAGONWELL_JAVA_TOOL_OPTIONS和DRAGONWELL_JAVA_TOOL_OPTIONS_JDK_ONLY,但是特定于Alibaba Dragonwell. DRAGONWELL_JAVA_TOOL_OPTIONS_JDK_ONLY如果设置为true的话,意味着DRAGONWELL_JAVA_TOOL_OPTIONS对于jdk自带的工具如jps,jmap,jstat等不起作用,但是其它java应用生效
- 发布 Dragonwell11 的 RISC-V 版本。
summary | cr |
---|---|
[Misc] Update version | Issue#225 |
[Wisp] Separate IO poller | Issue#311 |
[Misc] Add vendor specific java tool options: DRAGONWELL_JAVA_TOOL_OPTIONS | Issue#406 |
[Misc] add arm64 build and test in workflow | Issue#341 |
[Wisp] WispThreadCompositeData.getCompositeData() should use legal Thread State String | Issue#345 |
[Misc] Fix ported TestLibmIntrinsics.java | Issue#209 |
[Wisp] WispThreadCompositeData.getCompositeData() should handle null WispTask | Issue#345 |
[Misc] fix github action and add arm64 build in workflow | Issue#341 |
[RISCV] Backport RVV and support RVV-0.7.1 | Issue#295 |
[RISCV] support paired memory instruction in CSky (#217) | Issue#217 |
[Backport] Backport RISC-V backend code from the openjdk/riscv-port repo's initial load | Issue#209 |
[Misc] fix TestPolicy.java and BuildEEBasicConstraints.java fail because of certificates expired | Issue#327 |
[Misc] fix SpecTest.java intermittently timeout | Issue#322 |
[Misc] fix testcase bug Test7029048.java | Issue#261 |
openjdk version "11.0.17.13" 2022-10-18
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.17.13+8-GA (build 11.0.17.13+8)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.17.13+8-GA (build 11.0.17.13+8, mixed mode)
- 修复 crash 在 java_lang_Thread::get_thread_status() 的问题
- 支持 SocketChannel 和 Pipe 的协程切换
- 适配 Thread.stackSize
summary | cr |
---|---|
[Misc] Update version | Issue#225 |
[Misc] fix TestPreemptWisp2InternalBug.java intermittently fail | Issue#313 |
[Misc] fix port conflict between TestBlockingAccept2.java and TestBlockingAccept2.java | Issue#310 |
[Misc] fix error get PID method in TestMiniHeapDumpOpts.sh and enable it | Issue#308 |
[Misc] fix TestMiniDump.sh intermittently does not terminate java process when test finish | Issue#306 |
[Wisp] Blocking io support for SocketChannel and Pipe | Issue#272 |
[Wisp] Adapt Thread.stackSize
|
Issue#331 |
[Wisp] C1: Clear dead locals for MonitorExit that copies state to generate debuginfo | Issue#216 |
[Misc] fix UnsafeIntrinsicsTest.java run OOM on same machine | Issue#267 |
[Wisp] Fix missing oops_do for WispThread | Issue#263 |
openjdk version "11.0.16.12" 2022-07-19
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.16.12+8-GA (build 11.0.16.12+8)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.16.12+8-GA (build 11.0.16.12+8, mixed mode)
- 支持在wisp下获取线程状态和使用
ThreadMxbean
API - 支持ZUnmapBadViews
Summary | Issue |
---|---|
[Misc] Update DRAGONWELL_VERSION to 11.0.16.12.8 | Issue #225 |
[Misc] Decrease the probability of intermittent fail/timeout for wisp/wisp2 testcases; Disable TestSocket.java TestSleep.java by problem list | Issue #255 |
[Misc] fix testcase bug StepTest.java | Issue #252 |
[Backport] 8244508: JFR: FlightRecorderOptions reset date format | Issue #243 |
[GC] Restore option ZUnmapBadViews | Pull #240 |
[Wisp] Support thread state and ThreadMxbean | Issue #175 |
dragonwell_patches : 6 | |
upstream_patches : 272 | |
malformed_patches : 3 | |
internal_patches : 0 |
openjdk version "11.0.15.11" 2022-04-19
OpenJDK Runtime Environment (Alibaba Dragonwell)-11.0.15.11+9-GA (build 11.0.15.11+9)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell)-11.0.15.11+9-GA (build 11.0.15.11+9, mixed mode)
- 修复在 sampleobjectallocations 禁用情况下,通过 JCMD 启动时 ObjectProfiling 功能的非预期行为
- Correct copied bytes calculation for more predicatable gc
- Fixed a C-heap memory leak issue related to OWSTTaskTerminator
- Correctly handle processor id that might be bigger than the number of processors, which caused ZGC to crash
Summary | Issue |
---|---|
[JFR] Unexpected behavior when enable Opto related allocation event by JCMD when -XX:FlightRecorderOptions=sampleobjectallocations=true is disabled | Issue #237 |
[Misc] Fix version number | Issue #225 |
[GC] 8228609: G1 copy cost prediction uses used vs. actual copied bytes | Issue #226 |
[GC] Memory leak because OWSTTaskTerminator destructor not called | Issue #220 |
[Misc] Fix unstable wisp tests | Issue #192 |
[GC] 8259765: ZGC: Handle incorrect processor id reported by the operating | Issue #214 |
[Misc] Remove unnecessary tests for Dragonwell11 | Issue #212 |
[Misc] Enable action for Dragonwell features | Issue #192 |
dragonwell_patches : 8 | |
upstream_patches : 188 | |
malformed_patches : 0 | |
internal_patches : 0 |
openjdk 11.0.14.10 2022-01-18
OpenJDK Runtime Environment (Alibaba Dragonwell)-11.0.14.10+0-GA (build 11.0.14.10+0)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell)-11.0.14.10+0-GA (build 11.0.14.10+0, mixed mode)
Summary | Issue |
---|---|
[Misc] Update Dragonwell11 version to 11.0.14.10-GA | Issue #206 |
[Misc] Update Dragonwell11 version to 11.0.14.10 | Issue #206 |
[Wisp] Fix TestPassToken | Issue #204 |
[GC] 8233061: ZGC: Enforce memory ordering in segmented bit maps | Issue #194 |
[GC] 8233073: Make BitMap accessors more memory ordering friendly | Issue #194 |
[Misc] fix unstable wisp tests | Issue #192 |
[GC] 8248048: ZGC: AArch64: SIGILL in load barrier register spilling | Issue #196 |
[GC] Backport a part of 8257073 for the correctness of accessing a forwarded object | Issue #195 |
[GC] 8245233: ZGC: Load volatile oops using Atomic::load() | Issue #195 |
[GC] 8254672: ZGC: ZParallelOopsDo/ZSerialWeakOopsDo should use atomic load/store | Issue #195 |
[Misc] Update publications in README.md | Issue #136 |
[JFR] Fix object profiling stacktrace problem on aarch64 platform | Issue #189 |
dragonwell_patches : 12 | |
upstream_patches : 381 | |
malformed_patches : 0 | |
internal_patches : 0 |
openjdk version "11.0.13.9" 2021-10-19
OpenJDK Runtime Environment (Alibaba Dragonwell)-11.0.13.9+0 (build 11.0.13.9+0)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell)-11.0.13.9+0 (build 11.0.13.9+0, mixed mode)
Summary | Issue |
---|---|
[JFR] Fix object profiling stacktrace problem on aarch64 platform | Issue #189 |
[Misc] Update Dragonwell11 version to 11.0.13.9 | Issue #183 |
[JFR] Fix JFR related test cases caused by merging 11.0.13 | Issue #188 |
[Misc] Add gated checkin github action | Issue #187 |
[GC] Add test for pause time record of ZGC class unloading | Issue #181 |
[Wisp] Fix Windows and MacOS capability | Issue #140 |
[GC] MXBean should report the pause time of class unloading | Issue #180 |
[GC] Disarm all nmethods if the ZGC cycle does not unload classes | Issue #177 |
[GC] 8252500: ZGC on aarch64: Unable to allocate heap for certain Linux kernel configurations | Issue #173 |
[Backport] 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern | Issue #70 |
[Misc] Backport 8263185: Mallinfo deprecated in glibc 2.33 | Issue #168 |
[Wisp] Port bug fixes and Multi-tenant support to JDK11 | |
[Wisp] Port Wisp1/2 to JDK11 | |
[Misc] Update Dragonwell11 version to 11.0.12.8 | Issue #131 |
[GC] 8265136: ZGC: Expose GarbageCollectorMXBeans for both pauses and cycles | Issue #133 |
[GC] 8244291: Test: gc/z/TestGarbageCollectorMXBean.java failed: "unexpected cycles" | Issue #133 |
[GC] 8240679: ZGC GarbageCollectorMXBean reports inaccurate post GC heap size for ZHeap pool | Issue #133 |
[Wisp] Port JKU coroutine support to JDK11 | Issue #130 |
# 11.0.12.8
openjdk version "11.0.12.8" 2021-07-20
OpenJDK Runtime Environment (Alibaba Dragonwell) (build 11.0.12.8+0)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell) (build 11.0.12.8+0, mixed mode)
- Issue 133: ZGC Monitoring: GarbageCollectorMXBean reports both ZGC cycles and ZGC pauses
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (Alibaba Dragonwell) (build 11.0.11+0)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell) (build 11.0.11+0, mixed mode)
- Issue 125: ZGC options and ZGC JFR events become production-ready features
- Issue 128: Fix an assertion failure in ZGC class unloading
Type | Option | Description |
---|---|---|
Memory Uncommit | ZUncommit | Uncommit unused memory |
ZUncommitDelay | Uncommit memory if it has been unused for the specified amount of time (in seconds) | |
Class Unloading | ZUnloadClassesFrequency | Unload the classes every Nth ZGC cycle. (Set to zero to disable class unloading.) |
GC Trigger Timing | ZAllocationSpikeTolerance | Allocation spike tolerance factor |
ZCollectionInterval | Force GC at a fixed time interval (in seconds) | |
ZProactive | Enable proactive GC cycles | |
SoftMaxHeapSize | Soft limit for maximum heap size (manageable option) | |
ZHighUsagePercent | Percentage of heap usage for ZGC high usage rule | |
Other | ZPath | Filesystem path for Java heap backing storage |
ZFragmentationLimit | Maximum allowed heap fragmentation | |
ZMarkStackSpaceLimit | Maximum number of bytes allocated for mark stacks | |
ZRelocationReservePercent | Percentage of total heap size reserved for relocation. (To prevent accidental OOM) | |
ZMediumObjectUpperBound | Upper bound of the object size in ZGC medium page | |
ZStatisticsInterval | Time between statistics print outs (in seconds) (with -XX:+UnlockDiagnosticVMOptions) |
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (Alibaba Dragonwell) (build 11.0.11+0)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell) (build 11.0.11+0, mixed mode)
- Backporting production-ready features for ZGC:
- Redesign C2 load barrier;
- Class unloading (
ClassUnloading
is available); - Uncommit unused memory (
ZUncommit
/ZUncommitDelay
/SoftMaxHeapSize
); - Huge and tiny heaps (8MB~16TB);
- Parallel heap pre-touching;
- Improved allocation concurrency;
- JFR events;
- Reserve memory space to avoid OOM (
ZRelocationReservePercent
); - High usage limitation for heaps (
ZHighUsagePercent
); - Medium object size limitation (
ZMediumObjectUpperBound
); - Class unloading frequency (
ZUnloadClassesFrequency
).
- issue 107 Backport: Eliminate continuous uncommon traps in CallSite::init during execution.
- Optimize Java ObjectStream serialization performance. Enabled by
-Dcom.alibaba.enableFastSerialization=true
openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment (Alibaba Dragonwell) (build 11.0.10+0)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell) (build 11.0.10+0, mixed mode)
- Issue 56 Backport Portola project. Publish Dragonwell11 JDK which supports Alpine Linux x86-64 platform.
openjdk version "11.0.9" 2020-10-20
OpenJDK Runtime Environment (Alibaba Dragonwell) (build 11.0.9+0)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell) (build 11.0.9+0, mixed mode)
- Released aarch64 Dragonwell11
- The released Dragonwell11 binary was built by GCC9.2.0 with -march=armv8.2. Please use it on an aarch64 server with arm v8.2 support.
- Backport GC working stealing optimizaitons
- Released binary with Windows support. But this version is EXPERIMENTAL ONLY. Please do not use it in product environment.
openjdk version "11.0.7.2" 2020-04-26
OpenJDK Runtime Environment (Alibaba Dragonwell) (build 11.0.7.2+9)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell) (build 11.0.7.2+9, mixed mode)
- Issue 18 Fixed JTreg testing failure caused by JFR object profiling feature
-
Issue 20 Upgrade base JDK version to tag
jdk-11.0.7-ga
openjdk version "11.0.5.1-preview" 2019-12-29
OpenJDK Runtime Environment (Alibaba Dragonwell) (build 11.0.5.1-preview+7)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell) (build 11.0.5.1-preview+7, mixed mode)
- Added object allocation profiling support in JFR and you can use
-XX:FlightRecorderOptions=sampleobjectallocations=true
to enable this feature, which allows to sample object allocation(instance or array) in C2 compiler and two new sampling JFR events, OptoInstanceObjectAllocation and OptoArrayObjectAllocation are added to trace object allocation once the target sample is hit, which is configured byobjectallocationssamplinginterval
option. The user can use JMC to analyze the hot path of object allocation. Please reference the user guide for more details.
- Added new option
-XX:ArrayAllocationWarningSize=<size>
to print the calling stack of an array allocation whose size beyond theArrayAllocationWarningSize
, the default value of this option is512M
. It can be changed byjinfo
. - Added new option
-mini
to sub-command dump ofjmap
tool to skip the content of primitive type arrays in heapdump. Seejmap -help
for more information.