RFR (L): 8024545: make develop and notproduct flag values available in product builds

Christian Thalinger christian.thalinger at oracle.com
Thu Sep 12 17:18:18 PDT 2013


On Sep 12, 2013, at 5:17 PM, Coleen Phillmore <coleen.phillimore at oracle.com> wrote:

> 
> On 9/11/2013 12:29 PM, Christian Thalinger wrote:
>> On Sep 11, 2013, at 4:57 AM, Coleen Phillmore <coleen.phillimore at oracle.com> wrote:
>> 
>>> Hi,
>>> 
>>> Have you done performance testing on this change?   When develop flags are not defined they are defined "const" false which enables the C++ compiler to do better optimizations.   I've seen code that counts on that.
>>> If you want the values to be materialized, why not change the develop flag definition to be extern const (or some such).
>> develop and notproduct flags are still constants; I didn't change that.  I've just put the const value in the flags table.
> 
> Ok.  That's fine then.  I hadn't read through the code change.

Thank you, Coleen.

-- Chris

> Coleen
>> 
>> -- Chris
>> 
>>> Coleen
>>> 
>>> On 9/10/2013 8:56 PM, Christian Thalinger wrote:
>>>> http://cr.openjdk.java.net/~twisti/8024545/webrev/
>>>> 
>>>> 8024545: make develop and notproduct flag values available in product builds
>>>> Reviewed-by:
>>>> 
>>>> Right now the internal flag table only contains flags which are defined in a product build. This does not include develop and notproduct flags. Sometimes it is useful to have access to these values for post-mortem core file analysis or to read these values for compiler settings for a Java-based compiler.
>>>> 
>>>> This change enables develop and notproduct flag values to be read by the serviceability agent. The binary size is increased by 42k for a 64-bit product build and by 32k for a 32-bit product build.
>>>> 
>>>> Before:
>>>> 
>>>> $ java -cp /java/re/jdk/8/latest/binaries/linux-x64/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB 9399
>>>> Attaching to process 9399, please wait...
>>>> hsdb> flags -nd
>>>> InitialHeapSize = 495006528 5
>>>> MaxHeapSize = 7920943104 5
>>>> UseCompressedKlassPointers = true 5
>>>> UseCompressedOops = true 5
>>>> UseParallelGC = true 5
>>>> hsdb> flags InlineMathNatives
>>>> Couldn't find flag: InlineMathNatives
>>>> 
>>>> After:
>>>> 
>>>> $ java -cp $JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB 3726
>>>> Attaching to process 3726, please wait...
>>>> hsdb> flags -nd
>>>> InitialHeapSize = 495006528 5
>>>> MaxHeapSize = 7920943104 5
>>>> UseCompressedKlassPointers = true 5
>>>> UseCompressedOops = true 5
>>>> UseParallelGC = true 5
>>>> hsdb> flags InlineMathNatives
>>>> InlineMathNatives = true 0
>>>> 
>>>> This patch has one behavioral difference; when printing flags with e.g. PrintFlagsFinal in a debug build it prints "develop" for develop flags:
>>>> 
>>>>     uintx AdaptiveSizePolicyGCTimeLimitThreshold    = 5               {develop}
>>>> 
>>>> The output for product builds is unchanged.
> 



More information about the hotspot-dev mailing list