< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp

Print this page

        

*** 230,240 **** // First drain remaining SATB buffers. // Notice that this is not strictly necessary for mark-compact. But since // it requires a StrongRootsScope around the task, we need to claim the // threads, and performance-wise it doesn't really matter. Adds about 1ms to // full-gc. ! _cm->drain_satb_buffers(worker_id); ReferenceProcessor* rp; if (_cm->process_references()) { rp = ShenandoahHeap::heap()->ref_processor(); shenandoah_assert_rp_isalive_installed(); --- 230,245 ---- // First drain remaining SATB buffers. // Notice that this is not strictly necessary for mark-compact. But since // it requires a StrongRootsScope around the task, we need to claim the // threads, and performance-wise it doesn't really matter. Adds about 1ms to // full-gc. ! ShenandoahObjToScanQueue* q = get_queue(worker_id); ! ShenandoahSATBBufferClosure cl(q); ! SATBMarkQueueSet& satb_mq_set = ShenandoahBarrierSet::satb_mark_queue_set(); ! while (satb_mq_set.apply_closure_to_completed_buffer(&cl)); ! ShenandoahSATBThreadsClosure tc(&cl); ! Threads::threads_do(&tc); ReferenceProcessor* rp; if (_cm->process_references()) { rp = ShenandoahHeap::heap()->ref_processor(); shenandoah_assert_rp_isalive_installed();
*** 495,511 **** } } } }; - void ShenandoahConcurrentMark::drain_satb_buffers(uint worker_id) { - ShenandoahObjToScanQueue* q = get_queue(worker_id); - ShenandoahSATBBufferClosure cl(q); - ShenandoahSATBThreadsClosure tc(&cl); - Threads::threads_do(&tc); - } - #if TASKQUEUE_STATS void ShenandoahConcurrentMark::print_taskqueue_stats_hdr(outputStream* const st) { st->print_raw_cr("GC Task Stats"); st->print_raw("thr "); TaskQueueStats::print_header(1, st); st->cr(); st->print_raw("--- "); TaskQueueStats::print_header(2, st); st->cr(); --- 500,509 ----
< prev index next >