VM warning: Performance bug

Karen Kinnear karen.kinnear at oracle.com
Thu Dec 15 14:32:22 PST 2011


Kelly,

Thank you - that should help me reproduce this.

I agree that  PrintWarnings should be off by default - but it looks like it is on by default. I don't  know the
history of that decision.

For this particular warning, it only shows up with ASSERT, i.e. fastdebug mode.

The fix I am working on will recover instead of printing this warning.

thanks,
Karen

On Dec 15, 2011, at 5:15 PM, Kelly O'Hair wrote:

> Maurizio ran into it with a jprt boot cycle job like so:
>   jprt submit -boot jdk7 -control 'corba hotspot jaxp jaxws jdk langtools' -et '.*windows_i586.*' -buildenv SKIP_BOOT_CYCLE=false -buildenv SKIP_MSIVAL2=true -buildenv SKIP_COMPARE_IMAGES=true -buildsonly -noqa
> 
>     http://prt-web.us.oracle.com//archive/2011/12/2011-12-14-182027.maurizio.tl
> 
> Probably adding -ot 'linux_x64_2.6-fastdebug' would be good, it only happens with linux 64bit fastdebug.
> 
> The -boot jdk7  effectively uses the latest jdk7 being worked on (7u2 or 7u4) instead of the first jdk7 (jdk7fcs).
> 
> It appears as if it has caused the javac.jar file to fail. Like maybe spitting out messages to stdout/stderr isn't a good idea?
> 
>>>>>> /tmp/jprt/P1/182027.maurizio/source/build/linux-amd64/bootjdk/../linux-amd64-fastdebug/j2sdk-image/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx512m -Xms512m -XX:PermSize=32m -XX:MaxPermSize=160m -Xbootclasspath/p:/tmp/jprt/P1/182027.maurizio/source/build/linux-amd64-fastdebug/langtools/dist/bootstrap/lib/javac.jar -jar /tmp/jprt/P1/182027.maurizio/source/build/linux-amd64-fastdebug/langtools/dist/bootstrap/lib/javac.jar -g -Xlint:all -Xlint:-path -source 7 -target 7 -encoding ascii -Xbootclasspath:/tmp/jprt/P1/182027.maurizio/source/build/linux-amd64/../linux-amd64-fastdebug/classes -sourcepath /tmp/jprt/P1/182027.maurizio/source/build/linux-amd64/../linux-amd64-fastdebug/gensrc:../../../src/solaris/classes:../../../src/share/classes -d /tmp/jprt/P1/182027.maurizio/source/build/linux-amd64/../linux-amd64-fastdebug/classes @/tmp/jprt/P1/182027.maurizio/source/build/linux-amd64/../linux-amd64-fastdebug/tmp/java
>>>>>> /java.lang
>>>>>> /java/.cla
>>>>>> sses.list.filtered
>>>>>> /tmp/jprt/P1/182027.maurizio/source/build/linux-amd64/../linux-amd64-fastdebug/gensrc/java/nio/charset/CharsetEncoder.java:973: error: class, interface, or enum expected
>>>>>> OpenJDK 64-Bit Server VM warning: Performance bug: SystemDictionary lookup_count=22915 lookup_length=24212 average=1.056600 load=0.528246
>>>>>> ^
>>>>>> 1 error
>>>>>> # javac finished
> 
> 
> 
> -kto
> 
> 
> On Dec 15, 2011, at 1:47 PM, Tom Rodriguez wrote:
> 
>> 
>> On Dec 15, 2011, at 1:10 PM, Tom Rodriguez wrote:
>> 
>>> 
>>> On Dec 15, 2011, at 1:05 PM, Karen Kinnear wrote:
>>> 
>>>> Actually I am working on a fix for it - see 7105270.
>>> 
>>> Great.  Will this be something that other subclasses of BasicHashtable can take advantage of?  The interned string table has similar issues that we've papered over.  Having more general support for rehashing would help.
>>> 
>>> tom
>>> 
>>>> 
>>>> It is "benign" in the sense of correct operation. However, we have an internal customer who has
>>>> seen measurable performance loss when they get this warning. So I am working on resizing the
>>>> system dictionary if the lookups take "too long".
>> 
>> Also I didn't mean to imply that it was always benign.  The message itself doesn't provide enough information to conclude anything since lots of different patterns could give you lookup statistics like that.  It would need to report some structural statistics around occupancy and chain length to make sense of those numbers.  Those particular numbers seem pretty benign though.
>> 
>> tom
>> 
>>>> 
>>>> If you have a way to duplicate it that doesn't require a database - that would make it easier for
>>>> me to debug.
>>>> 
>>>> thanks,
>>>> Karen
>>>> 
>>>> On Dec 15, 2011, at 3:38 PM, Tom Rodriguez wrote:
>>>> 
>>>>> 
>>>>> On Dec 15, 2011, at 12:02 PM, Kelly O'Hair wrote:
>>>>> 
>>>>>> 
>>>>>> Anyone seen this message before:
>>>>>> 
>>>>>> OpenJDK 64-Bit Server VM warning: Performance bug: SystemDictionary lookup_count=22915 lookup_length=24212 average=1.056600 load=0.528246
>>>>>> 
>>>>>> Maybe from jdk7u2?
>>>>> 
>>>>> I think it's fairly benign.  It just means that the hashtable for the SystemDictionary isn't performing quite as well as we'd like.  It's a little hard to evaluate without knowing how many entries are in the table.  I would assume that it just has a lot of classes loaded.  It's a somewhat useless message but it's debug only so I guess I wouldn't worry about it.
>>>>> 
>>>>> tom
>>>>> 
>>>>>> 
>>>>>> -kto
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-dev/attachments/20111215/85f1e083/attachment.html 


More information about the hotspot-dev mailing list