<Adding serviceability-dev for the SA changes>.

Thank you very much, Aleksey, for making the SA changes. Some comments on those.

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

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

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

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

==> It would be great if test/hotspot/jtreg/serviceability/sa/TestUniverse.java is enhanced to add the minimalistic test for EpsilonGC.

Thank you,
Jini.

On 5/31/2018 11:42 PM, Aleksey Shipilev wrote:
Hi,

This is fourth (and hopefully final) round of code review for Epsilon GC 
changes. It includes the
fixes done as the result of third round of reviews, all of them inside 
gc/epsilon or epsilon tests.

Webrev:
   http://cr.openjdk.java.net/~shade/epsilon/webrev.08/

If we are good, I am going to push this with the following changeset metadata:

   8204180: Implementation: JEP 318: Epsilon A No-Op Garbage Collector
   Summary: Introduce Epsilon GC
   Reviewed-by: rkennke, ihse, pliden, eosterlund, lmesnik

Builds:
     server X {x86_64, x86_32, aarch64, arm32, ppc64le, s390x}
    minimal X {x86, x86_64}
       zero X {x86_64}

Testing: gc/epsilon on x86_64

Thanks,
-Aleksey

Reply via email to