Jack Lu
Jack Lu
Confirmed that this is a platform specific issue on power, running this in grinder results in 20/20 passes for axz linux, 20/20 failure in plinux/ppc_aix using `-Xint` ``` FAILED: test_VirtualthreadYieldResume...
The test failure I got is using build which included #15678, which used the new design of direct transition. I am not sure why the test only fails on power,...
after poking a bit with the test code, the failures come from exception thrown during the sleep call. ``` java.lang.IllegalStateException: Continuation is pinned: MONITOR at java.base/jdk.internal.vm.Continuation.yield(Continuation.java:211) at java.base/java.lang.VirtualThread.yieldContinuation(VirtualThread.java:370) at java.base/java.lang.VirtualThread.parkNanos(VirtualThread.java:532)...
> > @babsingh do you see any reason for the Continuation to be pinned in the test code? > > Paths, where `ownedMonitorCount` is incremented and decremented, may have an...
@thallium This is the issue for tracking progress on DDR work for Loom
Loom DDR support for scanning Continuation stack: in order to correctly scan the java stack that is associated with a Continuation object, the JVM currently creates a `J9VMThread` structure and...
> `J9VMThreadPointer` is a generated class; perhaps it would make more sense to expand `J9ThreadHelper` to handle the new use-cases. Currently in DDR we use `StackWalker.walkStackFrames(walkState, sp, arg0EA, pc, literals,...
> In the context of examining a core file, the carrier thread has already been updated as above or it hasn't (we may need to be cautious about intermediate states)....
> That seems a reasonable way towards having a stackwalker for continuations: I suggest `com.ibm.j9ddr.vm29.j9.stackwalker.WalkState` should be modified by removing `walkThread` and replacing it with a set of field capturing...
@thallium For a prototype: add following fields to `WalkState` ``` J9JavaVMPointer javaVM; long threadAddress; IOSThread osThread; long privateFlags; ``` For every place that calls `StackWalker.walkStackFrames()` initialize the following fields using...