< prev index next >

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

Print this page

 586   // Notification for eagerly reclaimed regions to do extra clean up.
 587   void humongous_object_eagerly_reclaimed(G1HeapRegion* r);
 588   // Manipulation of the global mark stack.
 589   // The push and pop operations are used by tasks for transfers
 590   // between task-local queues and the global mark stack.
 591   bool mark_stack_push(G1TaskQueueEntry* arr) {
 592     if (!_global_mark_stack.par_push_chunk(arr)) {
 593       set_has_overflown();
 594       return false;
 595     }
 596     return true;
 597   }
 598   bool mark_stack_pop(G1TaskQueueEntry* arr) {
 599     return _global_mark_stack.par_pop_chunk(arr);
 600   }
 601   size_t mark_stack_size() const                { return _global_mark_stack.size(); }
 602   size_t partial_mark_stack_size_target() const { return _global_mark_stack.capacity() / 3; }
 603   bool mark_stack_empty() const                 { return _global_mark_stack.is_empty(); }
 604 
 605   void concurrent_cycle_start();


 606   // Abandon current marking iteration due to a Full GC.
 607   bool concurrent_cycle_abort();
 608   void concurrent_cycle_end(bool mark_cycle_completed);
 609 
 610   // Notifies marking threads to abort. This is a best-effort notification. Does not
 611   // guarantee or update any state after the call. Root region scan must not be
 612   // running or being aborted.
 613   void abort_marking_threads();
 614 
 615   // Total cpu time spent in mark worker threads in seconds.
 616   double worker_threads_cpu_time_s();
 617 
 618   // Attempts to steal an object from the task queues of other tasks
 619   bool try_stealing(uint worker_id, G1TaskQueueEntry& task_entry);
 620 
 621   G1ConcurrentMark(G1CollectedHeap* g1h,
 622                    G1RegionToSpaceMapper* bitmap_storage);
 623   ~G1ConcurrentMark();
 624 
 625   G1CMBitMap* mark_bitmap() const { return (G1CMBitMap*)&_mark_bitmap; }

 586   // Notification for eagerly reclaimed regions to do extra clean up.
 587   void humongous_object_eagerly_reclaimed(G1HeapRegion* r);
 588   // Manipulation of the global mark stack.
 589   // The push and pop operations are used by tasks for transfers
 590   // between task-local queues and the global mark stack.
 591   bool mark_stack_push(G1TaskQueueEntry* arr) {
 592     if (!_global_mark_stack.par_push_chunk(arr)) {
 593       set_has_overflown();
 594       return false;
 595     }
 596     return true;
 597   }
 598   bool mark_stack_pop(G1TaskQueueEntry* arr) {
 599     return _global_mark_stack.par_pop_chunk(arr);
 600   }
 601   size_t mark_stack_size() const                { return _global_mark_stack.size(); }
 602   size_t partial_mark_stack_size_target() const { return _global_mark_stack.capacity() / 3; }
 603   bool mark_stack_empty() const                 { return _global_mark_stack.is_empty(); }
 604 
 605   void concurrent_cycle_start();
 606   bool shutdown_cleanup_needed() const;
 607   void shutdown_concurrent_cycle();
 608   // Abandon current marking iteration due to a Full GC.
 609   bool concurrent_cycle_abort();
 610   void concurrent_cycle_end(bool mark_cycle_completed);
 611 
 612   // Notifies marking threads to abort. This is a best-effort notification. Does not
 613   // guarantee or update any state after the call. Root region scan must not be
 614   // running or being aborted.
 615   void abort_marking_threads();
 616 
 617   // Total cpu time spent in mark worker threads in seconds.
 618   double worker_threads_cpu_time_s();
 619 
 620   // Attempts to steal an object from the task queues of other tasks
 621   bool try_stealing(uint worker_id, G1TaskQueueEntry& task_entry);
 622 
 623   G1ConcurrentMark(G1CollectedHeap* g1h,
 624                    G1RegionToSpaceMapper* bitmap_storage);
 625   ~G1ConcurrentMark();
 626 
 627   G1CMBitMap* mark_bitmap() const { return (G1CMBitMap*)&_mark_bitmap; }
< prev index next >