624 // Verify that there are no CSet oops on the stacks (taskqueues /
625 // global mark stack) and fingers (global / per-task).
626 // If marking is not in progress, it's a no-op.
627 void verify_no_cset_oops() PRODUCT_RETURN;
628
629 inline bool isPrevMarked(oop p) const;
630
631 inline bool do_yield_check(uint worker_i = 0);
632
633 // Abandon current marking iteration due to a Full GC.
634 void abort();
635
636 bool has_aborted() { return _has_aborted; }
637
638 void print_summary_info();
639
640 void print_worker_threads_on(outputStream* st) const;
641
642 void print_on_error(outputStream* st) const;
643
644 // Returns the card number of the bottom of the G1 heap.
645 // Used in biasing indices into accounting card bitmaps.
646 intptr_t heap_bottom_card_num() const {
647 return _heap_bottom_card_num;
648 }
649
650 // Returns the index in the per-card liveness count bitmap
651 // for the given address
652 inline BitMap::idx_t card_live_bitmap_index_for(HeapWord* addr);
653
654 // Attempts to mark the given object on the next mark bitmap.
655 inline bool par_mark(oop obj);
656
657 // Returns true if initialization was successfully completed.
658 bool completed_initialization() const {
659 return _completed_initialization;
660 }
661
662 ConcurrentGCTimer* gc_timer_cm() const { return _gc_timer_cm; }
663 G1OldTracer* gc_tracer_cm() const { return _gc_tracer_cm; }
664
665 private:
666 // Clear (Reset) all liveness count data.
667 void clear_all_live_data(WorkGang* workers);
668
669 // Verify all of the above data structures that they are in initial state.
670 void verify_all_live_data();
671
672 // Aggregates the per-card liveness data based on the current marking. Also sets
673 // the amount of marked bytes for each region.
|
624 // Verify that there are no CSet oops on the stacks (taskqueues /
625 // global mark stack) and fingers (global / per-task).
626 // If marking is not in progress, it's a no-op.
627 void verify_no_cset_oops() PRODUCT_RETURN;
628
629 inline bool isPrevMarked(oop p) const;
630
631 inline bool do_yield_check(uint worker_i = 0);
632
633 // Abandon current marking iteration due to a Full GC.
634 void abort();
635
636 bool has_aborted() { return _has_aborted; }
637
638 void print_summary_info();
639
640 void print_worker_threads_on(outputStream* st) const;
641
642 void print_on_error(outputStream* st) const;
643
644 // Attempts to mark the given object on the next mark bitmap.
645 inline bool par_mark(oop obj);
646
647 // Returns true if initialization was successfully completed.
648 bool completed_initialization() const {
649 return _completed_initialization;
650 }
651
652 ConcurrentGCTimer* gc_timer_cm() const { return _gc_timer_cm; }
653 G1OldTracer* gc_tracer_cm() const { return _gc_tracer_cm; }
654
655 private:
656 // Clear (Reset) all liveness count data.
657 void clear_all_live_data(WorkGang* workers);
658
659 // Verify all of the above data structures that they are in initial state.
660 void verify_all_live_data();
661
662 // Aggregates the per-card liveness data based on the current marking. Also sets
663 // the amount of marked bytes for each region.
|