< 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 >