> Please review the following change. Some of the JVMTI functions had to be 
> modified since they are not supported by the specs on virtual threads 
> (StopThread, RunAgentThread, GetCurrentThreadCpuTime, GetThreadCpuTime, 
> PopFrame, ForceEarlyReturnXXX) or shouldn't include virtual threads in the 
> results (GetAllThreads, GetAllStackTraces, GetThreadGroupChildren). Others 
> were modified because they should work on virtual thread but they weren't 
> (SuspendAllVirtualThreads/ResumeAllVirtualThreads). Also support for 
> VirtualThreadStart/VirtualThreadEnd events was added.
> 
> There were a total of 71 tests under serviceability/jvmti/ that had the 
> vm.continuations requirement. Of those, 24 where under 
> serviceability/jvmti/vthread/. I was able to remove that requirement from 50 
> tests. Most of those tests were already passing for the alternative vthread 
> implementation just by removing the check in jni_GetEnv for VMContinuations.
> From the other 21 tests, 20 still fail with the changes either because they 
> actually test continuations or because of different assumptions in the tests 
> that don't hold true for the alternative vthread implementation. So for those 
> I left the vm.continuations requirement untouched (from those 20 tests there 
> are actually 4 tests from the thread/GetStackTrace/ family that are passing 
> because of a bug in the test, but I can fix that in another RFE). The other 
> remaining test is vthread/GetSetLocalTest/GetSetLocalTest.java which I see is 
> problemlisted.
> 
> Regarding variable _is_bound_vthread, although it's handy as a cache to avoid 
> repeating the check, I mainly added it to avoid transitioning for 
> GetCurrentThreadCpuTime (we are native and cannot access oops).
> 
> I added new test BoundVThreadTest.java which just checks for the 
> unsupported/supported behavior mentioned previously. For some extra basic 
> coverage I also added a new run with -XX:-VMContinuations on tests inside the 
> serviceability/jvmti/vthread/ directory that don't require vm.continuations 
> anymore. I could also add that for all the other tests in 
> serviceability/jvmti/ for which I removed the vm.continuations requirement.
> 
> I run the patch through mach5 tiers 1-6 plus some extra local runs on the 
> relevant tests.
> 
> Thanks,
> Patricio

Patricio Chilano Mateo has updated the pull request incrementally with three 
additional commits since the last revision:

 - use different @test to run with -XX:-VMContinuations
 - more removals of @requires vm.continuations
 - change BasicVirtualThread_klass -> BaseVirtualThread_klass

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/12512/files
  - new: https://git.openjdk.org/jdk/pull/12512/files/571f0d2e..99cf204c

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=12512&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=12512&range=00-01

  Stats: 105 lines in 22 files changed: 69 ins; 7 del; 29 mod
  Patch: https://git.openjdk.org/jdk/pull/12512.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12512/head:pull/12512

PR: https://git.openjdk.org/jdk/pull/12512

Reply via email to