527 ~G1ConcurrentMark();
528
529 G1ConcurrentMarkThread* cm_thread() { return _cm_thread; }
530
531 const G1CMBitMap* const prev_mark_bitmap() const { return _prev_mark_bitmap; }
532 G1CMBitMap* next_mark_bitmap() const { return _next_mark_bitmap; }
533
534 // Calculates the number of concurrent GC threads to be used in the marking phase.
535 uint calc_active_marking_workers();
536
537 // Moves all per-task cached data into global state.
538 void flush_all_task_caches();
539 // Prepare internal data structures for the next mark cycle. This includes clearing
540 // the next mark bitmap and some internal data structures. This method is intended
541 // to be called concurrently to the mutator. It will yield to safepoint requests.
542 void cleanup_for_next_mark();
543
544 // Clear the previous marking bitmap during safepoint.
545 void clear_prev_bitmap(WorkGang* workers);
546
547 // Return whether the next mark bitmap has no marks set. To be used for assertions
548 // only. Will not yield to pause requests.
549 bool next_mark_bitmap_is_clear();
550
551 // These two methods do the work that needs to be done at the start and end of the
552 // initial mark pause.
553 void pre_initial_mark();
554 void post_initial_mark();
555
556 // Scan all the root regions and mark everything reachable from
557 // them.
558 void scan_root_regions();
559
560 // Scan a single root region and mark everything reachable from it.
561 void scan_root_region(HeapRegion* hr, uint worker_id);
562
563 // Do concurrent phase of marking, to a tentative transitive closure.
564 void mark_from_roots();
565
566 // Do concurrent preclean work.
567 void preclean();
568
569 void remark();
570
|
527 ~G1ConcurrentMark();
528
529 G1ConcurrentMarkThread* cm_thread() { return _cm_thread; }
530
531 const G1CMBitMap* const prev_mark_bitmap() const { return _prev_mark_bitmap; }
532 G1CMBitMap* next_mark_bitmap() const { return _next_mark_bitmap; }
533
534 // Calculates the number of concurrent GC threads to be used in the marking phase.
535 uint calc_active_marking_workers();
536
537 // Moves all per-task cached data into global state.
538 void flush_all_task_caches();
539 // Prepare internal data structures for the next mark cycle. This includes clearing
540 // the next mark bitmap and some internal data structures. This method is intended
541 // to be called concurrently to the mutator. It will yield to safepoint requests.
542 void cleanup_for_next_mark();
543
544 // Clear the previous marking bitmap during safepoint.
545 void clear_prev_bitmap(WorkGang* workers);
546
547 // These two methods do the work that needs to be done at the start and end of the
548 // initial mark pause.
549 void pre_initial_mark();
550 void post_initial_mark();
551
552 // Scan all the root regions and mark everything reachable from
553 // them.
554 void scan_root_regions();
555
556 // Scan a single root region and mark everything reachable from it.
557 void scan_root_region(HeapRegion* hr, uint worker_id);
558
559 // Do concurrent phase of marking, to a tentative transitive closure.
560 void mark_from_roots();
561
562 // Do concurrent preclean work.
563 void preclean();
564
565 void remark();
566
|