On Thu, 20 Apr 2023 01:27:37 GMT, Leonid Mesnik <lmes...@openjdk.org> wrote:
>> This enhancement adds support of virtual threads to the JVMTI `StopThread` >> function. >> In preview releases before this enhancement the StopThread returned the >> JVMTI_ERROR_UNSUPPORTED_OPERATION error code for virtual threads. >> >> The `StopThread` supports sending an asynchronous exception to a virtual >> thread only if it is current or suspended at mounted state. For instance, a >> virtual thread can be suspended at a JVMTI event. If the virtual thread is >> not suspended and is not current then the `JVMTI_ERROR_THREAD_NOT_SUSPENDED` >> error code is returned. If the virtual thread was suspended at unmounted >> state then the `JVMTI_ERROR_OPAQUE_FRAME` error code is returned. >> >> The `StopThread` has the following description for >> `JVMTI_ERROR_OPAQUE_FRAME` error code: >>> The thread is a suspended virtual thread and the implementation >>> was unable to throw an asynchronous exception from this frame. >> >> A couple of the `serviceability/jvmti/vthread` tests has been updated to >> adopt to new `StopThread` behavior. >> >> The CSR is: https://bugs.openjdk.org/browse/JDK-8306434 >> >> Testing: >> The mach5 tears 1-6 are in progress. >> Preliminary test runs were good in general. >> The JDB test `vmTestbase/nsk/jdb/kill/kill001/kill001.java` has been >> problem-listed and will be fixed by the corresponding debugger enhancement >> which is going to adopt JDWP/JDI specs to new behavior of the JVMTI >> `StopThread` related to virtual threads. >> >> Also, two JCK JVMTI tests are failing in the tier-6 : >>> vm/jvmti/StopThread/stop001/stop00103/stop00103.html >>> vm/jvmti/StopThread/stop001/stop00103/stop00103a.html >> >> These two tests will be excluded from the test runs by the JCK team and then >> adjusted to new `StopThread` behavior. > > test/hotspot/jtreg/serviceability/jvmti/vthread/StopThreadTest/StopThreadTest.java > line 38: > >> 36: * >> 37: * @requires vm.continuations >> 38: * @compile --enable-preview -source ${jdk.version} StopThreadTest.java > > --enable-preview is not needed anymore. Fixed, thanks. > test/hotspot/jtreg/serviceability/jvmti/vthread/StopThreadTest/libStopThreadTest.cpp > line 135: > >> 133: check_jvmti_status(jni, err, "prepareAgent: Failed in JVMTI >> SetBreakpoint"); >> 134: >> 135: err = jvmti->SetEventNotificationMode(JVMTI_ENABLE, >> JVMTI_EVENT_BREAKPOINT, NULL); > > We have set_event_notification_mode() in jvmti_h. Fixed, thanks. > test/hotspot/jtreg/serviceability/jvmti/vthread/StopThreadTest/libStopThreadTest.cpp > line 151: > >> 149: Java_StopThreadTest_resumeThread(JNIEnv *jni, jclass cls, jthread >> thread) { >> 150: LOG("Main: resumeThread\n"); >> 151: jvmtiError err = jvmti->ResumeThread(thread); > > there is suspend_thread/resume_thread() in jvmti.h Fixed, thanks. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/13546#discussion_r1172784838 PR Review Comment: https://git.openjdk.org/jdk/pull/13546#discussion_r1172785542 PR Review Comment: https://git.openjdk.org/jdk/pull/13546#discussion_r1172785177