RFR: 8338417: Explicitly pin a virtual thread before acquiring the JFR string pool monitor
Markus Grönlund
mgronlun at openjdk.org
Wed Aug 14 20:58:03 UTC 2024
Greetings,
Explicitly pin a virtual thread before acquiring the JFR string pool monitor because migrating a carrier thread local event writer object onto another carrier thread is impossible.
During event commit, the thread is in a critical section because it has loaded a carrier thread local event writer object. For virtual threads, a contended monitor, such as a synchronized block, is a point where a thread could become unmounted.
A monitor guards the JFR string pool, but remounting a virtual thread onto another carrier is impossible because of the event writer.
Therefore, it's imperative to use explicit pin constructs to prevent unmounting at this location.
Testing: jdk_jfr
Thanks
Markus
-------------
Commit messages:
- 8338417
Changes: https://git.openjdk.org/jdk/pull/20588/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20588&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8338417
Stats: 173 lines in 3 files changed: 149 ins; 8 del; 16 mod
Patch: https://git.openjdk.org/jdk/pull/20588.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/20588/head:pull/20588
PR: https://git.openjdk.org/jdk/pull/20588
More information about the core-libs-dev
mailing list