< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp

Print this page
rev 50076 : Fold Partial GC into Traversal GC

*** 23,32 **** --- 23,34 ---- #include "precompiled.hpp" #include "logging/logStream.hpp" #include "gc/shenandoah/shenandoahFreeSet.hpp" #include "gc/shenandoah/shenandoahHeap.inline.hpp" + #include "gc/shenandoah/shenandoahHeapRegionSet.hpp" + #include "gc/shenandoah/shenandoahTraversalGC.hpp" ShenandoahFreeSet::ShenandoahFreeSet(ShenandoahHeap* heap, size_t max_regions) : _heap(heap), _mutator_free_bitmap(max_regions, mtGC), _collector_free_bitmap(max_regions, mtGC),
*** 181,191 **** case ShenandoahHeap::_alloc_shared_gc: if (_heap->is_concurrent_traversal_in_progress()) { // We're updating TAMS for evacuation-allocs, such that we will not // treat evacuated objects as implicitely live and traverse through them. // See top of shenandoahTraversal.cpp for an explanation. ! _heap->set_next_top_at_mark_start(r->bottom(), r->end()); OrderAccess::fence(); } break; case ShenandoahHeap::_alloc_tlab: case ShenandoahHeap::_alloc_shared: --- 183,194 ---- case ShenandoahHeap::_alloc_shared_gc: if (_heap->is_concurrent_traversal_in_progress()) { // We're updating TAMS for evacuation-allocs, such that we will not // treat evacuated objects as implicitely live and traverse through them. // See top of shenandoahTraversal.cpp for an explanation. ! _heap->set_next_top_at_mark_start(r->bottom(), r->top()); ! _heap->traversal_gc()->traversal_set()->add_region_check_for_duplicates(r); OrderAccess::fence(); } break; case ShenandoahHeap::_alloc_tlab: case ShenandoahHeap::_alloc_shared:
< prev index next >