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

Jini George jini.george at oracle.com
Fri Mar 9 09:29:02 UTC 2018


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.
>>


More information about the serviceability-dev mailing list