RFR (round 4), JEP-318: Epsilon GC
Aleksey Shipilev
shade at redhat.com
Tue Jun 5 15:46:27 UTC 2018
Hi Jini,
Thanks for taking a look, see comments inline.
On 06/01/2018 10:13 AM, Jini George wrote:
> ==> share/classes/sun/jvm/hotspot/oops/ObjectHeap.java
>
> 444 liveRegions.add(eh.space());
>
> We would need to add an object of type 'Address' to the liveRegions list, instead of type
> VirtualSpace. Not doing so results in exceptions of the following form from the compare() method for
> various clhsdb commands like 'jhisto':
>
> Exception in thread "main" java.lang.ClassCastException:
> jdk.hotspot.agent/sun.jvm.hotspot.memory.VirtualSpace cannot be cast to
> jdk.hotspot.agent/sun.jvm.hotspot.debugger.Address
Oh, I see! Fixed:
http://hg.openjdk.java.net/jdk/sandbox/rev/d999bdb8173c
> ==> share/classes/sun/jvm/hotspot/oops/ObjectHeap.java
>
> 445 } else {
> 446 if (Assert.ASSERTS_ENABLED) {
> 447 Assert.that(false, "Expecting GenCollectedHeap, G1CollectedHeap, " +
> 448 "or ParallelScavengeHeap, but got " +
> 449 heap.getClass().getName());
> 450 }
> 451 }
>
> * Please add EpsilonGC also to the assertion statement.
I prefer to change it to non-GC-specific message as Per suggested:
http://hg.openjdk.java.net/jdk/sandbox/rev/5cd17d3d3f83
> ==> share/classes/sun/jvm/hotspot/tools/HeapSummary.java
>
> The run() method would need to handle Epsilon GC here to avoid the Unknown CollectedHeap type error
> with jhsdb jmap --heap.
Right, implemented in both places, run() and detectGCAlgo():
http://hg.openjdk.java.net/jdk/sandbox/rev/b20a56352d78
> ==> share/classes/sun/jvm/hotspot/HSDB.java
>
> In showThreadStackMemory(), we have:
>
> 1101 }
> 1102 } else if (collHeap instanceof ParallelScavengeHeap) {
> 1103 ParallelScavengeHeap heap = (ParallelScavengeHeap) collHeap;
> 1104 if (heap.youngGen().isIn(handle)) {
> 1105 anno = "PSYoungGen ";
> 1106 bad = false;
> 1107 } else if (heap.oldGen().isIn(handle)) {
> 1108 anno = "PSOldGen ";
> 1109 bad = false;
> 1110 }
> 1111 } else {
> 1112 // Optimistically assume the oop isn't bad
> 1113 anno = "[Unknown generation] ";
> 1114 bad = false;
> 1115 }
> 1116
>
> We would need to add the case of collHeap being an instanceof EpsilonHeap too. It would display
> "Unknown generation" while viewing the stack memory for the Java threads otherwise.
Right, fixed:
http://hg.openjdk.java.net/jdk/sandbox/rev/f26c4a196a15
> ==> It would be great if test/hotspot/jtreg/serviceability/sa/TestUniverse.java is enhanced to add
> the minimalistic test for EpsilonGC.
Right:
http://hg.openjdk.java.net/jdk/sandbox/rev/c559de946c7d
This still passes gc/epsilon and serviceability/sa tests.
-Aleksey
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20180605/7fa4cabc/signature-0001.asc>
More information about the serviceability-dev
mailing list