RFR(s): 8224600: Provide VM.events command
David Holmes
david.holmes at oracle.com
Mon Jun 3 06:27:25 UTC 2019
Hi Thomas,
Thanks for clarifying a few things. The updates look fine to me.
For the CSR I suggest moving it to Finalized.
Thanks,
David
On 3/06/2019 4:08 pm, Thomas Stüfe wrote:
> Hi David,
>
> thanks for reviewing!
>
> New webrev below and comments inline.
>
> On Thu, May 30, 2019 at 8:48 AM David Holmes <david.holmes at oracle.com
> <mailto:david.holmes at oracle.com>> wrote:
>
> Hi Thomas,
>
> On 24/05/2019 5:51 am, Thomas Stüfe wrote:
> > Hi all,
> >
> > May I please have reviews for the following addition to jcmd.
> >
> > Bug: https://bugs.openjdk.java.net/browse/JDK-8224600
> > CSR: https://bugs.openjdk.java.net/browse/JDK-8224601
> > webrev:
> >
> http://cr.openjdk.java.net/~stuefe/webrevs/vm.events/webrev.00/webrev/index.html
>
> This seems quite reasonable but I have a couple of queries/comments:
>
> Where do the short-names of the logs get used? Is that what you ask for
> via the Dcmd?
>
>
> I added the short names (now renamed to "handle") because selecting by
> the event log full name was cumbersome. The full name is more of a
> headline consisting of multiple words, e.g. "Deoptimization events".
>
> How does the user know what logs are available?
>
>
> I print a list of valid names out if the user specifies an event log
> which does not exist. See Events::print_one().
>
> I would have liked to print this list as part of the command help;
> however, that would have made the patch larger, added code duplication
> and made it much more complicated since the help command (HelpDCmd) is
> not really flexible and cannot deal easily with dynamic content.
> Especially not content which is order-of-initialization-dependend
> (diagnostic command initialization vs event log initialization).
>
>
>
> // Print log names (for help output of VM.events
>
> This comment appears in a few places but is missing the final ).
>
> The test should have a single copyright year of 2019.
>
>
> Fixed.
>
> The test should be checking all the variations to ensure if you ask for
> exceptions you only get exceptions etc.
>
>
> Okay, I did add a test testing the selection feature. Since all I test
> is for the log event *headers* to appear - regardless of whether or not
> they are empty - this is okay. Any test relying on actual event log
> content would be way more difficult to do.
>
> Please note that I only tested the selection feature to work, but I see
> little value in testing any permutation of the "log" option. Would just
> make the test larger and more brittle and burn test machine time without
> any real value.
>
> Is the test guaranteed to see events of all types? In particular class
> unloading may not occur in a short run (and only anonymous classes
> would
> get unloaded unless custom loaders are involved).
>
>
> See above. Only test for the headers to appear. They also appear when
> the log is empty (e.g.:
>
> <quote>
> Deoptimization events (0 events):
> No events
>
> Classes unloaded (0 events):
> No events
>
> Classes redefined (0 events):
> No events
>
> Internal exceptions (0 events):
> No events
>
> Events (20 events):
> Event: 0,063 Executing VM operation: RevokeBias done
> Event: 0,071 Executing VM operation: HandshakeAllThreads
> Event: 0,071 Executing VM operation: HandshakeAllThreads done
> ...
> </quote>
>
> New webrev:
> delta:
> http://cr.openjdk.java.net/~stuefe/webrevs/vm.events/webrev_delta.01/webrev/
> full: http://cr.openjdk.java.net/~stuefe/webrevs/vm.events/webrev.01/webrev/
>
> I renamed "short name" to "handle" and rewrote a number of comments to
> make the code clearer.
>
> Do you know when I can expect the CSR to be approved?
>
> Thanks & Cheers, Thomas
>
>
More information about the hotspot-dev
mailing list