< prev index next >

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

8196341: Add JFR events for parallel phases of G1

*** 38,47 **** --- 38,48 ---- #include "gc/g1/heapRegion.inline.hpp" #include "gc/g1/heapRegionManager.inline.hpp" #include "gc/g1/heapRegionRemSet.hpp" #include "gc/shared/gcTraceTime.inline.hpp" #include "gc/shared/suspendibleThreadSet.hpp" + #include "jfr/jfrEvents.hpp" #include "memory/iterator.hpp" #include "memory/resourceArea.hpp" #include "oops/access.inline.hpp" #include "oops/oop.inline.hpp" #include "runtime/os.hpp" ***************
*** 337,346 **** --- 338,348 ---- _scan_objs_on_card_cl->trim_queue_partially(); _cards_scanned++; } void G1ScanRSForRegionClosure::scan_rem_set_roots(HeapRegion* r) { + EventGCPhaseParallel event; uint const region_idx = r->hrm_index(); if (_scan_state->claim_iter(region_idx)) { // If we ever free the collection set concurrently, we should also // clear the card table concurrently therefore we won't need to ***************
*** 390,403 **** --- 392,408 ---- MemRegion const mr(card_start, MIN2(card_start + BOTConstants::N_words, top)); scan_card(mr, region_idx_for_card); } + event.commit(GCId::current(), _worker_i, G1GCPhaseTimes::phase_name(G1GCPhaseTimes::ScanRS)); } void G1ScanRSForRegionClosure::scan_strong_code_roots(HeapRegion* r) { + EventGCPhaseParallel event; r->strong_code_roots_do(_pss->closures()->weak_codeblobs()); + event.commit(GCId::current(), _worker_i, G1GCPhaseTimes::phase_name(G1GCPhaseTimes::CodeRoots)); } bool G1ScanRSForRegionClosure::do_heap_region(HeapRegion* r) { assert(r->in_collection_set(), "Should only be called on elements of the collection set but region %u is not.",
< prev index next >