< prev index next >

src/hotspot/share/gc/g1/satbMarkQueue.cpp

Print this page
rev 47819 : imported patch 10.07.open.rebase_20171110.dcubed

*** 30,39 **** --- 30,40 ---- #include "memory/allocation.inline.hpp" #include "oops/oop.inline.hpp" #include "runtime/mutexLocker.hpp" #include "runtime/safepoint.hpp" #include "runtime/thread.hpp" + #include "runtime/threadSMR.hpp" #include "runtime/vmThread.hpp" SATBMarkQueue::SATBMarkQueue(SATBMarkQueueSet* qset, bool permanent) : // SATB queues are only active during marking cycles. We create // them with their active field set to false. If a thread is
*** 212,222 **** #ifdef ASSERT void SATBMarkQueueSet::dump_active_states(bool expected_active) { log_error(gc, verify)("Expected SATB active state: %s", expected_active ? "ACTIVE" : "INACTIVE"); log_error(gc, verify)("Actual SATB active states:"); log_error(gc, verify)(" Queue set: %s", is_active() ? "ACTIVE" : "INACTIVE"); ! for (JavaThread* t = Threads::first(); t; t = t->next()) { log_error(gc, verify)(" Thread \"%s\" queue: %s", t->name(), t->satb_mark_queue().is_active() ? "ACTIVE" : "INACTIVE"); } log_error(gc, verify)(" Shared queue: %s", shared_satb_queue()->is_active() ? "ACTIVE" : "INACTIVE"); } --- 213,223 ---- #ifdef ASSERT void SATBMarkQueueSet::dump_active_states(bool expected_active) { log_error(gc, verify)("Expected SATB active state: %s", expected_active ? "ACTIVE" : "INACTIVE"); log_error(gc, verify)("Actual SATB active states:"); log_error(gc, verify)(" Queue set: %s", is_active() ? "ACTIVE" : "INACTIVE"); ! for (JavaThreadIteratorWithHandle jtiwh; JavaThread *t = jtiwh.next(); ) { log_error(gc, verify)(" Thread \"%s\" queue: %s", t->name(), t->satb_mark_queue().is_active() ? "ACTIVE" : "INACTIVE"); } log_error(gc, verify)(" Shared queue: %s", shared_satb_queue()->is_active() ? "ACTIVE" : "INACTIVE"); }
*** 226,236 **** dump_active_states(expected_active); guarantee(false, "SATB queue set has an unexpected active state"); } // Verify thread queue states ! for (JavaThread* t = Threads::first(); t; t = t->next()) { if (t->satb_mark_queue().is_active() != expected_active) { dump_active_states(expected_active); guarantee(false, "Thread SATB queue has an unexpected active state"); } } --- 227,237 ---- dump_active_states(expected_active); guarantee(false, "SATB queue set has an unexpected active state"); } // Verify thread queue states ! for (JavaThreadIteratorWithHandle jtiwh; JavaThread *t = jtiwh.next(); ) { if (t->satb_mark_queue().is_active() != expected_active) { dump_active_states(expected_active); guarantee(false, "Thread SATB queue has an unexpected active state"); } }
*** 247,264 **** assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint."); #ifdef ASSERT verify_active_states(expected_active); #endif // ASSERT _all_active = active; ! for (JavaThread* t = Threads::first(); t; t = t->next()) { t->satb_mark_queue().set_active(active); } shared_satb_queue()->set_active(active); } void SATBMarkQueueSet::filter_thread_buffers() { ! for(JavaThread* t = Threads::first(); t; t = t->next()) { t->satb_mark_queue().filter(); } shared_satb_queue()->filter(); } --- 248,265 ---- assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint."); #ifdef ASSERT verify_active_states(expected_active); #endif // ASSERT _all_active = active; ! for (JavaThreadIteratorWithHandle jtiwh; JavaThread *t = jtiwh.next(); ) { t->satb_mark_queue().set_active(active); } shared_satb_queue()->set_active(active); } void SATBMarkQueueSet::filter_thread_buffers() { ! for (JavaThreadIteratorWithHandle jtiwh; JavaThread *t = jtiwh.next(); ) { t->satb_mark_queue().filter(); } shared_satb_queue()->filter(); }
*** 307,317 **** print_satb_buffer(buffer, buf, nd->index(), buffer_size()); nd = nd->next(); i += 1; } ! for (JavaThread* t = Threads::first(); t; t = t->next()) { jio_snprintf(buffer, SATB_PRINTER_BUFFER_SIZE, "Thread: %s", t->name()); t->satb_mark_queue().print(buffer); } shared_satb_queue()->print("Shared"); --- 308,318 ---- print_satb_buffer(buffer, buf, nd->index(), buffer_size()); nd = nd->next(); i += 1; } ! for (JavaThreadIteratorWithHandle jtiwh; JavaThread *t = jtiwh.next(); ) { jio_snprintf(buffer, SATB_PRINTER_BUFFER_SIZE, "Thread: %s", t->name()); t->satb_mark_queue().print(buffer); } shared_satb_queue()->print("Shared");
*** 339,348 **** buffers_to_delete = nd->next(); deallocate_buffer(nd); } assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint."); // So we can safely manipulate these queues. ! for (JavaThread* t = Threads::first(); t; t = t->next()) { t->satb_mark_queue().reset(); } shared_satb_queue()->reset(); } --- 340,349 ---- buffers_to_delete = nd->next(); deallocate_buffer(nd); } assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint."); // So we can safely manipulate these queues. ! for (JavaThreadIteratorWithHandle jtiwh; JavaThread *t = jtiwh.next(); ) { t->satb_mark_queue().reset(); } shared_satb_queue()->reset(); }
< prev index next >