Skip emission of internal JFR ThreadPark events #11769
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When synchronization such as monitor enter or wait is used,
Unsafe.park
is used under-the-hood to block threads. This results in not onlyjdk.JavaMonitorWait
andjdk.JavaMonitorEnter
events being emitted, but secondaryjdk.ThreadPark
events being emitted as well. Thejdk.ThreadPark
events are only emitted due to the implementation details of thecom.oracle.svm.core.monitor.JavaMonitor
andcom.oracle.svm.core.monitor.JavaMonitorQueuedSynchronizer
classes.In Hotspot, the Java
Unsafe
class is not needed to block threads sojdk.JavaMonitorWait
andjdk.JavaMonitorEnter
events are emitted without correspondingjdk.ThreadPark
events.We should reduce noise and copy Hotspot by skipping the emission of these internal
jdk.ThreadPark
events.Hotspot


Notice that there is no
jdk.ThreadPark
corresponding to thejdk.JavaMonitorEnter
event.Native Image before the fix


Notice that there is a
jdk.ThreadPark
corresponding to thejdk.JavaMonitorEnter
eventNative Image after the fix

