RFR: 8342818: Implement JEP 509: JFR CPU-Time Profiling [v5]

Johannes Bechberger jbechberger at openjdk.org
Mon May 26 08:16:04 UTC 2025


On Sat, 24 May 2025 17:48:16 GMT, Markus Grönlund <mgronlun at openjdk.org> wrote:

>> src/hotspot/share/jfr/support/jfrThreadLocal.hpp line 103:
>> 
>>> 101:   volatile CPUTimeLockState _cpu_time_jfr_locked = UNLOCKED;
>>> 102:   volatile bool _has_cpu_time_jfr_requests = false;
>>> 103:   JfrCPUTimeTraceQueue _cpu_time_jfr_queue{0};
>> 
>> Please initialize these fields in the initializer list, like the other fields.
>> 
>> Also, what capacity will the JfrCPUTimeTraceQueue have with an initializer like the above - {0}? In GDB i see that the capacity is 10000. Each element is 48 bytes, meaning each thread now has an associated queue of 468 kb, almost 0.5 Mb. Is that correct?
>
> I see that JfrCPUTimeTraceQueue::ensure_capacity_for_period() calculates and sets the queue size as a function of the sampling period (in my case its 1 ms).

I reduced the base capacity to 500, but with far smaller values we risk many more lossed events. We should probably tune this value at the end.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25302#discussion_r2106782239


More information about the hotspot-jfr-dev mailing list