< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp
Print this page
rev 50076 : Fold Partial GC into Traversal GC
@@ -23,10 +23,12 @@
#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,11 +183,12 @@
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());
+ _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 >