////////////////////////////////////////////////////////// // Methods in class VM_CMS_Initial_Mark ////////////////////////////////////////////////////////// void VM_CMS_Initial_Mark::doit() { if (lost_race()) { // Nothing to do. return; } #ifndef USDT2 HS_DTRACE_PROBE(hs_private, cms__initmark__begin); #else /* USDT2 */ HS_PRIVATE_CMS_INITMARK_BEGIN(); #endif /* USDT2 */ _collector->_gc_timer_cm->register_gc_pause_start("Initial Mark"); GenCollectedHeap* gch = GenCollectedHeap::heap(); GCCauseSetter gccs(gch, GCCause::_cms_initial_mark); VM_CMS_Operation::verify_before_gc(); IsGCActiveMark x; // stop-world GC active _collector->do_CMS_operation(CMSCollector::CMS_op_checkpointRootsInitial, gch->gc_cause()); VM_CMS_Operation::verify_after_gc(); _collector->_gc_timer_cm->register_gc_pause_end(); #ifndef USDT2 HS_DTRACE_PROBE(hs_private, cms__initmark__end); #else /* USDT2 */ HS_PRIVATE_CMS_INITMARK_END(); #endif /* USDT2 */ }
////////////////////////////////////////////////////////// // Methods in class VM_CMS_Initial_Mark ////////////////////////////////////////////////////////// void VM_CMS_Initial_Mark::doit() { if (lost_race()) { // Nothing to do. return; } HS_PRIVATE_CMS_INITMARK_BEGIN(); GCIdMark gc_id_mark(_gc_id); _collector->_gc_timer_cm->register_gc_pause_start("Initial Mark"); GenCollectedHeap* gch = GenCollectedHeap::heap(); GCCauseSetter gccs(gch, GCCause::_cms_initial_mark); VM_CMS_Operation::verify_before_gc(); IsGCActiveMark x; // stop-world GC active _collector->do_CMS_operation(CMSCollector::CMS_op_checkpointRootsInitial, gch->gc_cause()); VM_CMS_Operation::verify_after_gc(); _collector->_gc_timer_cm->register_gc_pause_end(); HS_PRIVATE_CMS_INITMARK_END(); }