src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp

Print this page
rev 3900 : 8004816: G1: Kitchensink failures after marking stack changes
Summary: Reset the marking state, including the mark stack overflow flag, in the event of a marking stack overflow during serial reference processing.
Reviewed-by: jmasa

@@ -157,17 +157,15 @@
           CMCheckpointRootsFinalClosure final_cl(_cm);
           sprintf(verbose_str, "GC remark");
           VM_CGC_Operation op(&final_cl, verbose_str, true /* needs_pll */);
           VMThread::execute(&op);
         }
-        if (cm()->restart_for_overflow() &&
-            G1TraceMarkStackOverflow) {
+        if (cm()->restart_for_overflow()) {
+          if (G1TraceMarkStackOverflow) {
           gclog_or_tty->print_cr("Restarting conc marking because of MS overflow "
                                  "in remark (restart #%d).", iter);
         }
-
-        if (cm()->restart_for_overflow()) {
           if (G1Log::fine()) {
             gclog_or_tty->date_stamp(PrintGCDateStamps);
             gclog_or_tty->stamp(PrintGCTimeStamps);
             gclog_or_tty->print_cr("[GC concurrent-mark-restart-for-overflow]");
           }