Jimmy K
Jimmy K
It turns out that `-Xnoaot` unexpectedly causes the JIT to be loaded even if `-Xint` is set. So this might still be a JIT issue after all. I will continue...
The problem does seem to be related to a compiled method. I am currently using this JVM (different from above): ``` openjdk version "24.0.1-internal" 2025-04-15 OpenJDK Runtime Environment (build 24.0.1-internal-adhoc.jenkins.BuildJDK24ppc64lelinuxPersonal)...
``` 0x00007fffc2e900d0: ld r3,1880(r16) //* two instruction sequence to load static object lockCheck into r31 0x00007fffc2e900d4: ld r31,0(r3) //* 0x00007fffc2e900d8: std r31,48(r14) // lockCheck recorded to stack at 48(r14) 0x00007fffc2e900dc:...
I'm now using a slightly different command. `traceILGen` and `disableOSR` were added as options. `count=10` is now used instead of `count=0`. The test was modified to run `test1` multiple times...
The bytecodes looks like this: ``` 0, JBaload0 1, JBiconst1 2, JBputfield 3 5, JBgetstatic 5 8, JBdup 9, JBastore1 10, JBmonitorenter 11, JBaload1 12, JBmonitorexit 13, JBgoto 8, 21,...
It still happens even on Semeru JDK21 with no virtual threads: Java code: ``` static class EnteringTask implements Runnable { public void run() { synchronized (lockCheck) { } } }...
I forgot to mention this before but the unmodified test case can be found here: https://github.com/ibmruntimes/openj9-openjdk-jdk24/blob/7adb8bad278d7cfcd77aa44bdb00919437c16a35/test/hotspot/jtreg/serviceability/jvmti/ObjectMonitorUsage/ObjectMonitorUsage.java I'm currently using a modified version that only runs the virtual thread version of...
Yes. I was able to verify via gdb that a thread was looping in block 9 during a hang.
I tried adding `-Xdump:java:events=throw` to a run and I now get this before the hang: ``` ### test1: started virtual >>> [2] >>> owner: main (0x0x7a67145a9fb0) >>> entry_count: 1 >>>...
If my understanding is correct, the Virtual Thread starts mounted with VMThread A. This is in `r15`. The VT gets unmounted and `r15` is supposed to be saved but it...