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

Markus Grönlund mgronlun at openjdk.org
Sat May 31 10:43:00 UTC 2025


On Fri, 30 May 2025 10:17:18 GMT, Johannes Bechberger <jbechberger at openjdk.org> wrote:

>> This is the code for the [JEP 509: CPU Time based profiling for JFR](https://openjdk.org/jeps/509).
>> 
>> Currently tested using [this test suite](https://github.com/parttimenerd/basic-profiler-tests). This runs profiles the [Renaissance](https://renaissance.dev/) benchmark with
>> - ... different heap sizes
>> - ... different GCs
>> - ... different samplers (the standard JFR and the new CPU Time Sampler and both)
>> - ... different JFR recording durations
>> - ... different chunk-sizes
>
> Johannes Bechberger has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Remove debug printf

src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.hpp line 139:

> 137: 
> 138:   // Trigger sampling while a thread is not in a safepoint, from a seperate thread
> 139:   static void trigger_is_thread_in_native_stackwalking();

Is it sampling that is triggered? Sampling refers to the asynchronous signal received from the OS.

You are asking for the sampler thread to process JFR Sample Requests, right? That is, already taken samples.

src/hotspot/share/jfr/periodic/sampling/jfrThreadSampling.cpp line 263:

> 261:     // Yet another instance of safepoint bias,to be addressed with
> 262:     // more exact and stricter versions when parsable blobs become available.
> 263:     biased = true;

Careful here. This site CAN be biased, but it's also the fallthrough from the processing in 250-259, which is a direct sample hit, i.e., non-biased.

src/hotspot/share/jfr/support/jfrThreadLocal.cpp line 89:

> 87:   _has_cpu_time_jfr_requests(false),
> 88:   _cpu_time_jfr_queue(0),
> 89:   _wants_is_thread_in_native_stackwalking(false)

This field name can be improved.

"_do_async_processing_of_cpu_time_jfr_requests"?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25302#discussion_r2117694262
PR Review Comment: https://git.openjdk.org/jdk/pull/25302#discussion_r2117694730
PR Review Comment: https://git.openjdk.org/jdk/pull/25302#discussion_r2117693395


More information about the hotspot-jfr-dev mailing list