[11u] [JFR] RFR(XXL) 8226511: Implement JFR Event Streaming

Denghui Dong denghui.ddh at alibaba-inc.com
Thu Mar 19 06:14:02 UTC 2020


Hi team,

JDK 14 is now Generally Available, as one of the features, JFR Event Streaming is very attractive for us.

With JFR Event Streaming, we can more easily implement the continuous monitoring of Java application based on JFR in the container environment.

So I would like to backport JDK-8226511(Implement JFR Event Streaming) to 11u, please help us to review the patch.

Previously, we had a discussion at https://mail.openjdk.java.net/pipermail/jdk-updates-dev/2019-November/002169.html, there are many companies interested in this

Bug: https://bugs.openjdk.java.net/browse/JDK-8226511
Webrev: http://cr.openjdk.java.net/~ddong/11u-8226511/webrev.00
Test (release/slow-debug on Linux): All JFR Event Streaming passed, and other JFR tests have the same result with the build without this patch

The original patch is large, and cannot be applied to 11u directly
All files that cannot be derectly applied are as follows:
    src/hotspot/share/gc/g1/g1Trace.cpp (dosn't exist in 11u)
    src/hotspot/share/gc/shenandoah/shenandoahJfrSupport.cpp (dosn't exist in 11u)
    test/jdk/jdk/jfr/event/metadata/TestLookForUntestedEvents.java (dosn't exist in 11u, introduced in JDK-8213914)
    src/jdk.jfr/share/classes/jdk/jfr/internal/SecuritySupport.java
    src/jdk.jfr/share/classes/jdk/jfr/internal/Repository.java
    src/jdk.jfr/share/conf/jfr/profile.jfc
    src/jdk.jfr/share/conf/jfr/default.jfc
    src/hotspot/share/jfr/periodic/jfrPeriodic.cpp
    src/hotspot/share/jfr/recorder/repository/jfrChunkState.hpp
    src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp
    src/hotspot/share/jfr/recorder/repository/jfrRepository.cpp
    src/hotspot/share/jfr/recorder/service/jfrRecorderService.cpp
    src/hotspot/share/jfr/recorder/service/jfrPostBox.cpp
    src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointManager.cpp (ClassLoaderDataGraph_lock doesn't exist in 11u)
    src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadState.hpp
    src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.cpp
    src/hotspot/share/jfr/recorder/storage/jfrVirtualMemory.cpp
    src/hotspot/share/jfr/utilities/jfrTypes.hpp
    src/hotspot/share/jfr/support/jfrThreadLocal.cpp
    src/hotspot/share/jfr/metadata/metadata.xml
    src/hotspot/share/runtime/mutexLocker.cpp
  test/jdk/ProblemList.txt

Also, we want to backport some other related issues to 11u:
    JDK-8233700: EventStream not closed
    JDK-8229209: test for cross-process JFR event streaming
    JDK-8234703: [TESTBUG] JFR TestOutOfProcessMigration.java should clean up files
    JDK-8234684: JFR crashes when rotating the JFR output during assertion failure
    JDK-8233870: JFR TestSetEndTime.java times out - onClose() is never called
    JDK-8234888: EventStream::close doesn't abort streaming thread 
    JDK-8234671: JFR api/consumer/recordingstream/TestStart.java failed due to timeout at testStartTwice()
    JDK-8235356: [TESTBUG] Disable 'producer is alive' check in JFR TestCrossProcessStreaming
    JDK-8233111: Epoch shift synchronization point for Compiler threads
    JDK-8234059: Stress test fails with "Unexpected Exception in thread JFR Event Stream"
    JDK-8236264: Remove jdk.jfr.Recording::setFlushInterval and jdk.jfr.Recording::getFlushInterval
    JDK-8236263: Remove experimental streaming events
Most of them can directly apply to 11u, except 8233111, 8234059 and 8236263

Cheers,
Denghui Dong


More information about the jdk-updates-dev mailing list