Skip to content

Alibaba Dragonwell 11 Extended Edition Release Notes

lvfei.lv edited this page Aug 15, 2024 · 10 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)

Feature

Runtime

java.math

  • optimize java.math.BigDecimal for BigData applications. Enabled via UseBigDecimalOpt

GC

ParallelGC

  • optimization for IO intensive cases. Enabled via UseIOPrioritySizePolicy.
  • Backport 8246718 to improve ParallelGC performance by prefetching referenced objects before copied to survivor region

G1

  • Add option G1BarrierSimple which could reduce instructions of G1 post barrier

JIT

CodeCache

  • Add new option ReduceNMethodSize, JVM will reduce footprint of nmethod in code cache when enable it. By default it's disabled.

Commit logs

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)

Feature

Runtime

Add array support for -XX:+UseCompactObjectHeaders

  • Arrays now have compact layout with -XX:+UseCompactObjectHeaders

Refact

Linux/RISCV

  • code to sync with upstream OpenJDK11u-riscv-port

Commit logs

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)

Feature

JIT

  • Backport 8266074, 8065760, 8036580, introduce new CHA implementation which relies on vtable information when looking for a monomorphic target method
  • Backport 8225776, optimize branch frequency of G1's write post-barrier in C2
  • Backport 8254723, support generating Linux perf map files during exiting of JVM with option -XX:+DumpPerfMapAtExit or during runtime with jcmd Compiler.perfmap

AArch64

  • Backport 8307352, optimize the loops in itable stub to improve performance

Commit logs

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
[Misc] Add failed test cases to linux-riscv problem list Issue#770
[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)

Feature

Runtime

Provide the feature of JEP 450: Compact Object Headers

  • Use -XX:+UseCompactObjectHeaders to enable object header compaction which will typically reduce memory occupation of Java objects by 10%. Only supports G1 GC and Parallel GC.

Backport JDK-8241825 and JDK-8246689

  • Decouple compressed oops and compressed class pointers on x86 and aarch64

Serviceability

HeapDump Bug fix

  • Segment file can not deleted on Windows

Commit logs

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)

Feature

GC

  • Backport JEP346 Promptly Return Unused Committed Memory from G1. This involves two new jvm options, G1PeriodicGCInterval and G1PeriodicGCSystemLoadThreshold. G1 triggers a periodic garbage collection if more than G1PeriodicGCInterval milliseconds have passed since any previous garbage collection pause and there is no concurrent cycle in progress at this point, and average one-minute system load value as returned by the getloadavg() call on the JVM host system (e.g. container) is below G1PeriodicGCSystemLoadThreshold. See JEP346 for more informantion.

EagerAppCDS

  • Extend time for the testcase TestExecStartupProbe.java.

HeapDump

  • Introduce the two-phase segmented heap dump to significantly alleviate heap dump STW pain

JIT

  • Reorder segment layout of code cache to avoid long jumps and trampolines, therefore decrease code cache memory usage
  • Backport C2 patches to improve JIT generated code.

Commit logs

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)

Feature

JIT

  1. When inlining through MethodHandle calls, C2 can improve inlining decisions by taking speculative types into account.
  2. C2 will not depend on absolute call site counts in its inlining decisions and continue using InlineFrequencyRatio instead.

Runtime

  1. Fix lost lock caused by _do_not_unlock_if_synchronized mechanism

Commit logs

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)

Features

VectorAPI Backport

  1. Provide the first incubator of VectorAPI, to express vector computations that reliably compile at runtime to optimal vector hardware instructions on supported CPU architectures and thus achieve superior performance to equivalent scalar computations.
  2. Supported architecture: x86 platform
  3. Fix numerous bugs related with 1st incuabtor.
  4. Related commits:
  • 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: Fix verify error when run CDS with okhttp library.
  2. Support features EagerAppCDS and QuickStart. Users can enable them using -Xquickstart:verbose to run application twice. The first time is to trace internal VM data and to dump shared archive; the second time is to use the archive file to speed up application start-up process.

Async Log Backport

  1. JDK-8255756: Modify and simplify disabling logging
  2. JDK-8256178: Add RAII object for file lock.
  3. JDK-8256008: Report error if disk writing failed.
  4. JDK-8266536: Provide a variant of os::iso8601_time which works with arbitrary timestamps. This makes asynchronous UL cheaper.
  5. JDK-8266503: Make Decorations safely copy-able and reduce their size.
  6. JDK-8229517: Support for optional asynchronous/buffered logging.
  7. JDK-8267926: Fix the problem that _decorators in LogDecorations may be inconsistent with LogOutput::_decorators.
  8. JDK-8268165: Add null check for _stream in LogFileOutput::write_blocking() to fix the crash when rotate() fails.
  9. JDK-8268852: AsyncLogWriter should not override is_Named_thread().
  10. JDK-8268638: Fix break of semaphores of AsyncLogWriter when JVM is exiting.
  11. JDK-8269064: Fix memory leak of Dropped messages of AsyncLogWriter.
  12. JDK-8267952: Async logging supports to dynamically change tags and decorators.
  13. JDK-8269865: Handle ERANGE on exceeding SEM_VALUE_MAX in Async UL.
  14. JDK-8273610: LogTestFixture::restore_config() should not restore options.
  15. JDK-8267517: Add async logging for stdout and stderr.
  16. JDK-8288904: Fix incorrect memory ordering in UL.
  17. JDK-8305819: Fix memory ordering when reading and writing LogOutputList.

Quickstart

  1. Support CDS dump if match specific condition without explicit execute the jcmd command. It should only used when deploy Java Application in K8s.
  2. Add CDS Support for AArch64

GC Backport

  1. JDK-8297247: Add GarbageCollectorMXBean for Remark and Cleanup

Misc

  • Add Hygon Dhyana processor support

Commit logs

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)

features

Runtime:

  1. Wisp: Fix NullPointerException thrown from WispThreadCompositeData.getCompositeData().
  2. Wisp: Supports different coroutines waiting on the same socket's read and write events.
  3. Add Alibaba Dragonwell vendor specific JDK_TOOLS_OPTIONS: DRAGONWELL_JAVA_TOOL_OPTIONS and DRAGONWELL_JAVA_TOOL_OPTIONS_JDK_ONLY. If set "DRAGONWELL_JAVA_TOOL_OPTIONS_JDK_ONLY" to true, the "DRAGONWELL_JAVA_TOOL_OPTIONS" has no effect on JDK tools like jps,jmap,jstat.

RISC-V:

  1. Release Dragonwell11 RISC-V version.

Commit logs

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)

Feature

Wisp

  • Fix missing oops_do for WispThread
  • Blocking io support for SocketChannel and Pipe
  • Adapt Thread.stackSize

Commit logs

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

  • Enable thread state and ThreadMxbean for wisp threads
  • Support 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

  • Fixed unexpected behavior of ObjectProfiling started via JCMD when sampleobjectallocations is disabled

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