RFR: 8144874: Reimplement TraceClassResolution with UL
Ioi Lam
ioi.lam at oracle.com
Mon Dec 21 22:04:54 UTC 2015
Hi Max,
This looks good to me. I think it's OK to have the output intermixed
with that of the Java program. If the user wants a clean output they
should specify a file in the -Xlog: command-line.
Thanks
- Ioi
On 12/18/15 1:06 PM, Max Ockner wrote:
> Here is a sample output:
>
> _______________________________
> [0.698s][info ][classresolve] java.nio.CharBuffer
> java.nio.HeapCharBuffer CharBuffer.java:387
>
> [0.698s][info ][classresolve] sun.misc.Version java.lang.System
> Version.java:101
> [0.698s][info ][classresolve] java.util.Properties java.lang.String
> Properties.java:971
> [0.698s][info ][classresolve] java.util.Properties java.lang.String
> Properties.java:971
> [0.698s][info ][classresolve] sun.misc.Version java.lang.String
> Version.java:103
> [0.698s][info ][classresolve] sun.misc.Version
> java.lang.StringBuilder Version.java:106
> [0.698s][info ][classresolve] sun.misc.Version
> java.lang.StringBuilder Version.java:106
> [0.698s][info ][classresolve] sun.misc.Version
> java.lang.StringBuilder Version.java:106
> [0.698s][info ][classresolve] sun.misc.Version
> java.lang.StringBuilder Version.java:106
> [0.698s][info ][classresolve] java.lang.StringLatin1
> java.lang.String StringLatin1.java:508
> [0.698s][info ][classresolve] sun.misc.Version
> java.lang.StringBuilder Version.java:109
> [0.698s][info ][classresolve] java.lang.StringLatin1
> java.lang.String StringLatin1.java:508
> [0.698s][info ][classresolve] sun.misc.Version java.io.PrintStream
> Version.java:109
> [0.698s][info ][classresolve] java.nio.CharBuffer
> java.nio.HeapCharBuffer CharBuffer.java:387
> Java(TM) SE Runtime Environment (fastdebug build
> 9-internal+0-2015-12-17-142159.mockner.TraceClassResolution[0.698s][info
> ][classresolve] sun.misc.Version java.lang.String Version.java:111
> [0.698s][info ][classresolve] java.lang.String
> java.lang.StringLatin1 String.java:1680
> [0.698s][info ][classresolve] sun.misc.Version java.io.PrintStream
> Version.java:115
> __________________________
>
> Note that there are existing issues in TraceClassResolution Logging
> without Unified Logging. Below is the output from java
> -XX:+TraceClassResolution -version. Issues:
> - random empty lines.
> - output from "java - version" is mashed up with TraceClassResolution
> output.
> - some TraceClassResolution lines are concatenated onto the end of a
> "java - version output line". This is tied to the last issue, since
> there are newlines in the "java -version output", but they are not
> attached to the other java -version text since other output is allowed
> to be printed at the same time.
>
>
> RESOLVE java.io.FileDescriptor$1 java.io.FileDescriptor
> FileDescriptor.java:165
> java version "1.9.0-internal"RESOLVE java.io.BufferedOutputStream
> java.io.OutputStream BufferedOutputStream.java:143
> RESOLVE sun.nio.cs.StreamEncoder java.nio.ByteBuffer
> StreamEncoder.java:224
> RESOLVE java.nio.ByteBuffer java.nio.Buffer ByteBuffer.java:1131
> RESOLVE java.io.PrintStream java.lang.String PrintStream.java:528
> RESOLVE java.io.PrintStream java.io.BufferedWriter PrintStream.java:544
> RESOLVE java.io.BufferedWriter java.lang.System BufferedWriter.java:234
> RESOLVE java.nio.CharBuffer java.nio.HeapCharBuffer CharBuffer.java:387
>
> RESOLVE sun.misc.Version java.io.PrintStream Version.java:103
> RESOLVE java.nio.CharBuffer java.nio.HeapCharBuffer CharBuffer.java:387
> Java(TM) SE Runtime Environment (build
> 1.9.0-internal-mockner_2015_11_30_16_45-b00RESOLVE sun.misc.Version
> java.lang.String Version.java:105
> RESOLVE java.lang.String java.lang.StringLatin1 String.java:1680
> RESOLVE sun.misc.Version java.io.PrintStream Version.java:109
> RESOLVE java.io.PrintStream java.lang.String PrintStream.java:583
> RESOLVE java.lang.String java.lang.StringLatin1 String.java:2900
> RESOLVE java.lang.String java.lang.StringLatin1 String.java:2901
> RESOLVE java.nio.CharBuffer java.nio.HeapCharBuffer CharBuffer.java:387
> )RESOLVE java.nio.CharBuffer java.nio.HeapCharBuffer CharBuffer.java:387
>
> RESOLVE java.util.Properties java.lang.String Properties.java:971
> RESOLVE java.util.Properties java.lang.String Properties.java:971
> RESOLVE java.util.Properties java.lang.String Properties.java:971
> RESOLVE java.util.Properties java.lang.String Properties.java:971
> RESOLVE java.util.Properties java.lang.String Properties.java:971
> RESOLVE java.util.Properties java.lang.String Properties.java:971
> RESOLVE sun.misc.Version java.lang.StringBuilder Version.java:115
> RESOLVE sun.misc.Version java.lang.StringBuilder Version.java:115
> RESOLVE sun.misc.Version java.lang.StringBuilder Version.java:115
> RESOLVE sun.misc.Version java.lang.StringBuilder Version.java:115
> RESOLVE java.lang.StringLatin1 java.lang.String StringLatin1.java:507
> RESOLVE java.nio.CharBuffer java.nio.HeapCharBuffer CharBuffer.java:387
> Java HotSpot(TM) 64-Bit Server VM (build
> 1.9.0-internal-mockner_2015_11_30_16_45-b00, mixed mode)RESOLVE
> java.nio.CharBuffer java.nio.HeapCharBuffer CharBuffer.java:387
>
> RESOLVE java.lang.Thread java.lang.ThreadGroup Thread.java:757
> RESOLVE java.lang.ThreadGroup java.lang.System ThreadGroup.java:969
> RESOLVE java.lang.ThreadGroup java.lang.Object ThreadGroup.java:945
> RESOLVE java.lang.Thread java.lang.Object Thread.java:234
> RESOLVE java.lang.Shutdown java.lang.Object (super)
>
>
>
> On 12/18/2015 12:19 AM, Ioi Lam wrote:
>>
>>
>> On 12/17/15 12:00 PM, Max Ockner wrote:
>>> New webrev: http://cr.openjdk.java.net/~mockner/classresolve
>>>
>>> On 12/16/2015 6:27 PM, Ioi Lam wrote:
>>>> Hi Max,
>>>>
>>>> [1] I think you need to rebase your changes and send out a new
>>>> webrev. The latest version of argument.cpp already has these
>>>>
>>>> static AliasedFlag const aliased_jvm_logging_flags[] = {
>>>> { "-XX:+TraceMonitorInflation", "-Xlog:monitorinflation=debug" },
>>>> { "-XX:-TraceMonitorInflation", "-Xlog:monitorinflation=off" },
>>>> { NULL, NULL }
>>>> };
>>>
>>> Fixed.
>>>
>>>>
>>>> which would conflict with similar lines that you added.
>>>>
>>>> [2] In the test case ClassResolutionTest.java:
>>>>
>>>> Is there any need for adding "-Xmx64m"? If not, I think it should
>>>> be removed.
>>>
>>> Removed.
>>>
>>>>
>>>> [3] Also, could you send out a sample log that covers all of the
>>>> different logging lines that you have touched?
>>>
>>> What would you like to see? The webrev contains all of the lines
>>> that were touched, and there is only one level of logging here
>>> (-Xlog:classresolve=info)
>> I was looking for the output of something like
>>
>> java -Xlog:classresolve=info <some_test_program>
>>
>> Feel free to edit the output to remove the redundant lines and just
>> show a good sample of what the output looks like. It's much easier to
>> spot problems by looking at the output, rather than looking at the
>> code and try to synthesize the output in my head.
>>
>> I would suggest doing the same for all other UL code reviews. It will
>> help the reviewers a lot.
>>
>> Thanks
>> - Ioi
>>
>>>
>>>>
>>>> I think the "RESOLVE" in the following output is redundant and
>>>> should be removed.
>>>>
>>>> [classresolve] RESOLVE
>>>> ClassResolutionTest$ClassResolutionTestMain$Thing1Handler
>>>> ClassResolutionTest$ClassResolutionTestMain$Thing1
>>>
>>> I agree. This is now gone.
>>>
>>>>
>>>> Thanks
>>>> - Ioi
>>>>
>>>> On 12/16/15 12:44 PM, Max Ockner wrote:
>>>>> Hello all,
>>>>> Please review my code for another Unified Logging conversion.
>>>>>
>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8144874
>>>>> Webrev: http://cr.openjdk.java.net/~mockner/classresolve/
>>>>>
>>>>> Summary: "-XX:+TraceClassResolution" reimplemented using Unified
>>>>> Logging with classresolve tag and Info level. Support is
>>>>> maintained for TraceClassResolution using the alias table.
>>>>>
>>>>> Tested with: Selection Resolution tests, jtreg tests. This change
>>>>> also adds a jtreg test for the implementation of classresolve, and
>>>>> for the maintained support of TraceClassResolution.
>>>>>
>>>>> Thanks,
>>>>> Max
>>>>
>>>
>>
>
More information about the hotspot-runtime-dev
mailing list