RFR: 8224479: New diagnostic command: VM.get_flag

Stefan Karlsson stefan.karlsson at oracle.com
Tue May 21 13:22:07 UTC 2019


Hi Thomas,

On 2019-05-21 12:37, Thomas Stüfe wrote:
> I think this is useful. 

Thanks.

I have a vague preference for reusing VM.flags
> though - giving it the option to only print one flag - instead of adding 
> a new command.

So, we would have three different modes for VM.flags:
$ jcmd HelloSleep VM.flags
371:
-XX:CICompilerCount=15 -XX:ConcGCThreads=6 
-XX:G1ConcRefinementThreads=23 -XX:G1HeapRegionSize=4194304 
-XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=2113929216 
-XX:MarkStackSize=4194304 -XX:MaxHeapSize=32178700288 
-XX:MaxNewSize=19306381312 -XX:MinHeapDeltaBytes=4194304 
-XX:NonNMethodCodeHeapSize=8182140 -XX:NonProfiledCodeHeapSize=121738050 
-XX:ProfiledCodeHeapSize=121738050 -XX:ReservedCodeCacheSize=251658240 
-XX:+SegmentedCodeCache -XX:+UseCompressedClassPointers 
-XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseG1GC

$ /localhome/java/jdk9/bin/jcmd HelloSleep VM.flags -all
371:
[Global flags]
ccstrlist AOTLibrary                               = 
                       {product} {default}
       int ActiveProcessorCount                     = -1 
                        {product} {default}
     uintx AdaptiveSizeDecrementScaleFactor         = 4 
                        {product} {default}
     uintx AdaptiveSizeMajorGCDecayTimeScale        = 10 
                        {product} {default}
     uintx AdaptiveSizePolicyCollectionCostMargin   = 50 
                        {product} {default}

and a new mode:
$ /localhome/java/jdk9/bin/jcmd HelloSleep VM.flags -name=UseSerialGC
371:
      bool UseSerialGC                              = false 
                        {product} {default}

Let's see if anyone else has some feedback regarding this.

Thanks,
StefanK

> 
> Just my 5c
> 
> .. Thomas
> 
> On Tue, May 21, 2019, 12:14 Stefan Karlsson <stefan.karlsson at oracle.com 
> <mailto:stefan.karlsson at oracle.com>> wrote:
> 
>     Hi all,
> 
>     Please review this patch to introduce a new diagnostic command:
>     VM.get_flag.
> 
>     http://cr.openjdk.java.net/~stefank/8224479/webrev.01/
>     https://bugs.openjdk.java.net/browse/JDK-8224479
> 
>     Today we have:
> 
>     - VM.set_flag - which allows the user to set a manageable flag
>     - VM.flags - which allows the user to print all set flags or print
>     similar output as -XX:+PrintFlagsFinal
> 
>     I propose that we add a new command to print the value of one flag.
> 
>     Output from help:
>     ==========
>     $ jcmd HelloSleep help VM.get_flag
>     1060:
>     VM.get_flag
>     Prints the value of a VM flag option.
> 
>     Impact: Low
> 
>     Permission: java.lang.management.ManagementPermission(monitor)
> 
>     Syntax : VM.get_flag  <flag name>
> 
>     Arguments:
>              flag name :  The name of the flag we want to get (STRING,
>     no default value)
>     ==========
> 
>     Output from usage:
>     ==========
>     $ jcmd HelloSleep VM.get_flag UseSerialGC
>     1060:
>     false
>     ==========
> 
>     I'll create a CSR if others also thinks this is a worthwhile feature.
> 
>     Thanks,
>     StefanK
> 


More information about the serviceability-dev mailing list