RFR: 8282420: JFR: Remove event handlers [v6]

Doug Simon dnsimon at openjdk.org
Wed Jul 6 16:54:51 UTC 2022


On Tue, 10 May 2022 14:42:58 GMT, Erik Gahlin <egahlin at openjdk.org> wrote:

>> Hi,
>> 
>> Could I have a review of a fix that removes event handler classes for JFR. Bytecode for event instrumentation is now only added to the event class. Benefits are:
>> 
>> - No class memory leak in the boot class loader.
>> - Reduce overhead from class loading during startup, which is important with additional JDK events that are coming (VirtualThreadStart etc.)
>> - One less frame to traverse when recording a Java stack trace.
>> 
>> Future benefits are:
>> 
>> - Simplify creating instrumentation as a build step. See https://bugs.openjdk.java.net/browse/JDK-8279354
>> - Simplify implementation of Event Metrics. See https://bugs.openjdk.java.net/browse/JDK-8224749
>> 
>> When the Security Manager is removed, much of the code being added for security reasons can be deleted.
>> 
>> There are few JFR hooks when code is being linked. Plan is to also use these for other events later. 
>> 
>> Testing: tier 1-4, jdk/jdk/jfr
>> 
>> Thanks
>> Erik
>
> Erik Gahlin has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Minor fixes

src/hotspot/share/jfr/instrumentation/jfrResolution.hpp line 40:

> 38:  public:
> 39:   static void on_runtime_resolution(const CallInfo & info, TRAPS);
> 40:   static void on_c1_resolution(const GraphBuilder * builder, const ciKlass * holder, const ciMethod * target);

Should the declarations of `on_c1_resolution` and `on_c2_resolution` be guarded with `COMPILER2_PRESENT` and `COMPILER1_PRESENT` since the method bodies are?

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

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


More information about the hotspot-jfr-dev mailing list