If you run hotspot with -XX:+DeoptimizeObjectsALot, it will create one or more 
DeoptimizeObjectsALotThread threads. This is one of many JavaThread subclasses 
that SA needs to know about, but in this case it does not. When SA tries to 
create a mirror of one of these threads, it fails with:


 stderr: [java.lang.RuntimeException: Unable to deduce type of thread from 
address 0x0000ffff34144e30 (expected type JavaThread, CompilerThread, 
MonitorDeflationThread, AttachListenerThread, StringDedupThread, 
NotificationThread, ServiceThread or JvmtiAgentThread)
at 
jdk.hotspot.agent/sun.jvm.hotspot.runtime.Threads.createJavaThreadWrapper(Threads.java:196)
at 
jdk.hotspot.agent/sun.jvm.hotspot.runtime.Threads.getJavaThreadAt(Threads.java:178)


The following can be used to reproduce this failure. Most SA tests will fail:

 make test TEST=serviceability/sa TEST_VM_OPTS=-XX:+DeoptimizeObjectsALot 

I had to move the native DeoptimizeObjectsALotThread declaration to 
compileBroker.hpp to make it visible to vmStructs.cpp.

I tested with the above "make test" command and ran all svc tier1, tier2, 
tier3, and tier5 tests.

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

Commit messages:
 - Add DeoptimizeObjectsALotThread support

Changes: https://git.openjdk.org/jdk/pull/23279/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23279&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8348239
  Stats: 82 lines in 6 files changed: 62 ins; 14 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/23279.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23279/head:pull/23279

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

Reply via email to