545
546 // Return whether the next mark bitmap has no marks set. To be used for assertions
547 // only. Will not yield to pause requests.
548 bool next_mark_bitmap_is_clear();
549
550 // These two methods do the work that needs to be done at the start and end of the
551 // initial mark pause.
552 void pre_initial_mark();
553 void post_initial_mark();
554
555 // Scan all the root regions and mark everything reachable from
556 // them.
557 void scan_root_regions();
558
559 // Scan a single root region and mark everything reachable from it.
560 void scan_root_region(HeapRegion* hr, uint worker_id);
561
562 // Do concurrent phase of marking, to a tentative transitive closure.
563 void mark_from_roots();
564
565 void remark();
566
567 void cleanup();
568 // Mark in the previous bitmap. Caution: the prev bitmap is usually read-only, so use
569 // this carefully.
570 inline void mark_in_prev_bitmap(oop p);
571
572 // Clears marks for all objects in the given range, for the prev or
573 // next bitmaps. Caution: the previous bitmap is usually
574 // read-only, so use this carefully!
575 void clear_range_in_prev_bitmap(MemRegion mr);
576
577 inline bool is_marked_in_prev_bitmap(oop p) const;
578
579 // Verify that there are no collection set oops on the stacks (taskqueues /
580 // global mark stack) and fingers (global / per-task).
581 // If marking is not in progress, it's a no-op.
582 void verify_no_cset_oops() PRODUCT_RETURN;
583
584 inline bool do_yield_check();
|
545
546 // Return whether the next mark bitmap has no marks set. To be used for assertions
547 // only. Will not yield to pause requests.
548 bool next_mark_bitmap_is_clear();
549
550 // These two methods do the work that needs to be done at the start and end of the
551 // initial mark pause.
552 void pre_initial_mark();
553 void post_initial_mark();
554
555 // Scan all the root regions and mark everything reachable from
556 // them.
557 void scan_root_regions();
558
559 // Scan a single root region and mark everything reachable from it.
560 void scan_root_region(HeapRegion* hr, uint worker_id);
561
562 // Do concurrent phase of marking, to a tentative transitive closure.
563 void mark_from_roots();
564
565 // Do concurrent preclean work.
566 void preclean();
567
568 void remark();
569
570 void cleanup();
571 // Mark in the previous bitmap. Caution: the prev bitmap is usually read-only, so use
572 // this carefully.
573 inline void mark_in_prev_bitmap(oop p);
574
575 // Clears marks for all objects in the given range, for the prev or
576 // next bitmaps. Caution: the previous bitmap is usually
577 // read-only, so use this carefully!
578 void clear_range_in_prev_bitmap(MemRegion mr);
579
580 inline bool is_marked_in_prev_bitmap(oop p) const;
581
582 // Verify that there are no collection set oops on the stacks (taskqueues /
583 // global mark stack) and fingers (global / per-task).
584 // If marking is not in progress, it's a no-op.
585 void verify_no_cset_oops() PRODUCT_RETURN;
586
587 inline bool do_yield_check();
|