Request for review 7170638: Use DTRACE_PROBE[N] in JNI Set and SetStatic Field.

Karen Kinnear karen.kinnear at oracle.com
Mon Oct 1 17:19:20 PDT 2012


Mark,

Could you help with a couple of other questions please.

1. If you build with an earlier version of gcc - e.g. 4.3 - what happens when you build?
And when you run?
- i.e. shouldn't the makefile conditional be on both the existence of sys/std.h and the gcc version?

2. If you build on gcc 4.5 with a system that has std.h - what happens if you run on
a system that does not have a version of SystemTap that supports dtrace->std?
Do you need a runtime check as well so there are not problems in the field?

thanks,
Karen

On Oct 1, 2012, at 6:31 PM, Coleen Phillimore wrote:

> 
> Okay, my question was out of ignorance.  To get this functionality, you need to install both the Systemtap package and upgrade the compilers.  Doing the second is not sufficient to get this support.   It's just required for the elf section changes.
> 
> Thanks,
> Coleen
> 
> On 10/1/2012 5:24 PM, Mark Wielaard wrote:
>> On Mon, Oct 01, 2012 at 04:49:21PM -0400, Coleen Phillimore wrote:
>>> I have another question.   You check for the presence of
>>> /usr/include/sys/sdt.h to set DTRACE_ENABLED.
>> Yes, see the last paragraph of the original submission to see why
>> I chose that method of testing:
>> http://mail.openjdk.java.net/pipermail/hotspot-dev/2012-May/005739.html
>> Basically because that looked most like what the existing
>> make/solaris/dtrace.make and vm.make files did.
>> 
>>> Is this file
>>> installed with gcc versions 4.5+ or can it be installed with a
>>> latest version of linux?
>> I am not entirely sure what you mean by "latest version of linux".
>> But the SystemTap package provides sys/sdt.h (in particular the
>> systemtap-sdt-devel sub-package).
>> 
>> The header file is described here:
>> http://tromey.com/blog/?p=687
>> http://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation
>> 
>> Although it is installed by the Systemtap package, it isn't really
>> tied to Systemtap. It really just implements the SDT macros and
>> when included and compiled into an application that uses those
>> macros any application (stap, gdb, etc) that can read the ELF
>> probes notes section can use them.
>> 
>>> Is dtrace only supported with gcc 4.5+ or
>>> only supported with a version of linux that enables this?
>> I don't believe dtrace is supported with any version of gcc,
>> but I don't really know anything about dtrace.
>> The sys/sdt.h header (for C++) uses some features of GCC 4.5+.
>> (For plain C older GCC versions can be used, but hotspot is all C++.)
>> 
>>> If we upgraded our tool chains to be gcc 4.5+ (4.7) does that mean
>>> we might enable this?   Or is it tied to the linux version?  Does
>>> this question make sense?
>> I am not sure I understand the question. If you mean by "linux" the
>> kernel then the answer is that it doesn't depend in any way on the
>> kernel version. If you upgrade your toolchain to GCC 4.5+ and install
>> the sys/sdt.h header, then you can enable this.
>> 
>> Cheers,
>> 
>> Mark



More information about the hotspot-dev mailing list