[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-hotspot-runtime-dev
Subject:    Re: RFR (M): [JVMCI] VM warning: Performance bug: SystemDictionary lookup_count=21831450 lookup_leng
From:       Gerard Ziemski <gerard.ziemski () oracle ! com>
Date:       2016-07-13 16:52:41
Message-ID: 38ED7693-203A-4794-9ABE-A380F9869C90 () oracle ! com
[Download RAW message or body]

Thank you for the review.

I made the changes and will be posting 2nd webrev shortly.


cheers

> On Jul 12, 2016, at 8:29 AM, Ioi Lam <ioi.lam@oracle.com> wrote:
> 
> Hi Gerard,
> 
> The changes look good. A small nit here:
> 
> 826       tty->print("%4d: hits %5.2f%c",   ...., '%');
> 
> This should be changed to
> 
> 826       tty->print("%4d: hits %5.2f%%", ...);
> 
> Also in hashtable.hpp:
> 
> 129   long _hits;
> 
> Is there any reason to not use 'int'? _lookup_count is an 'int'.
> 
> Also, the terminology used by the VM is -- we have 1009 'buckets', and each bucket \
> contains zero or more 'entries' in a link list. 
> So the help message should be something like:
> 
> 1st number: the bucket index
> 2nd number: the entry's index within this bucket
> 3rd number: the hit percentage of this entry
> 4th number: the hash index of this entry
> 
> Thanks
> - Ioi
> 
> 
> 
> On 7/11/16 10:25 AM, Gerard Ziemski wrote:
> > hi all,
> > 
> > Please review this rather simple fix, which will print more info about \
> > SystemDictionary, so that we can hopefully draw some conclusion the next time we \
> > hit the "VM warning: Performance bug: SystemDictionary…" warning. 
> > Currently all we print is just the warning's 1st line below, but with this fix we \
> > show the following: 
> > -----------------------------
> > Java HotSpot(TM) 64-Bit Server VM warning: Performance bug: SystemDictionary \
> > lookup_count=6752 lookup_length=1010 average=0.149585 load=0.479683 Java system \
> > dictionary (table_size=1009, classes=484) ^ indicates that initiating loader is \
> > different from defining loader 1st number shows bucket index
> > 2nd number shows chain index within a bucket
> > 3rd number shows hit percentage of the bucket
> > 4th number shows hash index
> > 0:
> > 1:
> > 2:
> > 3:   0:  0.20%: 1763306205: jdk.internal.module.ModuleHashes, loader NULL \
> >                 class_loader
> > 3:   1:  0.20%: 1886526294: sun.nio.fs.UnixFileStoreAttributes, loader NULL \
> >                 class_loader
> > 3:   2:  0.20%:  220125461: java.lang.reflect.ReflectAccess, loader NULL \
> >                 class_loader
> > 4:   0:  0.08%:  915402137: jdk.internal.loader.BuiltinClassLoader$LoadedModule, \
> > loader NULL class_loader 5:
> > .
> > .
> > .
> > 1003:
> > 1004:   0:  0.08%:  688417488: jdk.internal.reflect.ConstructorAccessor, loader \
> > NULL class_loader 1005:
> > 1006:
> > 1007:   0:  0.08%:  400327811: java.lang.InterruptedException, loader NULL \
> >                 class_loader
> > 1008:   0:  0.11%: 1113735208: java.util.concurrent.atomic.AtomicBoolean, loader \
> > NULL class_loader 
> > Top 16 buckets:
> > 546: hits  2.76%
> > 183: hits  0.87%
> > 969: hits  2.37%s
> > 281: hits  0.95%
> > 957: hits  1.73%
> > 571: hits 16.67%
> > 221: hits  0.98%
> > 505: hits  0.84%
> > 727: hits  1.28%
> > 414: hits  1.73%
> > 569: hits  4.89%
> > 245: hits  0.89%
> > 253: hits  1.34%
> > 135: hits  0.95%
> > 457: hits  0.87%
> > 348: hits  1.23%
> > 
> > Protection domain cache table (table_size=2017, classes=1)
> > entry 0x00007fe525019c20 value 0x00000006cfe147a8 strongly_reachable 0 next \
> >                 0x0000000000000000
> > -----------------------------
> > 
> > We now show the bucket index, the chain index (item index within the bucket), the \
> > hit ratio (successful lookup / all successful lookups) and hash code for \
> > verification. 
> > In the end, I believe that the way to actually fix this issue will be to increase \
> > the SystemDictionary size, but the warning will be now accompanied by more \
> > pertinent details, which should make it more useful on its own. 
> > open webrev:	http://cr.openjdk.java.net/~gziemski/8138760_rev1
> > bug id: 	https://bugs.openjdk.java.net/browse/JDK-8138760
> > 
> > Passes JPRT hotspot.
> > 
> > 
> > cheers
> > 
> 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic