Skip to content

阿里巴巴Dragonwell11 Extended发布说明

lvfei.lv edited this page Aug 15, 2024 · 23 revisions

11.0.24.21

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)

特性

Runtime

java.math

  • 优化了BigDecimal类在大数据场景下的性能,可通过UseBigDecimalOpt使用本优化

GC

ParallelGC

  • 优化了重IO场景下的表现,可通过UseIOPrioritySizePolicy使用本优化
  • Backport了8246718,在ParallelGC拷贝活对象到survivor区前先执行prefetch,优化GC性能

G1

  • 增加G1BarrierSimple选项,优化G1 barrier代码提升吞吐性能

JIT

CodeCache

  • 增加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

11.0.23.20

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)

特性

Runtime

-XX:+UseCompactObjectHeaders增加了Array的支持

  • -XX:+UseCompactObjectHeaders增加了Array的支持,优化了Array的对象内存布局

JIT

支持RISCV架构

  • 重构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

11.0.22.19

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)

特性

JIT

  • 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导出

AArch64

  • 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

11.0.21.18

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)

特性

Runtime

提供了JEP 450: Compact Object Headers的功能

  • 使用-XX:+UseCompactObjectHeaders开启对象头压缩,一般可以节约10%左右的Java对象内存占用,并可能提升程序性能。目前仅支持G1GC和ParallelGC

移植了JDK-8241825和JDK-8246689

  • 在x86和aarch64平台解耦了compressed oops and compressed class pointers

Serviceability

HeapDump问题修复

  • 修复了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

11.0.20.17

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) 

特性

GC

  • Backport 了JEP346,帮助及时回收未使用的Uncommitted Memory给系统。增加2个新的jvm参数G1PeriodicGCInterval和G1PeriodicGCSystemLoadThreshold,表示如果程序在最近G1PeriodicGCInterval没有触发过gc且最近1分钟内系统load低于G1PeriodicGCSystemLoadThreshold则触发一次old gc后回收内存。更多信息请参见JEP346

EagerAppCDS

  • 修复自研测试用例TestExecStartupProbe.java超时问题。

HeapDump

  • 新增双阶段heapdump,显著降低heapdump期间应用暂停时间

JIT

  • 调整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

11.0.20.16

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)

特性

JIT

  1. 对于MethodHandle,通过receiver的推断类型,提升inline的判断,提升MH的性能表现
  2. 提升inline的表现,取消根据绝对调用次数进行inline的判断逻辑

Runtime

  1. 修复 _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

11.0.19.15

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)

特性

VectorAPI Backport

  1. 提供了1st incubator VectorAPI。JDK用户可以通过VectorAPI来使用向量化运算来提升性能。 这些API在运行时能够可靠地编译为当前支持的CPU架构上的最佳向量化指令,从而获得优于同等标量计算的性能。
  2. 支持平台:x86
  3. 修复了1st incubator相关的一系列bugs
  4. 相关的代码提交:
  • 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

CDS Backport

  1. JDK-8286277: 修复在使用CDS的情况下,对class进行Verify的bug。此bug会导致okhttp的包如果在CDS中使用时会出现类校验失败的问题
  2. 提供了 EagerAppCDS 和 QuickStart 特性,用户可以执行两次 -Xquickstart:verbose 进行开启:第一次用于 trace 内部数据、dump 共享文件,第二次用于 replay 加速应用启动。
    1. 增加了自动触发dump的功能,此功能是为了配合k8s中环境中使用快速启动,不建议直接使用此功能。
    1. 为AArch64平台增加CDS支持

Async Log Backport

  1. JDK-8255756: 修改并简化关闭日志操作,disable_outputs在后续测试中会出现crash,所以需要移植。
  2. JDK-8256178: 给LogFileStreamOutput::write()中用到的锁添加RAII机制,和上游保持一致。
  3. JDK-8256008: 磁盘写失败时增加报错。
  4. JDK-8266536: 增加一个重载函数os::iso8601_time(),可以输出特定时间,为异步日志提供便利。
  5. JDK-8266503: 修改Decorations类使其可以安全地被复制,并减小其大小,在后续patch JDK-8267952中会用到。
  6. JDK-8229517: 初步支持异步日志功能。
  7. JDK-8267926: 修复debug模式下LogDecorations和LogOutput::_decorators不一致的问题。
  8. JDK-8268165: 修复rotate()失败导致的crash问题,增加对_stream是否为空的检测。
  9. JDK-8268852: 由于AsyncLogWriter是一种特殊的gc线程,所以不应该覆盖is_Named_thread()。
  10. JDK-8268638: 修复JVM退出时信号量损坏问题。
  11. JDK-8269064: 修复丢失信息时导致的内存泄漏问题。
  12. JDK-8267952: 增加对动态改变tag和decorator的支持。
  13. JDK-8269865: 处理信号量溢出问题。
  14. JDK-8273610: 修复LogTestFixture::restore_config()中对options的修改。
  15. JDK-8267517: 为stdout和stderr增加async log功能。
  16. JDK-8288904: 修复内存顺序问题,防止对LogOutputList节点的修改在检查reader前面。
  17. JDK-8305819: 修复LogOutputList并发读写时乱序导致的错误,在读写两侧增加内存屏障。

GC Backport

  1. 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

11.0.18.14

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)

特性

Runtime:

  1. Wisp: 修复 WispThreadCompositeData.getCompositeData() 抛 NPE 的问题。
  2. Wisp: 支持不同协程阻塞在同一个socket的读和写事件上,-Dcom.alibaba.wisp.separateIOPoller=true开启。
  3. 增加了功能类似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应用生效

RISC-V:

  1. 发布 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

11.0.17.13

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)

特性

Wisp

  • 修复 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

11.0.16.12

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)

Features

  • 支持在wisp下获取线程状态和使用 ThreadMxbean API
  • 支持ZUnmapBadViews

Backports

Release Notes

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

11.0.15.11

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)

Features

JFR

  • 修复在 sampleobjectallocations 禁用情况下,通过 JCMD 启动时 ObjectProfiling 功能的非预期行为

GC

  • 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

Release Notes

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

11.0.14.10

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)

Release Notes

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

11.0.13.9

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)

Release Notes

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)

GC

  • Issue 133: ZGC Monitoring: GarbageCollectorMXBean reports both ZGC cycles and ZGC pauses

11.0.11.7

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)

GC

  • Issue 125: ZGC options and ZGC JFR events become production-ready features
  • Issue 128: Fix an assertion failure in ZGC class unloading

ZGC Options

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)

11.0.11.6

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)

GC

  • 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).

JIT Optimization

  • issue 107 Backport: Eliminate continuous uncommon traps in CallSite::init during execution.

Serialization

  • Optimize Java ObjectStream serialization performance. Enabled by -Dcom.alibaba.enableFastSerialization=true

11.0.10.5

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)

Alpine Linux x86-64 Support

  • Issue 56 Backport Portola project. Publish Dragonwell11 JDK which supports Alpine Linux x86-64 platform.

11.0.9.4

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)

Misc

  • Issue 28 Using GCC9 to compile Dragonwell11
  • Issue 49 Optimizing IdealGraph bit check

AARCH64 support

  • 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.

GC optimizations

  • Backport GC working stealing optimizaitons

Windows supooort

  • Released binary with Windows support. But this version is EXPERIMENTAL ONLY. Please do not use it in product environment.

11.0.7.2

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)

Misc

  • 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

11.0.5.1-preview

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)

JFR

  • 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 by objectallocationssamplinginterval option. The user can use JMC to analyze the hot path of object allocation. Please reference the user guide for more details.

Serviceability

  • Added new option -XX:ArrayAllocationWarningSize=<size> to print the calling stack of an array allocation whose size beyond the ArrayAllocationWarningSize, the default value of this option is 512M. It can be changed by jinfo.
  • Added new option -mini to sub-command dump of jmap tool to skip the content of primitive type arrays in heapdump. See jmap -help for more information.
Clone this wiki locally