< prev index next >

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

Print this page
rev 48920 : [backport] Use PLAB for evacuations instead of TLAB

*** 31,40 **** --- 31,41 ---- #include "gc/shenandoah/shenandoahSharedVariables.hpp" #include "gc/shenandoah/shenandoahWorkGroup.hpp" #include "services/memoryManager.hpp" class ConcurrentGCTimer; + class PLABStats; class ShenandoahAsserts; class ShenandoahAllocTracker; class ShenandoahCollectorPolicy; class ShenandoahConnectionMatrix; class ShenandoahFastRegionSet;
*** 317,326 **** --- 318,330 ---- ShenandoahEvacOOMHandler _oom_evac_handler; ShenandoahSharedEnumFlag<GCCycleMode> _gc_cycle_mode; + PLABStats* _mutator_gclab_stats; + PLABStats* _collector_gclab_stats; + #ifdef ASSERT int _heap_expansion_count; #endif public:
*** 368,379 **** size_t tlab_capacity(Thread *thr) const /* override */; void object_iterate(ObjectClosure* cl) /* override */; void safe_object_iterate(ObjectClosure* cl) /* override */; size_t unsafe_max_tlab_alloc(Thread *thread) const /* override */; size_t max_tlab_size() const /* override */; - void resize_all_tlabs() /* override */; - void accumulate_statistics_all_gclabs() /* override */; HeapWord* tlab_post_allocation_setup(HeapWord* obj) /* override */; uint oop_extra_words() /* override */; size_t tlab_used(Thread* ignored) const /* override */; void stop() /* override */; virtual void safepoint_synchronize_begin(); --- 372,381 ----
*** 401,410 **** --- 403,416 ---- ShenandoahCollectorPolicy *shenandoahPolicy() const { return _shenandoah_policy; } ShenandoahPhaseTimings* phase_timings() const { return _phase_timings; } ShenandoahAllocTracker* alloc_tracker() const { return _alloc_tracker; } + void accumulate_statistics_all_gclabs(); + PLABStats* mutator_gclab_stats() const { return _mutator_gclab_stats; } + PLABStats* collector_gclab_stats() const { return _collector_gclab_stats; } + inline ShenandoahHeapRegion* const heap_region_containing(const void* addr) const; inline size_t heap_region_index_containing(const void* addr) const; inline bool requires_marking(const void* entry) const; template <class T>
*** 579,588 **** --- 585,597 ---- // Call before starting evacuation. void enter_evacuation(); // Call after finished with evacuation. void leave_evacuation(); + void initialize_gclab(Thread* thread); + void finalize_mutator_gclab(Thread* thread); + private: template<class T> inline void marked_object_iterate(ShenandoahHeapRegion* region, T* cl, HeapWord* limit); template<class T>
< prev index next >