Port the JVM/DI tests from the following bug fix to JVM/TI:
JDK-4413752 Linux: suspended thread blocks raw ObjectMonitor entry
Here are the test source file names:
$ ls -l *.c *.java
-r--r--r-- 1 dcubed green 11808 Feb 12 2001 di4413752.c
-r--r--r-- 1 dcubed green 10212 Feb 16 2001 di4413752.java
-r--r--r-- 1 dcubed green 9788 Mar 23 2001 dijava4413752.c
-r--r--r-- 1 dcubed green 10285 Mar 23 2001 dijava4413752.java
-r--r--r-- 1 dcubed green 11045 Feb 14 2001 diobj4413752.c
-r--r--r-- 1 dcubed green 10459 Feb 16 2001 diobj4413752.java
-r--r--r-- 1 dcubed green 10612 Feb 16 2001 diwait4413752.c
-r--r--r-- 1 dcubed green 8182 Feb 16 2001 diwait4413752.java
-r--r--r-- 1 dcubed green 4406 Feb 12 2001 pi4413752.c
-rw-r--r-- 1 dcubed green 9809 Aug 25 2005 pi4413752.java
-r--r--r-- 1 dcubed green 3678 Feb 13 2001 piobj4413752.c
-rw-r--r-- 1 dcubed green 9823 Aug 25 2005 piobj4413752.java
-r--r--r-- 1 dcubed green 3296 Feb 16 2001 piwait4413752.c
-rw-r--r-- 1 dcubed green 8123 Aug 25 2005 piwait4413752.java
There were two different APIs families that needed testing back then: JVM/DI and JVM/PI.
Within both API families, we needed to test a couple of different API combinations:
- RawMonitorEnter() with SuspendThread()
- di4413752.java and di4413752.c
- pi4413752.java and piwait4413752.c
- ObjectMonitor enter() with SuspendThread()
- diobj4413752.java and diobj4413752.c
- piobj4413752.java and piobj4413752.c
- ObjectMonitor wait() with SuspendThread
- diwait4413752.java and diwait4413752.c
- piwait4413752.java and piwait4413752.c
- ObjectMonitor enter() with java.lang.Thread.suspend()
- dijava4413752.java and dijava4413752.c
- looks like I didn't write JVM/Pi versions of this test
JVM/DI and JVM/PI were replaced by JVM/TI so only these API combinations
need porting:
- RawMonitorEnter() with SuspendThread()
- test/hotspot/jtreg/serviceability/jvmti/SuspendWithRawMonitorEnter/SuspendWithRawMonitorEnter.java
- test/hotspot/jtreg/serviceability/jvmti/SuspendWithRawMonitorEnter/libSuspendWithRawMonitorEnter.cpp
- ObjectMonitor enter() with SuspendThread()
- test/hotspot/jtreg/serviceability/jvmti/SuspendWithObjectMonitorEnter/SuspendWithObjectMonitorEnter.java
- test/hotspot/jtreg/serviceability/jvmti/SuspendWithObjectMonitorEnter/libSuspendWithObjectMonitorEnter.cpp
- ObjectMonitor wait() with SuspendThread
- test/hotspot/jtreg/serviceability/jvmti/SuspendWithObjectMonitorWait/SuspendWithObjectMonitorWait.java
- test/hotspot/jtreg/serviceability/jvmti/SuspendWithObjectMonitorWait/libSuspendWithObjectMonitorWait.cpp
ObjectMonitor enter() with java.lang.Thread.suspend() doesn't need porting because
that API is deprecated.
Here are the test source file names:
$ ls -l *.c *.java
-r--r--r-- 1 dcubed green 11808 Feb 12 2001 di4413752.c
-r--r--r-- 1 dcubed green 10212 Feb 16 2001 di4413752.java
-r--r--r-- 1 dcubed green 9788 Mar 23 2001 dijava4413752.c
-r--r--r-- 1 dcubed green 10285 Mar 23 2001 dijava4413752.java
-r--r--r-- 1 dcubed green 11045 Feb 14 2001 diobj4413752.c
-r--r--r-- 1 dcubed green 10459 Feb 16 2001 diobj4413752.java
-r--r--r-- 1 dcubed green 10612 Feb 16 2001 diwait4413752.c
-r--r--r-- 1 dcubed green 8182 Feb 16 2001 diwait4413752.java
-r--r--r-- 1 dcubed green 4406 Feb 12 2001 pi4413752.c
-rw-r--r-- 1 dcubed green 9809 Aug 25 2005 pi4413752.java
-r--r--r-- 1 dcubed green 3678 Feb 13 2001 piobj4413752.c
-rw-r--r-- 1 dcubed green 9823 Aug 25 2005 piobj4413752.java
-r--r--r-- 1 dcubed green 3296 Feb 16 2001 piwait4413752.c
-rw-r--r-- 1 dcubed green 8123 Aug 25 2005 piwait4413752.java
There were two different APIs families that needed testing back then: JVM/DI and JVM/PI.
Within both API families, we needed to test a couple of different API combinations:
- RawMonitorEnter() with SuspendThread()
- di4413752.java and di4413752.c
- pi4413752.java and piwait4413752.c
- ObjectMonitor enter() with SuspendThread()
- diobj4413752.java and diobj4413752.c
- piobj4413752.java and piobj4413752.c
- ObjectMonitor wait() with SuspendThread
- diwait4413752.java and diwait4413752.c
- piwait4413752.java and piwait4413752.c
- ObjectMonitor enter() with java.lang.Thread.suspend()
- dijava4413752.java and dijava4413752.c
- looks like I didn't write JVM/Pi versions of this test
JVM/DI and JVM/PI were replaced by JVM/TI so only these API combinations
need porting:
- RawMonitorEnter() with SuspendThread()
- test/hotspot/jtreg/serviceability/jvmti/SuspendWithRawMonitorEnter/SuspendWithRawMonitorEnter.java
- test/hotspot/jtreg/serviceability/jvmti/SuspendWithRawMonitorEnter/libSuspendWithRawMonitorEnter.cpp
- ObjectMonitor enter() with SuspendThread()
- test/hotspot/jtreg/serviceability/jvmti/SuspendWithObjectMonitorEnter/SuspendWithObjectMonitorEnter.java
- test/hotspot/jtreg/serviceability/jvmti/SuspendWithObjectMonitorEnter/libSuspendWithObjectMonitorEnter.cpp
- ObjectMonitor wait() with SuspendThread
- test/hotspot/jtreg/serviceability/jvmti/SuspendWithObjectMonitorWait/SuspendWithObjectMonitorWait.java
- test/hotspot/jtreg/serviceability/jvmti/SuspendWithObjectMonitorWait/libSuspendWithObjectMonitorWait.cpp
ObjectMonitor enter() with java.lang.Thread.suspend() doesn't need porting because
that API is deprecated.
- relates to
-
JDK-8264393 JDK-8258284 introduced dangling TLH race
- Resolved
-
JDK-4413752 Linux: suspended thread blocks raw ObjectMonitor entry
- Closed
-
JDK-8257831 Suspend with handshakes
- Resolved