RFE: Add compressed oops to VM info string

David Holmes david.holmes at oracle.com
Mon Nov 14 17:10:25 PST 2011


On 14/11/2011 9:22 PM, Krystal Mok wrote:
> @David
> Printing flags isn't good enough in some scenarios.
> Take jmap -heap for example. HeapSummary prints out a few flags of
> interest, but it can be misleading for people who don't know that not
> all flags are in effect all the time.
> In [1], MaxNewSize shows "17592186044415 MB", and OldSize shows "5439488
> (5.1875MB)". Neither of these values correspond to the actual heap
> stats; they just act as a hint to let ergonomics make the decision.
> PrintFlagsFinal won't do any good in this kind of scenario (and
> PrintCommandLineFlags won't show anything).

As I said if the print-flags option isn't showing the compressed-oops 
flag settings then that should be fixed.

Sorry I don't understand the connection to your jmap -heap example.

David
-----

> Regards,
> Kris Mok
>
> [1]: https://gist.github.com/1363195
>
> On Sat, Nov 12, 2011 at 7:53 AM, Srinivas Ramakrishna <ysr1729 at gmail.com
> <mailto:ysr1729 at gmail.com>> wrote:
>
>     +1 to David's (and others') suggestion:-
>
>     I agree that +PrintFlagsFinal makes this less subjective and more
>     uniform.
>
>     -- ramki
>
>
>     On Thu, Nov 10, 2011 at 1:31 PM, David Holmes
>     <david.holmes at oracle.com <mailto:david.holmes at oracle.com>> wrote:
>
>         In case I didn't mention it earlier there is also
>         -Xinternalversion which might be extended this way.
>
>         But personally I think printing the flags is the way to go, and
>         if the desired flags are not printed then that is a RFE for the
>         print-flags options.
>
>         David
>
>
>         On 11/11/2011 4:02 AM, Mandy Chung wrote:
>
>             FWIW. Kumar added an internal option -XshowSettings to the
>             launcher in
>             JDK 7 to print various VM and java settings. This could be a
>             potential
>             place to include "compressed oops" and other VM ergonomic
>             setting in. It
>             takes an optional suboption "all, vm, properties, locale".
>
>             $ java -XshowSettings:vm
>
>             VM settings:
>             Stack Size: 320.00K
>             Max. Heap Size (Estimated): 910.00M
>             Ergonomics Machine Class: server
>             Using VM: Java HotSpot(TM) Server VM
>
>             [snip..]
>
>             java -XshowSettings -version doesn't print the additional
>             information. I
>             haven't spent time looking into the reason why.
>
>             Mandy
>
>             On 11/10/11 08:01, Paul Hohensee wrote:
>
>                 I don't think the version string is the place for
>                 dumping ergo
>                 decision results,
>                 rather I agree with David Holmes and Joe that
>                 PrintFlagsFinal,
>                 PrintCommandLineFlags,
>                 or some other switch should be used. We shouldn't have
>                 "mixed mode",
>                 etc. in the
>                 string either, but given that they're there we're kinda
>                 stuck with them.
>
>                 The reason we have "Server" and "Client" (and "Embedded,
>                 btw) is to
>                 distinguish
>                 builds that are statically different. Tiered got folded
>                 into Server
>                 awhile ago, which
>                 is why it's no longer mentioned in the version string.
>
>                 Changing the version string is a non-trivial thing to
>                 do: it has to go
>                 through
>                 an approval process because it's a supported public
>                 interface. There
>                 are, e.g.,
>                 quite a few version string parsers out there that
>                 wouldn't take kindly
>                 to change.
>
>                 Paul
>
>                 On 11/10/11 8:18 AM, Volker Simonis wrote:
>
>                     +1 from me
>
>                     On Thu, Nov 10, 2011 at 12:44 PM, Christian Thalinger
>                     <christian.thalinger at oracle.__com
>                     <mailto:christian.thalinger at oracle.com>> wrote:
>
>                         On Nov 10, 2011, at 12:16 PM, Volker Simonis wrote:
>
>                             Hi Kris,
>
>                             first I want to say that I like and support
>                             your enhancement request.
>
>                             However once we do this, if would suggest
>                             printing other
>                             information as well.
>                             Particularly the fact if we're using tiered
>                             compilation comes to my
>                             mind here.
>
>                             I would therefore suggest to use a less
>                             verbose "compressed oops"
>                             string and also
>                             print the concrete compressed oops mode
>                             that's actually used
>                             (unscaled, zerobased, heapbased).
>                             This information may be particularly usefull
>                             because it may change
>                             depending on the users heap setting
>                             and the current system memory situation.
>
>                             So finally, we could use something like:
>
>                             OpenJDK 64-Bit Server VM (build
>                             20.0-b11-internal, mixed mode, tiered,
>                             compr-oops=unscaled)
>
>                         Honestly I don't know what it takes to change
>                         that string since it's
>                         a public known option. But my personal opinion
>                         is: print the most
>                         important runtime settings like JIT mode, GC
>                         used, compressed oops
>                         mode. Something along these lines:
>
>                         Java HotSpot(TM) Server VM (build 23.0-b03,
>                         mixed mode, tiered,
>                         serial gc, zerobased coops)
>
>                         Just my two cents...
>
>                         -- Chris
>
>                             For such a version string, it would be
>                             probably better to construct
>                             the string on the fly, otherwise
>                             the 'info_strs' struct you are currently
>                             using may become too big.
>
>                             What are your opinions?
>
>                             Regards,
>                             Volker
>
>
>                             On Thu, Nov 10, 2011 at 8:54 AM, Krystal
>                             Mok<rednaxelafx at gmail.com
>                             <mailto:rednaxelafx at gmail.com>>
>                             wrote:
>
>                                 Hi all,
>                                 I'd like to propose to add "compressed
>                                 oops" to the VM info
>                                 string, so that
>                                 people using "java -version" can get a
>                                 better understanding of the
>                                 ergonomics of the VM.
>                                 I've posted a patch [1], against hsx20's
>                                 master. The files
>                                 modified are
>                                 still pretty much the same on
>                                 hotspot-main's master.
>                                 With the patch applied, "java -version"
>                                 may show:
>                                 OpenJDK 64-Bit Server VM (build
>                                 20.0-b11-internal, mixed mode,
>                                 compressed
>                                 oops)
>                                 and what used to work still works:
>                                 OpenJDK Client VM (build
>                                 20.0-b11-internal, mixed mode, sharing)
>                                 P.S. Alibaba (Taobao)'s OCA is submitted
>                                 already, still waiting
>                                 for approval
>                                 from Oracle.
>                                 Regards,
>                                 Kris Mok
>                                 Software Engineer, Taobao
>                                 (http://www.taobao.com)
>                                 [1]: https://gist.github.com/__1354299
>                                 <https://gist.github.com/1354299>
>
>
>
>
>


More information about the hotspot-dev mailing list