Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp @ 7450:d275c3dc73e6
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
author | johnc |
---|---|
date | Thu, 03 Jan 2013 16:28:22 -0800 |
parents | 37552638d24a |
children | 96c885895d22 |
comparison
equal
deleted
inserted
replaced
7449:37f7535e5f18 | 7450:d275c3dc73e6 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
157 CMCheckpointRootsFinalClosure final_cl(_cm); | 157 CMCheckpointRootsFinalClosure final_cl(_cm); |
158 sprintf(verbose_str, "GC remark"); | 158 sprintf(verbose_str, "GC remark"); |
159 VM_CGC_Operation op(&final_cl, verbose_str, true /* needs_pll */); | 159 VM_CGC_Operation op(&final_cl, verbose_str, true /* needs_pll */); |
160 VMThread::execute(&op); | 160 VMThread::execute(&op); |
161 } | 161 } |
162 if (cm()->restart_for_overflow() && | |
163 G1TraceMarkStackOverflow) { | |
164 gclog_or_tty->print_cr("Restarting conc marking because of MS overflow " | |
165 "in remark (restart #%d).", iter); | |
166 } | |
167 | |
168 if (cm()->restart_for_overflow()) { | 162 if (cm()->restart_for_overflow()) { |
163 if (G1TraceMarkStackOverflow) { | |
164 gclog_or_tty->print_cr("Restarting conc marking because of MS overflow " | |
165 "in remark (restart #%d).", iter); | |
166 } | |
169 if (G1Log::fine()) { | 167 if (G1Log::fine()) { |
170 gclog_or_tty->date_stamp(PrintGCDateStamps); | 168 gclog_or_tty->date_stamp(PrintGCDateStamps); |
171 gclog_or_tty->stamp(PrintGCTimeStamps); | 169 gclog_or_tty->stamp(PrintGCTimeStamps); |
172 gclog_or_tty->print_cr("[GC concurrent-mark-restart-for-overflow]"); | 170 gclog_or_tty->print_cr("[GC concurrent-mark-restart-for-overflow]"); |
173 } | 171 } |