On Wed, 4 Jun 2025 17:22:37 GMT, Johannes Bechberger <jbechber...@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: > > Readd lock src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.cpp line 300: > 298: if (!Atomic::cmpxchg(&_disenrolled, false, true)) { > 299: log_trace(jfr)("Disenrolling CPU thread sampler"); > 300: if (Atomic::fetch_then_and(&_signal_handler_installed, false)) { fetch_then_and with false? Must be simpler way to express this? Like Atomic::load(&_signal_handler_installed)? src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.cpp line 608: > 606: void JfrCPUSamplerThread::stop_signal_handlers() { > 607: // set the stop signal bit > 608: Atomic::or_then_fetch(&_active_signal_handlers, STOP_SIGNAL_BIT, > memory_order_acq_rel); Whatever was fetched is gone with the wind... ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/25302#discussion_r2127117357 PR Review Comment: https://git.openjdk.org/jdk/pull/25302#discussion_r2127119596