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