--- old/src/hotspot/share/gc/g1/g1ParScanThreadState.hpp 2019-11-06 13:48:40.345572519 -0800 +++ new/src/hotspot/share/gc/g1/g1ParScanThreadState.hpp 2019-11-06 13:48:39.961572507 -0800 @@ -95,6 +95,13 @@ size_t _num_optional_regions; G1OopStarChunkedList* _oops_into_optional_regions; + G1NUMA* _numa; + + // Records how many object allocations happened at each node during copy to survivor. + // Only starts recording when log of gc+heap+numa is enabled and its data is + // transferred when flushed. + size_t* _obj_alloc_stat; + public: G1ParScanThreadState(G1CollectedHeap* g1h, G1RedirtyCardsQueueSet* rdcqs, @@ -207,6 +214,12 @@ inline bool is_partially_trimmed() const; inline void trim_queue_to_threshold(uint threshold); + + // NUMA statistics related methods. + inline void initialize_numa_stats(); + inline void flush_numa_stats(); + inline void update_numa_stats(uint node_index); + public: oop copy_to_survivor_space(G1HeapRegionAttr const region_attr, oop const obj, markWord const old_mark);