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

Jini George jini.george at oracle.com
Thu Mar 15 04:21:13 UTC 2018


Thank you very much, Yumin. The modified webrev (after incorporating your comment) is at:

http://cr.openjdk.java.net/~jgeorge/8175312/webrev.03/index.html

Thanks, Jini.

On 3/13/2018 6:24 AM, yumin qi wrote:

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_ _<mailto: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/ <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 <https://bugs.openjdk.java.net/browse/JDK-8175312> Webrev: http://cr.openjdk.java.net/~jgeorge/8175312/webrev.00/index.html <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/ <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