RFR: 8338417: Explicitly pin a virtual thread before acquiring the JFR string pool monitor [v5]

Markus Grönlund mgronlun at openjdk.org
Wed Aug 21 18:26:20 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

Markus Grönlund has updated the pull request incrementally with five additional commits since the last revision:

 - pin state conditional delivered using event writer object
 - Merge branch '8338417' of github.com:mgronlun/jdk into 8338417
 - update test comment
 - hoist pinVirtualThread
 - 8338417

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/20588/files
  - new: https://git.openjdk.org/jdk/pull/20588/files/2cf0c2cb..fc2a1b6e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=20588&range=04
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=20588&range=03-04

  Stats: 78 lines in 4 files changed: 48 ins; 11 del; 19 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