< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp

Print this page




 192   size_t initial_capacity() const;
 193   size_t capacity()         const;
 194   size_t used()             const;
 195   size_t committed()        const;
 196 
 197 // ---------- Workers handling
 198 //
 199 private:
 200   uint _max_workers;
 201   ShenandoahWorkGang* _workers;
 202   ShenandoahWorkGang* _safepoint_workers;
 203 
 204 public:
 205   uint max_workers();
 206   void assert_gc_workers(uint nworker) NOT_DEBUG_RETURN;
 207 
 208   WorkGang* workers() const;
 209   WorkGang* get_safepoint_workers();
 210 
 211   void gc_threads_do(ThreadClosure* tcl) const;


 212 
 213 // ---------- Heap regions handling machinery
 214 //
 215 private:
 216   MemRegion _heap_region;
 217   bool      _heap_region_special;
 218   size_t    _num_regions;
 219   ShenandoahHeapRegion** _regions;
 220   ShenandoahRegionIterator _update_refs_iterator;
 221 
 222 public:
 223 
 224   inline HeapWord* base() const { return _heap_region.start(); }
 225 
 226   inline size_t num_regions() const { return _num_regions; }
 227   inline bool is_heap_region_special() { return _heap_region_special; }
 228 
 229   inline ShenandoahHeapRegion* const heap_region_containing(const void* addr) const;
 230   inline size_t heap_region_index_containing(const void* addr) const;
 231 


 599   MetaWord* satisfy_failed_metadata_allocation(ClassLoaderData* loader_data,
 600                                                size_t size,
 601                                                Metaspace::MetadataType mdtype);
 602 
 603   void notify_mutator_alloc_words(size_t words, bool waste);
 604 
 605   // Shenandoah supports TLAB allocation
 606   bool supports_tlab_allocation() const { return true; }
 607 
 608   HeapWord* allocate_new_tlab(size_t min_size, size_t requested_size, size_t* actual_size);
 609   size_t tlab_capacity(Thread *thr) const;
 610   size_t unsafe_max_tlab_alloc(Thread *thread) const;
 611   size_t max_tlab_size() const;
 612   size_t tlab_used(Thread* ignored) const;
 613 
 614   void ensure_parsability(bool retire_labs);
 615 
 616   void labs_make_parsable();
 617   void tlabs_retire(bool resize);
 618   void gclabs_retire(bool resize);
 619 
 620   // Runs the given AbstractGangTask with the current active workers.
 621   // Returns the total time to run the task.
 622   virtual void run_task(AbstractGangTask* task);
 623 
 624 // ---------- Marking support
 625 //
 626 private:
 627   ShenandoahMarkingContext* _marking_context;
 628   MemRegion  _bitmap_region;
 629   MemRegion  _aux_bitmap_region;
 630   MarkBitMap _verification_bit_map;
 631   MarkBitMap _aux_bit_map;
 632 
 633   size_t _bitmap_size;
 634   size_t _bitmap_regions_per_slice;
 635   size_t _bitmap_bytes_per_slice;
 636 
 637   size_t _pretouch_heap_page_size;
 638   size_t _pretouch_bitmap_page_size;
 639 
 640   bool _bitmap_region_special;
 641   bool _aux_bitmap_region_special;
 642 




 192   size_t initial_capacity() const;
 193   size_t capacity()         const;
 194   size_t used()             const;
 195   size_t committed()        const;
 196 
 197 // ---------- Workers handling
 198 //
 199 private:
 200   uint _max_workers;
 201   ShenandoahWorkGang* _workers;
 202   ShenandoahWorkGang* _safepoint_workers;
 203 
 204 public:
 205   uint max_workers();
 206   void assert_gc_workers(uint nworker) NOT_DEBUG_RETURN;
 207 
 208   WorkGang* workers() const;
 209   WorkGang* get_safepoint_workers();
 210 
 211   void gc_threads_do(ThreadClosure* tcl) const;
 212   // Runs the given AbstractGangTask with the current active workers.
 213   virtual void run_task(AbstractGangTask* task);
 214 
 215 // ---------- Heap regions handling machinery
 216 //
 217 private:
 218   MemRegion _heap_region;
 219   bool      _heap_region_special;
 220   size_t    _num_regions;
 221   ShenandoahHeapRegion** _regions;
 222   ShenandoahRegionIterator _update_refs_iterator;
 223 
 224 public:
 225 
 226   inline HeapWord* base() const { return _heap_region.start(); }
 227 
 228   inline size_t num_regions() const { return _num_regions; }
 229   inline bool is_heap_region_special() { return _heap_region_special; }
 230 
 231   inline ShenandoahHeapRegion* const heap_region_containing(const void* addr) const;
 232   inline size_t heap_region_index_containing(const void* addr) const;
 233 


 601   MetaWord* satisfy_failed_metadata_allocation(ClassLoaderData* loader_data,
 602                                                size_t size,
 603                                                Metaspace::MetadataType mdtype);
 604 
 605   void notify_mutator_alloc_words(size_t words, bool waste);
 606 
 607   // Shenandoah supports TLAB allocation
 608   bool supports_tlab_allocation() const { return true; }
 609 
 610   HeapWord* allocate_new_tlab(size_t min_size, size_t requested_size, size_t* actual_size);
 611   size_t tlab_capacity(Thread *thr) const;
 612   size_t unsafe_max_tlab_alloc(Thread *thread) const;
 613   size_t max_tlab_size() const;
 614   size_t tlab_used(Thread* ignored) const;
 615 
 616   void ensure_parsability(bool retire_labs);
 617 
 618   void labs_make_parsable();
 619   void tlabs_retire(bool resize);
 620   void gclabs_retire(bool resize);




 621 
 622 // ---------- Marking support
 623 //
 624 private:
 625   ShenandoahMarkingContext* _marking_context;
 626   MemRegion  _bitmap_region;
 627   MemRegion  _aux_bitmap_region;
 628   MarkBitMap _verification_bit_map;
 629   MarkBitMap _aux_bit_map;
 630 
 631   size_t _bitmap_size;
 632   size_t _bitmap_regions_per_slice;
 633   size_t _bitmap_bytes_per_slice;
 634 
 635   size_t _pretouch_heap_page_size;
 636   size_t _pretouch_bitmap_page_size;
 637 
 638   bool _bitmap_region_special;
 639   bool _aux_bitmap_region_special;
 640 


< prev index next >