On Mon, 16 Dec 2024 12:17:17 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> A jdk.VirtualPinnedEvent JFR event is recorded by Object::wait when a 
>> virtual thread waits in Object.wait while pinned. The posting of the event 
>> in ObjectMonitor::wait is done after waiting but it can block again in 
>> enter/ReenterI before it re-acquires. If that happens then the event 
>> duration won't be accurate, and for the off-list case, the enter may be 
>> contended and a jdk.VirtualPinnedEvent event will be recorded for contended 
>> monitor enter. The changes to fix this are small: move the post of the event 
>> for Object.wait to end of the wait function, and only post an event for 
>> contended monitor enter when not waiting.
>> 
>> I've added a test to check the pinned event that is recored for several 
>> contended monitor enter and Object.wait cases. It checks the event duration 
>> and that only one event is recorded for each case.
>
> Alan Bateman has updated the pull request with a new target base due to a 
> merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains nine additional 
> commits since the last revision:
> 
>  - Remove redundant asserts
>  - Merge branch 'master' into JDK-8346120
>  - Merge branch 'master' into JDK-8346120
>  - Fix test comments
>  - testObjectWait2 test already owns lock
>  - Min duration check needs to have some tolerance
>  - Rename test, check more event fields
>  - Filter out VirtualThread.getAndClearInterrupt
>  - Initial commit

LGTM. Thanks

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

Marked as reviewed by dholmes (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/22718#pullrequestreview-2507957197

Reply via email to