RFR: JDK-8175312: SA: clhsdb: Provide an improved heap summary for 'universe' for G1GC

yumin qi yumin.qi at gmail.com
Tue Mar 13 00:54:44 UTC 2018


Jini,

  Looks good. One minor comment:

+   public void printG1HeapSummary(G1CollectedHeap heap) {+
G1CollectedHeap g1h = (G1CollectedHeap) heap;


 'heap' has been cast to 'G1CollectedHeap' at call site, so seems no need
to convert here again.

Thanks
Yumin

On Mon, Mar 12, 2018 at 8:52 AM, Jini George <jini.george at oracle.com> wrote:

> Thank you very much, Stefan. Could one more reviewer please take a look at
> it ?
>
> - Jini.
>
>
> On 3/12/2018 8:52 PM, Stefan Johansson wrote:
>
>> Hi Jini,
>>
>> This looks good. I'm totally fine with skipping metaspace if that isn't
>> displayed for the other GCs.
>>
>> Cheers,
>> Stefan
>>
>> On 2018-03-09 10:29, Jini George wrote:
>>
>>> Here is the revised webrev:
>>>
>>> http://cr.openjdk.java.net/~jgeorge/8175312/webrev.02/
>>>
>>> I have made modifications to have the 'universe' command display details
>>> like:
>>>
>>> hsdb> universe
>>> Heap Parameters:
>>> garbage-first heap [0x0000000725200000, 0x00000007c0000000] region size
>>> 1024K
>>> G1 Heap:
>>>    regions  = 2478
>>>    capacity = 2598371328 (2478.0MB)
>>>    used     = 5242880 (5.0MB)
>>>    free     = 2593128448 (2473.0MB)
>>>    0.20177562550443906% used
>>> G1 Young Generation:
>>> Eden Space:
>>>    regions  = 5
>>>    capacity = 8388608 (8.0MB)
>>>    used     = 5242880 (5.0MB)
>>>    free     = 3145728 (3.0MB)
>>>    62.5% used
>>> Survivor Space:
>>>    regions  = 0
>>>    capacity = 0 (0.0MB)
>>>    used     = 0 (0.0MB)
>>>    free     = 0 (0.0MB)
>>>    0.0% used
>>> G1 Old Generation:
>>>    regions  = 0
>>>    capacity = 155189248 (148.0MB)
>>>    used     = 0 (0.0MB)
>>>    free     = 155189248 (148.0MB)
>>>    0.0% used
>>>
>>>
>>> I did not add the metaspace details since that did not seem to be in
>>> line with the 'universe' output for other GCs. I have added a new command
>>> "g1regiondetails" to display the region details, and have modified the
>>> tests accordingly.
>>>
>>> hsdb> g1regiondetails
>>> Region Details:
>>> Region: 0x0000000725200000,0x0000000725200000,0x0000000725300000:Free
>>> Region: 0x0000000725300000,0x0000000725300000,0x0000000725400000:Free
>>> Region: 0x0000000725400000,0x0000000725400000,0x0000000725500000:Free
>>> Region: 0x0000000725500000,0x0000000725500000,0x0000000725600000:Free
>>> Region: 0x0000000725600000,0x0000000725600000,0x0000000725700000:Free
>>> Region: 0x0000000725700000,0x0000000725700000,0x0000000725800000:Free
>>> ...
>>>
>>> Thanks,
>>> Jini.
>>>
>>>
>>> On 2/28/2018 12:56 PM, Jini George wrote:
>>>
>>>> Thank you very much, Stefan. My answers inline.
>>>>
>>>> On 2/27/2018 3:30 PM, Stefan Johansson wrote:
>>>>
>>>>> Hi Jini,
>>>>>
>>>>
>>>> JIRA ID:https://bugs.openjdk.java.net/browse/JDK-8175312
>>>>>>> Webrev: http://cr.openjdk.java.net/~jgeorge/8175312/webrev.00/index.
>>>>>>> html
>>>>>>>
>>>>>>> It looks like a file is missing, did you forget to add it to the
>>>>> changeset?
>>>>>
>>>>
>>>> Indeed, I had missed that! I added the missing file in the following
>>>> webrev:
>>>>
>>>> http://cr.openjdk.java.net/~jgeorge/8175312/webrev.01/
>>>>
>>>> ---
>>>>> open/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/g1/G1CollectedHeap.java:36:
>>>>> error: cannot find symbol
>>>>> import sun.jvm.hotspot.gc.shared.PrintRegionClosure;
>>>>> ---
>>>>>
>>>>> Otherwise the change looks good, but I would like to see the output
>>>>> live. For a big heap this will print a lot of data, just wondering if the
>>>>> universe command is the correct choice for this kind of output. I like
>>>>> having the possibility to print all regions, so I want the change but maybe
>>>>> it should be a different command and 'universe' just prints a little more
>>>>> than before. Something like our logging heap-summary at shutdown:
>>>>> garbage-first heap   total 16384K, used 3072K [0x00000000ff000000,
>>>>> 0x0000000100000000)
>>>>>   region size 1024K, 4 young (4096K), 0 survivors (0K)
>>>>> Metaspace       used 6731K, capacity 6825K, committed 7040K, reserved
>>>>> 1056768K
>>>>>   class space    used 559K, capacity 594K, committed 640K, reserved
>>>>> 1048576K
>>>>>
>>>>
>>>> Ok, will add this, and could probably have the region details displayed
>>>> under a new command called "g1regiondetails", or some such, and send out a
>>>> new webrev.
>>>>
>>>> Thanks,
>>>> Jini.
>>>>
>>>>
>>>>> Thanks,
>>>>> Stefan
>>>>>
>>>>>> Modifications have been made to display the regions like:
>>>>>>>
>>>>>>> ...
>>>>>>> Region: 0x00000005c5400000,0x00000005c5600000,0x00000005c5600000:Old
>>>>>>> Region: 0x00000005c5600000,0x00000005c5800000,0x00000005c5800000:Old
>>>>>>> Region: 0x00000005c5800000,0x00000005c5a00000,0x00000005c5a00000:Old
>>>>>>> Region: 0x00000005c5a00000,0x00000005c5c00000,0x00000005c5c00000:Old
>>>>>>> Region: 0x00000005c5c00000,0x00000005c5c00000,0x00000005c5e00000:
>>>>>>> Free
>>>>>>> Region: 0x00000005c5e00000,0x00000005c5e00000,0x00000005c6000000:
>>>>>>> Free
>>>>>>> Region: 0x00000005c6000000,0x00000005c6200000,0x00000005c6200000:Old
>>>>>>> ...
>>>>>>>
>>>>>>> The jtreg test at this point does not include any testing for the
>>>>>>> display of archived or pinned regions. The testing for this will be added
>>>>>>> once JDK-8174994 is resolved.
>>>>>>>
>>>>>>> The SA tests pass with jprt and Mach5.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Jini.
>>>>>>>
>>>>>>
>>>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20180312/ddfc2ac0/attachment-0001.html>


More information about the serviceability-dev mailing list