RFR: 8352251: Implement JEP 518: JFR Cooperative Sampling [v31]

Markus Grönlund mgronlun at openjdk.org
Tue May 20 21:30:19 UTC 2025


> Greetings,
> 
> This is the implementation of JEP [JDK-8350338 Cooperative JFR Sampling](https://bugs.openjdk.org/browse/JDK-8350338).
> 
> Implementations in this change set are provided and have been tested on the following platforms:
> 
> - windows-x64
> - windows-x64-debug
> - linux-x64
> - linux-x64-debug
> - macosx-x64
> - macosx-x64-debug
> - linux-aarch64
> - linux-aarch64-debug
> - macosx-aarch64
> - macosx-aarch64-debug
> 
> Testing: tier1-6, jdk_jfr, stress testing.
> 
> Platform porters note:
> Some platform-specific code needs to be provided, mainly in the interpreter. Take a look at the following files for changes:
> 
> - src/hotspot/cpu/x86/frame_x86.cpp
> - src/hotspot/cpu/x86/interp_masm_x86.cpp
> - src/hotspot/cpu/x86/interp_masm_x86.hpp
> - src/hotspot/cpu/x86/javaFrameAnchor_x86.hpp
> - src/hotspot/cpu/x86/macroAssembler_x86.cpp
> - src/hotspot/cpu/x86/macroAssembler_x86.hpp
> - src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
> - src/hotspot/cpu/x86/templateTable_x86.cpp
> - src/hotspot/os_cpu/linux_x86/javaThread_linux_x86.hpp
> 
> Thanks
> Markus

Markus Grönlund has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 35 commits:

 - Merge branch 'master' into 8352251
 - whitespace
 - Parameter reordering and inlining
 - Attribute sample to correct thread id as a function of frame
 - leave jfr critsec after leave()
 - No platform specific changes needed for javaFrameAnchor
 - Redesign to avoid the pre-emptive fp move in the interpreter. Replace with a thread-local critical section sampling interrupt mask.
 - additional checks
 - growable array constructur without default initialization
 - validate_bcp
 - ... and 25 more: https://git.openjdk.org/jdk/compare/cedd1a53...e4d3f78b

-------------

Changes: https://git.openjdk.org/jdk/pull/24296/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24296&range=30
  Stats: 3233 lines in 75 files changed: 1959 ins; 950 del; 324 mod
  Patch: https://git.openjdk.org/jdk/pull/24296.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24296/head:pull/24296

PR: https://git.openjdk.org/jdk/pull/24296


More information about the hotspot-jfr-dev mailing list