On Fri, 23 May 2025 21:20:39 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: > > Fix compilation src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.cpp line 365: > 363: // idea: this ensures that the frames happened in native > 364: // maybe we can wrap this in #ifdef ASSERT if first_index is always 0 > 365: s4 first_index = queue.size() - 1; I'm afraid I don't understand this logic at all. If the intent is to share a sid over many requests, why are the individual requests passed to stacktrace.record_inner()? src/hotspot/share/jfr/periodic/sampling/jfrCPUTimeThreadSampler.cpp line 373: > 371: } > 372: } > 373: assert(first_index == 0, "invariant"); How is this possible? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/25302#discussion_r2106244737 PR Review Comment: https://git.openjdk.org/jdk/pull/25302#discussion_r2106244850