[15] RFR: [JVMCI/Graal] add JFR compiler phase/inlining events
Jamsheed C M
jamsheed.c.m at oracle.com
Wed Feb 26 02:05:52 UTC 2020
Hi,
This enhancement adds jvmci supports that is required for extending
existing phase/inlining events support in graal compilers.
During this enhancement all jfr events related codes are moved to
compiler/compilerEvent.hpp
<http://cr.openjdk.java.net/~jcm/8193210/webrev/src/hotspot/share/compiler/compilerEvent.hpp.html>/
inline.hpp
<http://cr.openjdk.java.net/~jcm/8193210/webrev/src/hotspot/share/compiler/compilerEvent.inline.hpp.html>/ ..cpp
<http://cr.openjdk.java.net/~jcm/8193210/webrev/src/hotspot/share/compiler/compilerEvent.cpp.html>
Graal use these events via jvmci JFR.java
<http://cr.openjdk.java.net/~jcm/8193210/webrev/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/JFR.java.html>helper
class, which uses c2v
<http://cr.openjdk.java.net/~jcm/8193210/webrev/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/CompilerToVM.java.udiff.html>interface
to post and get information from hotspot
Overview of functionalities exposed by JFR. java
<http://cr.openjdk.java.net/~jcm/8193210/webrev/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/JFR.java.html>
Ticks, for getting current jfr counter/ time stamp. used for getting
start time of events by Graal compiler.
CompilerPhaseEvent for posting phase event to hotspot JFR.
CompilerInlininingEvent for posting inlininig events.
CompilerPhaseEvent extends and use TYPE_COMPILERPHASETYPE content type
for phase events, this is achieved using reregistration support added
Markus [1]
CompilerEvent::PhaseType::register_phases is used for registering
phases. This function is usually called on compiler singleton object
creation. It is also called lazily if phases are not known before hand.
The event generation codes in c1/c1_GraphBuilder.cpp,
opto/bytecodeInfo.cpp, opto/compile.hpp uses common functions exposed by
compiler/compilerEvent.hpp
<http://cr.openjdk.java.net/~jcm/8193210/webrev/src/hotspot/share/compiler/compilerEvent.hpp.html>/
inline.hpp
<http://cr.openjdk.java.net/~jcm/8193210/webrev/src/hotspot/share/compiler/compilerEvent.inline.hpp.html>/ ..cpp
<http://cr.openjdk.java.net/~jcm/8193210/webrev/src/hotspot/share/compiler/compilerEvent.cpp.html>
webrev: http://cr.openjdk.java.net/~jcm/8193210/webrev/
jbs: https://bugs.openjdk.java.net/browse/JDK-8193210
Testing: ran jdk/jfr in my local machine. mach5 run created, links in jbs.
Please review,
Best regards,
Jamsheed
[1]
http://cr.openjdk.java.net/~jcm/8193210/webrev/src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointManager.cpp.udiff.html
http://cr.openjdk.java.net/~jcm/8193210/webrev/src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointWriter.hpp.udiff.html
http://cr.openjdk.java.net/~jcm/8193210/webrev/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp.udiff.html
http://cr.openjdk.java.net/~jcm/8193210/webrev/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.hpp.udiff.html
http://cr.openjdk.java.net/~jcm/8193210/webrev/src/hotspot/share/jfr/utilities/jfrTypes.hpp.udiff.html
http://cr.openjdk.java.net/~jcm/8193210/webrev/src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ChunkParser.java.udiff.html
More information about the hotspot-compiler-dev
mailing list