RFR: 8298377: JfrVframeStream causes deadlocks in ZGC
Erik Österlund
eosterlund at openjdk.org
Fri Dec 23 14:14:59 UTC 2022
The JfrVFrameStream is used while generating stack traces for events. One of the events are the ZPage allocation event. This event is sometimes sent when ZGC is relocating. The current implementation of JfrVFrameStream uses WalkContinuation::include, which causes JFR to walk the continuation and perform GC barriers. This is problematic, since ZGC has a requirement that we never perform load barriers while running the relocation code. If we do, we might end up performing other reloctions from the the relocation code, and in some cases that causes dead locks.
I propose that JFR doesn't walk the stack during stack watermark processing. This PR implements that change. This PR replaces https://github.com/openjdk/jdk/pull/11586
-------------
Commit messages:
- 8298377: JfrVframeStream causes deadlocks in ZGC
Changes: https://git.openjdk.org/jdk/pull/11778/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11778&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8298377
Stats: 189 lines in 10 files changed: 160 ins; 12 del; 17 mod
Patch: https://git.openjdk.org/jdk/pull/11778.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/11778/head:pull/11778
PR: https://git.openjdk.org/jdk/pull/11778
More information about the hotspot-dev
mailing list