<div dir="ltr">I've attached a webrev/patch to the ticket. Happy to offer it here for code review if that's a better route.<div><br></div><div>thanks!</div><div>-- ramki</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 25, 2015 at 12:56 PM, Srinivas Ramakrishna <span dir="ltr"><<a href="mailto:ysr1729@gmail.com" target="_blank">ysr1729@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">-bcc/hotspot-dev<div>+cc/hotspot-gc-dev</div><div><br></div><div>I have a patch for JDK-8133818 (on JDK 8): as suggested here earlier, besides splitting out Cleaners, it also reports JNI wk refs by counting them on-the-fly much like for other Reference types.</div><div><br><div>I'll attach it to the ticket once my testing completes.</div><div><br></div><div>thanks.</div><div>-- ramki</div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 19, 2015 at 3:20 PM, Kirk Pepperdine <span dir="ltr"><<a href="mailto:kirk@kodewerk.com" target="_blank">kirk@kodewerk.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Bengt,<br>
<br>
Thanks for filing. I really didn’t consider this a bug but it seems reasonable to add clarity in the log.<br>
<span><font color="#888888"><br>
— Kirk<br>
</font></span><div><div><br>
> On Aug 18, 2015, at 8:39 AM, Bengt Rutisson <<a href="mailto:bengt.rutisson@oracle.com" target="_blank">bengt.rutisson@oracle.com</a>> wrote:<br>
><br>
><br>
><br>
> On 2015-08-18 12:47, Bengt Rutisson wrote:<br>
>><br>
>> Hi Kirk,<br>
>><br>
>> On 2015-08-18 12:31, Kirk Pepperdine wrote:<br>
>>> Hi all,<br>
>>><br>
>>> I found this.. in a few logs. Before I started trolling the source trying to sort out what the second PhantomReferences count was, I pinged Charlie and asked him. He suggested it was a (concurrency??) bug witnessed only once by someone else. I’ve now seen it in several logs where the numbers reported are different. Sorry for being lazy for not trolling the code before asking but is this a bug?<br>
>><br>
>> The second ref count is for cleaner references. They used to be treated the same way as phantom references, but a recent improvement was to separate the handling of the cleaners to after all phantom references have been handled. So, the first count is the "real" phantom references and the second count is the cleaner references.<br>
>><br>
>> It's confusing logging, I agree.<br>
>><br>
>> This came in with this fix:<br>
>> <a href="http://hg.openjdk.java.net/jdk9/jdk9/hotspot/rev/2194fdf3fbd9" rel="noreferrer" target="_blank">http://hg.openjdk.java.net/jdk9/jdk9/hotspot/rev/2194fdf3fbd9</a><br>
>><br>
>> since this adds one more call to preclean_discovered_reflist(), which is the method that prints the refs count.<br>
><br>
> Thomas was nice and created a bug report for this :)<br>
><br>
> Additional number of processed references printed with -XX:+PrintReferenceGC after JDK-8047125<br>
> <a href="https://bugs.openjdk.java.net/browse/JDK-8133818" rel="noreferrer" target="_blank">https://bugs.openjdk.java.net/browse/JDK-8133818</a><br>
><br>
> Bengt<br>
><br>
>><br>
>> Thanks,<br>
>> Bengt<br>
>><br>
>>><br>
>>> Regards,<br>
>>> Kirk<br>
>>><br>
>>> Java HotSpot(TM) 64-Bit Server VM (25.51-b03) for linux-amd64 JRE (1.8.0_51-b16), built on Jun  8 2015 19:28:07 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)<br>
>>> Memory: 4k page, physical 9570132k(9340292k free), swap 4095996k(4095996k free)<br>
>>> CommandLine flags: -XX:+AggressiveOpts -XX:G1HeapRegionSize=16777216 -XX:InitialHeapSize=3221225472 -XX:InitiatingHeapOccupancyPercent=75 -XX:+ManagementServer -XX:MaxGCPauseMillis=250 -XX:MaxHeapSize=3221225472 -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+PrintAdaptiveSizePolicy -XX:+PrintGC -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintReferenceGC -XX:+PrintTenuringDistribution -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC -XX:+UseLargePages<br>
>>>  0.198: [G1Ergonomics (Heap Sizing) expand the heap, requested expansion amount: 3221225472 bytes, attempted expansion amount: 3221225472 bytes]<br>
>>> 2015-08-11T08:23:02.219+0200: 7.630: [GC pause (G1 Evacuation Pause) (young)<br>
>>> Desired survivor size 16777216 bytes, new threshold 15 (max 15)<br>
>>>  7.631: [G1Ergonomics (CSet Construction) start choosing CSet, _pending_cards: 0, predicted base time: 10.00 ms, remaining time: 240.00 ms, target pause time: 250.00 ms]<br>
>>>  7.631: [G1Ergonomics (CSet Construction) add young regions to CSet, eden: 9 regions, survivors: 0 regions, predicted young region time: 3626.58 ms]<br>
>>>  7.631: [G1Ergonomics (CSet Construction) finish choosing CSet, eden: 9 regions, survivors: 0 regions, old: 0 regions, predicted pause time: 3636.58 ms, target pause time: 250.00 ms]<br>
>>> 7.642: [SoftReference, 0 refs, 0.0006965 secs]7.643: [WeakReference, 40 refs, 0.0003039 secs]7.643: [FinalReference, 3477 refs, 0.0036191 secs]7.647: [PhantomReference, 0 refs, 0 refs, 0.0006649 secs]7.647: [JNI Weak Reference, 0.0000119 secs], 0.0173298 secs]<br>
>><br>
><br>
<br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>