Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
9216ed7
8378746: ZGC: jdk/jfr/event/gc/detailed/TestZRelocationSetGroupEvent.…
May 6, 2026
682c8b0
8264851: Shenandoah: Rework control loop mechanics to use timed waits
May 6, 2026
dabd732
8383183: Shenandoah: Mangle trashed regions up to top instead of end
May 6, 2026
89fc73f
8335355: Shenandoah: Fix race condition in gc/shenandoah/mxbeans/Test…
May 6, 2026
f54fe51
8373714: Shenandoah: Register heuristic penalties following a degener…
May 6, 2026
be0f9b7
8380431: Shenandoah: Concurrent modification of stack-chunk objects d…
May 6, 2026
02c348f
8379021: Shenandoah: Speedup ShenandoahSimpleBitMapTest
May 6, 2026
aae9cbe
8378083: Mark shenandoah/generational/TestOldGrowthTriggers.java as f…
May 6, 2026
7a76ea3
8365792: GenShen: assertion "Generations aren't reconciled"
May 6, 2026
8c1d62a
8368681: Shenandoah: Add documentation comments for ShenandoahAllocat…
May 6, 2026
ae3f1db
8374449: Shenandoah: Leaf locks used by Shenandoah need lower ranks
May 7, 2026
d20d19c
8380409: JVM crashes when -XX:AOTMode=create uses app.aotconf generat…
May 8, 2026
faa4e53
8381871: GenShen: ShenandoahGCHeuristics flag not reset after ignorin…
May 8, 2026
6e00cb2
8367646: [GenShen] Control thread may overwrite gc cancellation cause…
May 8, 2026
ec2f03b
8380846: GenShen: Remove the experimental option to disable adaptive …
May 8, 2026
391703e
8382295: Shenandoah: wrong denominator in full gc summary
May 8, 2026
963e328
8361339: Test gc/shenandoah/TestLargeObjectAlignment.java#generationa…
May 8, 2026
b90d966
8366692: Several gc/shenandoah tests timed out
May 8, 2026
50dc6d1
8353115: GenShen: mixed evacuation candidate regions need accurate li…
May 8, 2026
001212d
8383630: Fix iteration in tests doing class redefinition
GoeLin May 10, 2026
34d1a3b
8378764: fileStream::fileSize() fails for >2GB files on Windows
schmelter-sap May 11, 2026
4de604a
8373515: Migrate "test/jdk/java/net/httpclient/" to null-safe "Simple…
GoeLin May 11, 2026
1865c63
8377727: Ghost caret and focus appear in non‑editable text fields
GoeLin May 11, 2026
d37b1cc
8381382: Shenandoah: assert(capacity > 0) failed: free regions must h…
May 12, 2026
abbda0b
8384158: GHA: Downgrade Windows GHA runners to windows-2022 temporarily
shipilev May 12, 2026
e14f5f0
8376185: NoSuchFieldError thrown after a record with type annotation …
May 13, 2026
f7fa56e
8381205: GHA: Upgrade Node.js 20 to 24
RealCLanger May 15, 2026
4c7fde5
8384540: [25u, 21u, 17u] Update GHA JDKs after Apr/26 updates
RealCLanger May 15, 2026
19f1136
8382395: Disable stringop-overflow in shenandoahGenerationalHeap.cpp
May 15, 2026
064cc92
8384223: RISC-V: entry_barrier_offset should consider UseZtso
RealFYang May 17, 2026
8c68029
8372351: Add 2 WISeKey roots
May 18, 2026
54440e5
8383354: Update LCMS to 2.19.1
GoeLin May 19, 2026
300093b
8382932: [25u] Test java/lang/instrument/RetransformRecordTypeAnn/Tes…
sophia-guo May 19, 2026
5e86a48
8384815: SelectOneKeyOutOfMany and PreferredKey fail after expired te…
May 20, 2026
b17bbac
Merge branch 'sapmachine25' into pr-jdk-25.0.4+2
RealCLanger May 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/actions/build-jtreg/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ runs:

- name: 'Check cache for already built JTReg'
id: get-cached
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: jtreg/installed
key: jtreg-${{ steps.version.outputs.value }}

- name: 'Checkout the JTReg source'
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
repository: openjdk/jtreg
ref: jtreg-${{ steps.version.outputs.value }}
Expand All @@ -61,7 +61,7 @@ runs:
if: (steps.get-cached.outputs.cache-hit != 'true')

- name: 'Upload JTReg artifact'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: bundles-jtreg-${{ steps.version.outputs.value }}
path: jtreg/installed
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/do-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ runs:
shell: bash

- name: 'Upload build logs'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: failure-logs-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: failure-logs
if: steps.check.outputs.failure == 'true'

# This is the best way I found to abort the job with an error message
- name: 'Notify about build failures'
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
script: core.setFailed('Build failed. See summary for details.')
if: steps.check.outputs.failure == 'true'
2 changes: 1 addition & 1 deletion .github/actions/get-bootjdk/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ runs:

- name: 'Check cache for BootJDK'
id: get-cached-bootjdk
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: bootjdk/jdk
key: boot-jdk-${{ inputs.platform }}-${{ steps.sha256.outputs.value }}
Expand Down
6 changes: 3 additions & 3 deletions .github/actions/get-bundles/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,22 +54,22 @@ runs:
steps:
- name: 'Download bundles artifact'
id: download-bundles
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles
continue-on-error: true

- name: 'Download bundles artifact (retry)'
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles
if: steps.download-bundles.outcome == 'failure'

- name: 'Download static bundles artifact'
id: download-static-bundles
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}${{ inputs.static-suffix }}
path: bundles
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/get-gtest/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ runs:
var: GTEST_VERSION

- name: 'Checkout GTest source'
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
repository: google/googletest
ref: 'v${{ steps.version.outputs.value }}'
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/get-jtreg/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ runs:

- name: 'Download JTReg artifact'
id: download-jtreg
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: bundles-jtreg-${{ steps.version.outputs.value }}
path: jtreg/installed
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/get-msys2/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ runs:
steps:
- name: 'Install MSYS2'
id: msys2
uses: msys2/setup-msys2@v2.28.0
uses: msys2/setup-msys2@v2.31.0
with:
install: 'autoconf tar unzip zip make'
path-type: minimal
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/upload-bundles/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ runs:
shell: bash

- name: 'Upload bundles artifact'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}${{ inputs.static-suffix }}${{ inputs.bundle-suffix }}
path: bundles
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-alpine-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:

steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: 'Install toolchain and dependencies'
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-cross-compile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ jobs:

steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: 'Get the BootJDK'
id: bootjdk
Expand Down Expand Up @@ -122,7 +122,7 @@ jobs:

- name: 'Check cache for sysroot'
id: get-cached-sysroot
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: sysroot
key: sysroot-${{ matrix.debian-arch }}-${{ hashFiles('./.github/workflows/build-cross-compile.yml') }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ jobs:

steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: 'Get the BootJDK'
id: bootjdk
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ jobs:

steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: 'Get the BootJDK'
id: bootjdk
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/build-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ on:
platform:
required: true
type: string
runs-on:
required: true
type: string
extra-conf-options:
required: false
type: string
Expand Down Expand Up @@ -67,7 +70,7 @@ env:
jobs:
build-windows:
name: build
runs-on: windows-2025
runs-on: ${{ inputs.runs-on }}
defaults:
run:
shell: bash
Expand All @@ -83,7 +86,7 @@ jobs:

steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: 'Get MSYS2'
uses: ./.github/actions/get-msys2
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:

steps:
- name: 'Checkout the scripts'
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
sparse-checkout: |
.github
Expand Down Expand Up @@ -364,6 +364,7 @@ jobs:
uses: ./.github/workflows/build-windows.yml
with:
platform: windows-x64
runs-on: windows-2022
msvc-toolset-version: '14.44'
msvc-toolset-architecture: 'x86.x64'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
Expand All @@ -377,6 +378,7 @@ jobs:
uses: ./.github/workflows/build-windows.yml
with:
platform: windows-aarch64
runs-on: windows-2022
msvc-toolset-version: '14.44'
msvc-toolset-architecture: 'arm64'
make-target: 'hotspot'
Expand Down Expand Up @@ -457,6 +459,6 @@ jobs:
with:
platform: windows-x64
bootjdk-platform: windows-x64
runs-on: windows-2025
runs-on: windows-2022
dry-run: ${{ needs.prepare.outputs.dry-run == 'true' }}
debug-suffix: -debug
6 changes: 3 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ jobs:

steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: 'Get MSYS2'
uses: ./.github/actions/get-msys2
Expand Down Expand Up @@ -239,15 +239,15 @@ jobs:
if: always()

- name: 'Upload test results'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
path: results
name: ${{ steps.package.outputs.artifact-name }}
if: always()

# This is the best way I found to abort the job with an error message
- name: 'Notify about test failures'
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
script: core.setFailed('${{ steps.run-tests.outputs.error-message }}')
if: steps.run-tests.outputs.failure == 'true'
4 changes: 2 additions & 2 deletions make/conf/github-actions.conf
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ MACOS_AARCH64_BOOT_JDK_URL=https://github.com/SAP/SapMachine/releases/download/s
MACOS_AARCH64_BOOT_JDK_SHA256=5e17522ae15cc57b7d57e8317b2f5c425aa38a50bd105e3c763a73317e1d8658

MACOS_X64_BOOT_JDK_EXT=tar.gz
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_SHA256=6bbfb1d01741cbe55ab90299cb91464b695de9a3ace85c15131aa2f50292f321
MACOS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_mac_hotspot_25.0.3_9.tar.gz
MACOS_X64_BOOT_JDK_SHA256=4c539a18b4d656960ff6766727e9ca546fc17f7a29714dba9e7b47bdcb37c447

WINDOWS_X64_BOOT_JDK_EXT=zip
WINDOWS_X64_BOOT_JDK_URL=https://github.com/SAP/SapMachine/releases/download/sapmachine-25.0.3/sapmachine-jdk-25.0.3_windows-x64_bin.zip
Expand Down
1 change: 1 addition & 0 deletions make/hotspot/lib/CompileJvm.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
DISABLED_WARNINGS_gcc_macroAssembler_ppc_sha.cpp := unused-const-variable, \
DISABLED_WARNINGS_gcc_postaloc.cpp := address, \
DISABLED_WARNINGS_gcc_safepointMechanism.cpp := stringop-overflow, \
DISABLED_WARNINGS_gcc_shenandoahGenerationalHeap.cpp := stringop-overflow, \
DISABLED_WARNINGS_gcc_shenandoahLock.cpp := stringop-overflow, \
DISABLED_WARNINGS_gcc_stubGenerator_s390.cpp := unused-const-variable, \
DISABLED_WARNINGS_gcc_synchronizer.cpp := stringop-overflow, \
Expand Down
16 changes: 9 additions & 7 deletions src/hotspot/cpu/riscv/gc/shared/barrierSetAssembler_riscv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ void BarrierSetAssembler::nmethod_entry_barrier(MacroAssembler* masm, Label* slo
BarrierSetNMethod* bs_nm = BarrierSet::barrier_set()->barrier_set_nmethod();
Assembler::IncompressibleScope scope(masm); // Fixed length: see entry_barrier_offset()

Label local_guard;
Label local_guard, skip_barrier;
NMethodPatchingType patching_type = nmethod_patching_type();

if (slow_path == nullptr) {
Expand Down Expand Up @@ -290,24 +290,26 @@ void BarrierSetAssembler::nmethod_entry_barrier(MacroAssembler* masm, Label* slo
ShouldNotReachHere();
}

Label& barrier_target = slow_path == nullptr ? skip_barrier : *slow_path;
if (slow_path == nullptr) {
Label skip_barrier;
__ beq(t0, t1, skip_barrier);
__ beq(t0, t1, barrier_target, true /* is_far */);
} else {
__ bne(t0, t1, barrier_target, true /* is_far */);
}

if (slow_path == nullptr) {
__ rt_call(StubRoutines::method_entry_barrier());

__ j(skip_barrier);

__ bind(local_guard);

MacroAssembler::assert_alignment(__ pc());
__ emit_int32(0); // nmethod guard value. Skipped over in common case.
__ bind(skip_barrier);
} else {
__ beq(t0, t1, *continuation);
__ j(*slow_path);
__ bind(*continuation);
}

__ bind(skip_barrier);
}

void BarrierSetAssembler::c2i_entry_barrier(MacroAssembler* masm) {
Expand Down
26 changes: 13 additions & 13 deletions src/hotspot/cpu/riscv/gc/shared/barrierSetNMethod_riscv.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2025, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2026, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2020, 2022, Huawei Technologies Co., Ltd. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
Expand Down Expand Up @@ -41,17 +41,16 @@

static int slow_path_size(nmethod* nm) {
// The slow path code is out of line with C2.
// Leave a jal to the stub in the fast path.
return nm->is_compiled_by_c2() ? 1 : 8;
return nm->is_compiled_by_c2() ? 0 : 4;
}

static int entry_barrier_offset(nmethod* nm) {
BarrierSetAssembler* bs_asm = BarrierSet::barrier_set()->barrier_set_assembler();
switch (bs_asm->nmethod_patching_type()) {
case NMethodPatchingType::stw_instruction_and_data_patch:
return -4 * (4 + slow_path_size(nm));
return -4 * (5 + slow_path_size(nm));
case NMethodPatchingType::conc_instruction_and_data_patch:
return -4 * (15 + slow_path_size(nm));
return -4 * ((UseZtso ? 14 : 16) + slow_path_size(nm));
}
ShouldNotReachHere();
return 0;
Expand Down Expand Up @@ -103,6 +102,10 @@ class NativeNMethodBarrier {
}
_guard_addr = reinterpret_cast<int*>(instruction_address() + local_guard_offset(nm));
}

// Perform the checking as verification.
err_msg msg("%s", "");
assert(check_barrier(msg), "%s", msg.buffer());
}

int get_value() {
Expand All @@ -114,10 +117,6 @@ class NativeNMethodBarrier {
}

bool check_barrier(err_msg& msg) const;
void verify() const {
err_msg msg("%s", "");
assert(check_barrier(msg), "%s", msg.buffer());
}
};

// Store the instruction bitmask, bits and name for checking the barrier.
Expand All @@ -128,8 +127,8 @@ struct CheckInsn {
};

static const struct CheckInsn barrierInsn[] = {
{ 0x00000fff, 0x00000297, "auipc t0, 0 "},
{ 0x000fffff, 0x0002e283, "lwu t0, guard_offset(t0) "},
{ 0x00000fff, 0x00000297, "auipc t0, 0 " },
{ 0x000fffff, 0x0002e283, "lwu t0, guard_offset(t0)" },
/* ...... */
/* ...... */
/* guard: */
Expand All @@ -141,10 +140,11 @@ static const struct CheckInsn barrierInsn[] = {
// register numbers and immediate values in the encoding.
bool NativeNMethodBarrier::check_barrier(err_msg& msg) const {
address addr = instruction_address();
for(unsigned int i = 0; i < sizeof(barrierInsn)/sizeof(struct CheckInsn); i++ ) {
for (unsigned int i = 0; i < sizeof(barrierInsn) / sizeof(struct CheckInsn); i++) {
uint32_t inst = Assembler::ld_instr(addr);
if ((inst & barrierInsn[i].mask) != barrierInsn[i].bits) {
msg.print("Addr: " INTPTR_FORMAT " Code: 0x%x not an %s instruction", p2i(addr), inst, barrierInsn[i].name);
msg.print("Nmethod entry barrier did not start with auipc & lwu as expected. "
"Addr: " INTPTR_FORMAT " Code: 0x%x not an %s instruction.", p2i(addr), inst, barrierInsn[i].name);
return false;
}
addr += 4;
Expand Down
8 changes: 8 additions & 0 deletions src/hotspot/os/posix/os_posix.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -881,6 +881,14 @@ void* os::lookup_function(const char* name) {
return dlsym(RTLD_DEFAULT, name);
}

int64_t os::ftell(FILE* file) {
return ::ftell(file);
}

int os::fseek(FILE* file, int64_t offset, int whence) {
return ::fseek(file, offset, whence);
}

jlong os::lseek(int fd, jlong offset, int whence) {
return (jlong) ::lseek(fd, offset, whence);
}
Expand Down
Loading
Loading