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