提交 f8189383 编写于 作者: I iveresov

6735416: G1: runThese javasoft.sqe.tests.lang.thrd011.thrd01101.thrd01101 fails

6622418: G1: assert(false,"Non-balanced monitor enter/exit!") fails
Summary: The mark-sweep compact (which we use for full gc) wrapper did not save the mark words for biased locked objects.  The fix is to trivially call the appropriate methods.
Reviewed-by: tonyp, ysr
上级 112b9936
...@@ -50,6 +50,10 @@ void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp, ...@@ -50,6 +50,10 @@ void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp,
allocate_stacks(); allocate_stacks();
// We should save the marks of the currently locked biased monitors.
// The marking doesn't preserve the marks of biased objects.
BiasedLocking::preserve_marks();
mark_sweep_phase1(marked_for_unloading, clear_all_softrefs); mark_sweep_phase1(marked_for_unloading, clear_all_softrefs);
if (G1VerifyConcMark) { if (G1VerifyConcMark) {
...@@ -67,7 +71,7 @@ void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp, ...@@ -67,7 +71,7 @@ void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp,
mark_sweep_phase4(); mark_sweep_phase4();
GenMarkSweep::restore_marks(); GenMarkSweep::restore_marks();
BiasedLocking::restore_marks();
GenMarkSweep::deallocate_stacks(); GenMarkSweep::deallocate_stacks();
// We must invalidate the perm-gen rs, so that it gets rebuilt. // We must invalidate the perm-gen rs, so that it gets rebuilt.
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
// CA 95054 USA or visit www.sun.com if you need additional information or // CA 95054 USA or visit www.sun.com if you need additional information or
// have any questions. // have any questions.
// //
// //
// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! // NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps!
...@@ -100,7 +100,7 @@ concurrentZFThread.cpp space.inline.hpp ...@@ -100,7 +100,7 @@ concurrentZFThread.cpp space.inline.hpp
concurrentZFThread.hpp concurrentGCThread.hpp concurrentZFThread.hpp concurrentGCThread.hpp
concurrentZFThread.hpp coTracker.hpp concurrentZFThread.hpp coTracker.hpp
dirtyCardQueue.cpp atomic.hpp dirtyCardQueue.cpp atomic.hpp
dirtyCardQueue.cpp dirtyCardQueue.hpp dirtyCardQueue.cpp dirtyCardQueue.hpp
dirtyCardQueue.cpp heapRegionRemSet.hpp dirtyCardQueue.cpp heapRegionRemSet.hpp
...@@ -183,6 +183,7 @@ globals.cpp g1_globals.hpp ...@@ -183,6 +183,7 @@ globals.cpp g1_globals.hpp
top.hpp g1_globals.hpp top.hpp g1_globals.hpp
g1MarkSweep.cpp aprofiler.hpp g1MarkSweep.cpp aprofiler.hpp
g1MarkSweep.cpp biasedLocking.hpp
g1MarkSweep.cpp codeCache.hpp g1MarkSweep.cpp codeCache.hpp
g1MarkSweep.cpp events.hpp g1MarkSweep.cpp events.hpp
g1MarkSweep.cpp fprofiler.hpp g1MarkSweep.cpp fprofiler.hpp
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册