On Tue, 12 May 2026 06:22:33 GMT, Leonid Mesnik <[email protected]> wrote:
>> test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t003/em02t003.cpp
>> line 481:
>>
>>> 479:
>>> 480: /* Give some time to complete already processing cbNew* events. */
>>> 481: nsk_jvmti_sleep(100);
>>
>> Are you sure this is always long enough? I would be nice if there was some
>> sort of synchronization that could be done to ensure that events in progress
>> have completed, but it seems that is not possible.
>
> I think so, there are no java code invocations between setting and the actual
> code updating counters in jvmti callback.
>
> The synchronization is impossible (I think),.
> To be more detailed. There is a gap between reading callback and executing it
> in the.
>
>
> jvmtiEventCompiledMethodUnload callback =
> env->callbacks()->CompiledMethodUnload;
> if (callback != nullptr) {
> (*callback)(env->jvmti_external(), method, code_begin);
> }
>
>
> the` env->callbacks()->CompiledMethodUnload` might be updated after read and
> before callback is invoked.
> This is done while thread is already in native state, so it is not synced
> with callback setting.
>
> The issue is known. The synchronization has major performance issues and not
> strictly required by JVMTi specification.
>
>
> However, it might be possible to put in the Monitor blocks the jvmt event
> handling and events resetting to minimize the gap.
ok
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/31128#discussion_r3235606243