RFR: 8329103: assert(!thread->in_asgct()) failed during multi-mode profiling

Andrei Pangin apangin at openjdk.org
Wed Mar 27 01:07:31 UTC 2024


This fix makes `AsyncGetCallTrace` reentrant and async-signal-safe.
Reentrancy is required in the cases when two or more profiling engines are running at the same time, e.g., when CPU and Wall clock profilers work together and therefore one profiler may interrupt another in the middle of getting a stack trace.

Tested with async-profiler:

java -agentpath:/path/to/libasyncProfiler.so=start,event=cpu,interval=1ms,wall=1ms,file=profile.jfr

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

Commit messages:
 - 8329103: assert(!thread->in_asgct()) failed during multi-mode profiling

Changes: https://git.openjdk.org/jdk/pull/18504/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18504&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8329103
  Stats: 4 lines in 1 file changed: 2 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/18504.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18504/head:pull/18504

PR: https://git.openjdk.org/jdk/pull/18504


More information about the hotspot-runtime-dev mailing list