United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6974813 JVM needs to use demand loading for its DTrace probes
6974813 : JVM needs to use demand loading for its DTrace probes

Details
Type:
Bug
Submit Date:
2010-08-05
Status:
Closed
Updated Date:
2012-10-08
Project Name:
JDK
Resolved Date:
2010-10-05
Component:
hotspot
OS:
solaris,solaris_10
Sub-Component:
runtime
CPU:
sparc
Priority:
P3
Resolution:
Fixed
Affected Versions:
5.0u17,6u21
Fixed Versions:
6u22-rev

Related Reports
Backport:
Backport:
Backport:
Backport:
Backport:
Backport:
Duplicate:
Duplicate:

Sub Tasks

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
                                     
2010-10-09
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/4094f07967ca
                                     
2010-09-16
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.
                                     
2010-09-14
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 \
                                     
2010-09-02
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.
                                     
2010-08-27



Hardware and Software, Engineered to Work Together