< prev index next >

src/hotspot/share/gc/g1/g1CollectedHeap.cpp

Print this page
rev 56821 : imported patch 8220310.mut.0
rev 56822 : imported patch 8220310.mut.1
rev 56823 : imported patch 8220310.mut.2
rev 56824 : imported patch 8220310.mut.3
rev 56825 : imported patch 8220310.mut.4
rev 56826 : imported patch 8220310.mut.5
rev 56830 : imported patch 8220311.sur.2
rev 56834 : imported patch 8220312.stat.2
rev 56836 : imported patch 8220312.stat.4
rev 56838 : [mq]: 8220312.stat.5
rev 56839 : [mq]: 8220312.stat.6

*** 2389,2398 **** --- 2389,2407 ---- (size_t) young_regions * HeapRegion::GrainBytes / K); uint survivor_regions = survivor_regions_count(); st->print("%u survivors (" SIZE_FORMAT "K)", survivor_regions, (size_t) survivor_regions * HeapRegion::GrainBytes / K); st->cr(); + if (_numa->is_enabled()) { + uint num_nodes = _numa->num_active_nodes(); + st->print(" remaining free region(s) on each NUMA node: "); + const int* node_ids = _numa->node_ids(); + for (uint node_index = 0; node_index < num_nodes; node_index++) { + st->print("%d=%u ", node_ids[node_index], _hrm->num_free_regions(node_index)); + } + st->cr(); + } MetaspaceUtils::print_on(st); } void G1CollectedHeap::print_regions_on(outputStream* st) const { st->print_cr("Heap Regions: E=young(eden), S=young(survivor), O=old, "
*** 2578,2587 **** --- 2587,2610 ---- MemoryService::track_memory_usage(); // We have just completed a GC. Update the soft reference // policy with the new heap occupancy Universe::update_heap_info_at_gc(); + + // Print NUMA statistics. + _numa->print_statistics(); + } + + void G1CollectedHeap::verify_numa_regions(const char* desc) { + LogTarget(Trace, gc, heap, verify) lt; + + if (lt.is_enabled()) { + LogStream ls(lt); + // Iterate all heap regions to print matching between preferred numa id and actual numa id. + G1NodeIndexCheckClosure cl(desc, _numa, &ls); + heap_region_iterate(&cl); + } } HeapWord* G1CollectedHeap::do_collection_pause(size_t word_size, uint gc_count_before, bool* succeeded,
*** 2887,2906 **** --- 2910,2931 ---- VerifyRegionRemSetClosure v_cl; heap_region_iterate(&v_cl); } _verifier->verify_before_gc(type); _verifier->check_bitmaps("GC Start"); + verify_numa_regions("GC Start"); } void G1CollectedHeap::verify_after_young_collection(G1HeapVerifier::G1VerifyType type) { if (VerifyRememberedSets) { log_info(gc, verify)("[Verifying RemSets after GC]"); VerifyRegionRemSetClosure v_cl; heap_region_iterate(&v_cl); } _verifier->verify_after_gc(type); _verifier->check_bitmaps("GC End"); + verify_numa_regions("GC End"); } void G1CollectedHeap::expand_heap_after_young_collection(){ size_t expand_bytes = _heap_sizing_policy->expansion_amount(); if (expand_bytes > 0) {
< prev index next >