RFR: 8326012: JFR: Event for time to safepoint [v11]

Denghui Dong ddong at openjdk.org
Fri Apr 12 13:08:06 UTC 2024


> There are now some JFR events related to safepoint. When time-to-safepoint (aka ttsp) is too long, these events could not be very helpful since based on them we cannot know which threads cause it and what those threads are doing.
> 
> Users can use `-XX:+SafepointTimeout -XX:SafepointTimeoutDelay=100` to see the threads that don't reach safepoint in time but without stack traces. Using `-XX:+ AbortVMOnSafepointTimeout` can capture the stack traces but it crashes the process, hence it's not sensible to enable the flag in production.
> 
> ~~This patch adds a new JFR event `EventSafepointTimeout` to record the threads that cause ttsp too long.~~
> 
> ~~This event includes two fields:~~
> 
> ~~- safepointId: the relevant safepoint id~~
> ~~- timeExceeded: the amount of time exceeding `SafepointTimeoutDelay` used by the thread to reach safepoint~~
> 
> ~~In the current version, this event records the stack of those problematic threads when they finally reach safepoint. Hence, there is a bias, but it's still helpful to deduce the root place.~~
> 
> A better implementation is to record a more accurate stack, but this will increase complexity. At the same time, the native stack may also be important for this problem, but it is not currently supported by JFR.
> 
> Any input would be greatly appreciated.
> 
> Testing: jdk/jdk/jfr

Denghui Dong has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 21 commits:

 - Merge branch 'master' into JDK-8326012
 - update
 - delete _entries when disabled
 - fix test failures
 - update
 - refactor
 - update
 - update
 - update
 - update
 - ... and 11 more: https://git.openjdk.org/jdk/compare/0f78d017...df58b055

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

Changes: https://git.openjdk.org/jdk/pull/17888/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17888&range=10
  Stats: 360 lines in 12 files changed: 353 ins; 0 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/17888.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17888/head:pull/17888

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


More information about the hotspot-jfr-dev mailing list