JDK-6974813 : JVM needs to use demand loading for its DTrace probes
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 5.0u17,6u21
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris,solaris_10
  • CPU: sparc
  • Submitted: 2010-08-05
  • Updated: 2017-05-16
  • Resolved: 2010-10-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u22-rev b06Fixed 7Fixed hs19Fixed
Related Reports
Duplicate :  
Duplicate :  
Description
The customer has applied the patch for change request 6815915 [ libCrun.so.1 needs to use demand loading for its DTrace probes ] but still finds that DTrace probes are being inserted into the kernel when using the JVM.  They would like the same demand loading to be implemented for the JVM.

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/4094f07967ca
09-10-2010

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/4094f07967ca
16-09-2010

EVALUATION DTrace probes instered into kernel on JVM intialization. It could cause a problem if multiple JVM's runs on the same machine. Delay probe installation by specific dtrace option.
14-09-2010

SUGGESTED FIX Luckily, this flag is supported by our build platforms: diff --git a/make/solaris/makefiles/dtrace.make b/make/solaris/makefiles/dtrace.make --- a/make/solaris/makefiles/dtrace.make +++ b/make/solaris/makefiles/dtrace.make @@ -165,7 +165,7 @@ CONDITIONALLY_UPDATE_JVMOFFS_TARGET = \ $(DTRACE.o): $(DTRACE).d $(JVMOFFS).h $(JVMOFFS)Index.h $(DTraced_Files) @echo Compiling $(DTRACE).d - $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -G -o $@ -s $(DTRACE).d \ + $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -G -xlazyload -o $@ -s $(DTRACE).d \ $(DTraced_Files) ||\ STATUS=$$?;\ if [ x"$$STATUS" = x"1" -a \
02-09-2010

SUGGESTED FIX From 6815915: "To enable demand loading you should specify '-xlazyload' in the dtrace(1M) invocation used to create the library (e.g. dtrace -G -xlazyload -s provider.d foo.o)." It may be as simple as adding this flag in the hotspot build. But - since building hotspot uses an older backported dtrace package when built on solaris 8 (jdk6's official build platform), that flag may not be available in that situation and we might have to do something more creative.
27-08-2010