< prev index next >
src/hotspot/share/gc/g1/g1ParScanThreadState.inline.hpp
Print this page
rev 56463 : [mq]: 8220312.stat.4
*** 228,233 ****
--- 228,259 ----
"Trying to access optional region idx %u beyond " SIZE_FORMAT " " HR_FORMAT,
hr->index_in_opt_cset(), _num_optional_regions, HR_FORMAT_PARAMS(hr));
return &_oops_into_optional_regions[hr->index_in_opt_cset()];
}
+ void G1ParScanThreadState::initialize_numa_stats() {
+ if (_numa->is_enabled()) {
+ LogTarget(Info, gc, heap, numa) lt;
+
+ if (lt.is_enabled()) {
+ uint num_nodes = _numa->num_active_nodes();
+ // Record only if there are multiple active nodes.
+ _obj_alloc_stat = NEW_C_HEAP_ARRAY(size_t, num_nodes, mtGC);
+ memset((void*)_obj_alloc_stat, 0, sizeof(size_t) * num_nodes);
+ }
+ }
+ }
+
+ void G1ParScanThreadState::flush_numa_stats() {
+ if (_obj_alloc_stat != NULL) {
+ uint node_index = _numa->index_of_current_thread();
+ _numa->copy_statistics(G1NUMAStats::LocalObjProcessAtCopyToSurv, node_index, _obj_alloc_stat);
+ }
+ }
+
+ void G1ParScanThreadState::update_numa_stats(uint node_index) {
+ if (_obj_alloc_stat != NULL) {
+ _obj_alloc_stat[node_index]++;
+ }
+ }
+
#endif // SHARE_GC_G1_G1PARSCANTHREADSTATE_INLINE_HPP
< prev index next >