< prev index next >

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

Print this page
rev 49504 : imported patch 8151171-renamings
rev 49506 : imported patch 8200234-g1concurrentmark-refactorings
rev 49510 : 8200255: Remove G1CMTask::_concurrent
Reviewed-by: sangheki, sjohanss
rev 49511 : 8200074: Remove G1ConcurrentMark::_concurrent_marking_in_progress
Reviewed-by: sjohanss, sangheki
rev 49513 : [mq]: 8200385-prev-bitmap-marks-left


 572   // If marking is not in progress, it's a no-op.
 573   void verify_no_cset_oops() PRODUCT_RETURN;
 574 
 575   inline bool do_yield_check();
 576 
 577   bool has_aborted()      { return _has_aborted; }
 578 
 579   void print_summary_info();
 580 
 581   void print_worker_threads_on(outputStream* st) const;
 582   void threads_do(ThreadClosure* tc) const;
 583 
 584   void print_on_error(outputStream* st) const;
 585 
 586   // Mark the given object on the next bitmap if it is below nTAMS.
 587   // If the passed obj_size is zero, it is recalculated from the given object if
 588   // needed. This is to be as lazy as possible with accessing the object's size.
 589   inline bool mark_in_next_bitmap(uint worker_id, HeapRegion* const hr, oop const obj, size_t const obj_size = 0);
 590   inline bool mark_in_next_bitmap(uint worker_id, oop const obj, size_t const obj_size = 0);
 591 


 592   // Returns true if initialization was successfully completed.
 593   bool completed_initialization() const {
 594     return _completed_initialization;
 595   }
 596 
 597   ConcurrentGCTimer* gc_timer_cm() const { return _gc_timer_cm; }
 598   G1OldTracer* gc_tracer_cm() const { return _gc_tracer_cm; }
 599 
 600 private:
 601   // Rebuilds the remembered sets for chosen regions in parallel and concurrently to the application.
 602   void rebuild_rem_set_concurrently();
 603 };
 604 
 605 // A class representing a marking task.
 606 class G1CMTask : public TerminatorTerminator {
 607 private:
 608   enum PrivateConstants {
 609     // The regular clock call is called once the scanned words reaches
 610     // this limit
 611     words_scanned_period          = 12*1024,




 572   // If marking is not in progress, it's a no-op.
 573   void verify_no_cset_oops() PRODUCT_RETURN;
 574 
 575   inline bool do_yield_check();
 576 
 577   bool has_aborted()      { return _has_aborted; }
 578 
 579   void print_summary_info();
 580 
 581   void print_worker_threads_on(outputStream* st) const;
 582   void threads_do(ThreadClosure* tc) const;
 583 
 584   void print_on_error(outputStream* st) const;
 585 
 586   // Mark the given object on the next bitmap if it is below nTAMS.
 587   // If the passed obj_size is zero, it is recalculated from the given object if
 588   // needed. This is to be as lazy as possible with accessing the object's size.
 589   inline bool mark_in_next_bitmap(uint worker_id, HeapRegion* const hr, oop const obj, size_t const obj_size = 0);
 590   inline bool mark_in_next_bitmap(uint worker_id, oop const obj, size_t const obj_size = 0);
 591 
 592   inline bool is_marked_in_next_bitmap(oop p) const;
 593 
 594   // Returns true if initialization was successfully completed.
 595   bool completed_initialization() const {
 596     return _completed_initialization;
 597   }
 598 
 599   ConcurrentGCTimer* gc_timer_cm() const { return _gc_timer_cm; }
 600   G1OldTracer* gc_tracer_cm() const { return _gc_tracer_cm; }
 601 
 602 private:
 603   // Rebuilds the remembered sets for chosen regions in parallel and concurrently to the application.
 604   void rebuild_rem_set_concurrently();
 605 };
 606 
 607 // A class representing a marking task.
 608 class G1CMTask : public TerminatorTerminator {
 609 private:
 610   enum PrivateConstants {
 611     // The regular clock call is called once the scanned words reaches
 612     // this limit
 613     words_scanned_period          = 12*1024,


< prev index next >