8052170: G1 asserts at collection exit with -XX:-G1DeferredRSUpdate
Summary: Do not try to verify timing measures for the redirty logged cards phase when it is not executed.
Reviewed-by: brutisso, jmasa
--- a/hotspot/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp Thu Aug 07 09:35:08 2014 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp Thu Aug 07 22:28:16 2014 +0200
@@ -237,8 +237,10 @@
_last_gc_worker_times_ms.verify();
_last_gc_worker_other_times_ms.verify();
- _last_redirty_logged_cards_time_ms.verify();
- _last_redirty_logged_cards_processed_cards.verify();
+ if (G1DeferredRSUpdate) {
+ _last_redirty_logged_cards_time_ms.verify();
+ _last_redirty_logged_cards_processed_cards.verify();
+ }
}
void G1GCPhaseTimes::note_string_dedup_fixup_start() {
--- a/hotspot/test/gc/g1/TestDeferredRSUpdate.java Thu Aug 07 09:35:08 2014 +0200
+++ b/hotspot/test/gc/g1/TestDeferredRSUpdate.java Thu Aug 07 22:28:16 2014 +0200
@@ -23,7 +23,7 @@
/*
* @test TestDeferredRSUpdate
- * @bug 8040977
+ * @bug 8040977 8052170
* @summary Ensure that running with -XX:-G1DeferredRSUpdate does not crash the VM
* @key gc
* @library /testlibrary
@@ -38,6 +38,7 @@
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
"-Xmx10M",
+ "-XX:+PrintGCDetails",
// G1DeferredRSUpdate is a develop option, but we cannot limit execution of this test to only debug VMs.
"-XX:+IgnoreUnrecognizedVMOptions",
"-XX:-G1DeferredRSUpdate",