< prev index next >

src/share/vm/gc/g1/g1ConcurrentMark.hpp

Print this page
rev 10546 : [mq]: 8077144-concurrent-mark-thread-init-fix
rev 10547 : imported patch 8077144-mikael-review


 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.


< prev index next >