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

Andrei Pangin apangin at openjdk.org
Fri Mar 29 11:35:57 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

Andrei Pangin has updated the pull request incrementally with one additional commit since the last revision:

  Rephrased comment about AsyncGetCallTrace reentrancy

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/18504/files
  - new: https://git.openjdk.org/jdk/pull/18504/files/af9a57fd..fc5a4831

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=18504&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=18504&range=00-01

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 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