RFR: 8342818: Implement CPU Time Profiling for JFR [v4]

Johannes Bechberger jbechberger at openjdk.org
Thu Oct 31 12:05:42 UTC 2024


On Thu, 31 Oct 2024 10:27:38 GMT, Markus Grönlund <mgronlun at openjdk.org> wrote:

>> src/hotspot/share/jfr/recorder/stacktrace/jfrAsyncStackTrace.cpp line 45:
>> 
>>> 43: 
>>> 44: bool JfrAsyncStackTrace::record_async(JavaThread* jt, const frame& frame) {
>>> 45:   NoHandleMark nhm;
>> 
>> Stack: [0x00007f02ff2f4000,0x00007f02ff3f4000],  sp=0x00007f02ff3ed8e0,  free space=998k
>> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
>> V  [libjvm.so+0xdf5649]  HandleArea::allocate_null_handle()+0x179  (handles.cpp:46)
>> V  [libjvm.so+0xc5259a]  RegisterMap::RegisterMap(JavaThread*, RegisterMap::UpdateMap, RegisterMap::ProcessFrames, RegisterMap::WalkContinuation)+0xaa  (frame.cpp:75)
>> V  [libjvm.so+0xf9ffb9]  JfrVframeStream::JfrVframeStream(JavaThread*, frame const&, bool, bool)+0x59  (jfrStackTrace.cpp:160)
>> V  [libjvm.so+0xf0940c]  JfrAsyncStackTrace::record_async(JavaThread*, frame const&)+0xac  (jfrAsyncStackTrace.cpp:58)
>> V  [libjvm.so+0xf0be3d]  JfrCPUTimeThreadSampler::handle_timer_signal(void*)+0x4fd  (jfrCPUTimeThreadSampler.cpp:231)
>> V  [libjvm.so+0xf0bf7f]  handle_timer_signal(int, siginfo*, void*)+0x4f  (jfrCPUTimeThreadSampler.cpp:723)
>> 
>> NoHandleMark will not work with with continuations. Please see how we do it in JfrStackTrace::record()
>
> Perhaps even more interesting is that I got this when running out-of-the-box with:
> 
> XX:StartFlightRecording:settings=profile.jfc
> 
> // profile.jfc
> 
>     <event name="jdk.CPUTimeSample">
>       <setting name="enabled" control="method-sampling-enabled">false</setting>
>       <setting name="throttle">10ms</setting>
>     </event>
>     
> This indicates that the event is turned on, despite "enabled" being false. Is there a bug in the control / enable setting mechanism?

That is both interesting (and worrying). I'm going to write a test for the latter issue.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20752#discussion_r1824337052


More information about the hotspot-dev mailing list