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

Markus Grönlund mgronlun at openjdk.org
Tue Apr 29 08:39:00 UTC 2025


On Tue, 29 Apr 2025 08:33:10 GMT, Markus Grönlund <mgronlun at openjdk.org> wrote:

>> Its apparently stuck because it hangs here in internal testing. Over 700000 active signal handlers?
>
> It's a lot more: 2037581315 active signal handlers?
> 
> I tested the branch building on top of Cooperative JFR Sampling, perhaps there is a mismatch with the increment / decrement there?
> 
> Here is GDB state:
> 
> ` _hashStateZ = 0x8767, _crash_protection = 0x0, _in_asgct = 0x0, _vm_error_callbacks = 0x0}, _next = 0xffff5c019ae0, static _the_list = {_head = 0xffff6c007cf0, _protect = {_enter = 0x9774d, _exit = {0x2, 0x9774d},
>         _waiting_for = 0x2, _wakeup = {<CHeapObj<(MemTag)22>> = {<No data fields>}, _impl = {<CHeapObj<(MemTag)9>> = {<No data fields>}, _semaphore = {__size = {0x0 <repeats 32 times>}, __align = 0x0}}}}}},
>   _sample = {<CHeapObj<(MemTag)22>> = {<No data fields>}, _impl = {<CHeapObj<(MemTag)9>> = {<No data fields>}, _semaphore = {__size = {0x1, 0x0 <repeats 11 times>, 0x6b, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x88, 0xcd, 0x44,
>           0x3, 0x15, 0x4d, 0x65, 0x6d, 0x41, 0x63, 0x63}, __align = 0x1}}}, _sampler_thread = 0xffff14c20520, _rate = 0x0, _autoadapt = 0x1, _current_sampling_period_ns = 0x0, _disenrolled = 0x1, _stop_signals = 0x1,
>   _active_signal_handlers = 0x79730603, _is_out_of_safepoint_sampling_triggered = 0x0}
> `

Most threads are blocking and waiting for a pending safepoint. But the JavaThread calling disenroll is stuck in this loop, waiting for 2037581315 active signal handlers.

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

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


More information about the hotspot-dev mailing list