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

Denghui Dong denghui.ddh at alibaba-inc.com
Sat Mar 21 11:55:21 UTC 2020


Hi Ben,

You can apply the patch to 11u directly.

And if you want to test JFR Streaming on 8u, I can provide
the patchset(includes some prerequisite fixes).

Thanks,
Denghui Dong

------------------------------------------------------------------
From:Ben Evans <bevans at newrelic.com>
Send Time:2020年3月21日(星期六) 00:06
To:董登辉(卓昂) <denghui.ddh at alibaba-inc.com>; Martijn Verburg <martijn.verburg at microsoft.com>
Cc:jdk-updates-dev at openjdk.java.net <jdk-updates-dev at openjdk.java.net>
Subject:Re: [11u] [JFR] RFR(XXL) 8226511: Implement JFR Event Streaming

Hi Denghui,

This looks very interesting - thanks for your work so far. 

How can we get started with it? Could we follow a similar model that used to backport JFR (file) to OpenJDK 8 - by starting with a separate repo?

Martijn - how difficult would it be to have AdoptOpenJDK build binaries from a separate 11u-jfr-streaming repo, if we were to do that?

Cheers,

Ben
On Thu, Mar 19, 2020 at 7:15 AM Denghui Dong <denghui.ddh at alibaba-inc.com> wrote:
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