RFR(M): 8032462 Change the linux SDT implementation to use USDT2 instead of USDT1

Staffan Larsen staffan.larsen at oracle.com
Wed Jan 29 00:28:30 PST 2014


On 29 jan 2014, at 02:03, serguei.spitsyn at oracle.com wrote:

> Hi Staffan,
> 
> Sorry for being late, I thought it was already reviewed. :)
> 
> It looks good, just a minor question below.

Thanks!

> make/bsd/makefiles/dtrace.make
> 
> Can this line be removed as it is not used in this file anymore?
>   55 DTRACE_SRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/dtrace 

It is actually still used. Or actually not. It’s complicated and messy. 

The bsd makefile has a lot of logic in it that was copied from the solaris makefiles for building jvm_db. But, jvm_db isn't used on OS X (there is no support for ustack helpers) so all that logic is never called from vm.make when building on OS X:

ifeq ($(OS_VENDOR), Darwin)
# no libjvm_db for macosx
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(BUILDLIBSAPROC) dtraceCheck
	echo "Doing vm.make build:"
else
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC)
endif

So you might think that it would be built on other BSDs. But it isn’t because the whole jvm_db building stuff in dtrace.make is conditional on only building on OS X:

ifeq ($(OS_VENDOR), Darwin)

In short: it’s a mess. I didn’t clean this up, but maybe a future change will. Or maybe the hotspot makefile rewrite will.

Thanks,
/Staffan


> 
> Thanks,
> Serguei
> 
> 
> On 1/28/14 12:52 AM, Staffan Larsen wrote:
>> Still looking for reviewers for this change.
>> 
>> Thanks,
>> /Staffan
>> 
>> On 23 jan 2014, at 08:36, Staffan Larsen <staffan.larsen at oracle.com> wrote:
>> 
>>> The only usage today of the DTrace macros under the USDT1 define is the SDT provider on linux. This can be changed to use the USDT2 style by preprocessing the .d files into .h files with the dtrace utility in the same way as we do on solaris and OS X.
>>> 
>>> I have also moved the provider definition files (hotspot.d, hotspot_jni.d and hs_private.d) to a common directory instead of having one identical copy per platform.
>>> 
>>> I would really like to have a review from somebody on the IcedTea team since I haven’t been able to fully verify this change by running systemtap.
>>> 
>>> Once this change is done, we can proceed to remove the USDT1 style macros.
>>> 
>>> webrev: http://cr.openjdk.java.net/~sla/8032462/webrev.00/
>>> bug: https://bugs.openjdk.java.net/browse/JDK-8032462
>>> 
>>> testing: vm.dtrace.testlist in nsk
>>> 
>>> Thanks,
>>> /Staffan
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20140129/24a3b5b8/attachment-0001.html 


More information about the serviceability-dev mailing list