< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp
Print this page
rev 51547 : Refactor to group marking bitmap and TAMS structure in one class ShenandoahMarkingContext
rev 51548 : [mq]: refactor-marking-context.01
@@ -26,10 +26,11 @@
#include "gc/shenandoah/shenandoahCollectionSet.inline.hpp"
#include "gc/shenandoah/shenandoahCollectorPolicy.hpp"
#include "gc/shenandoah/shenandoahHeap.inline.hpp"
#include "gc/shenandoah/shenandoahHeapRegion.hpp"
#include "gc/shenandoah/shenandoahHeuristics.hpp"
+#include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
int ShenandoahHeuristics::compare_by_garbage(RegionData a, RegionData b) {
if (a._garbage > b._garbage)
return -1;
else if (a._garbage < b._garbage)
@@ -153,10 +154,12 @@
size_t immediate_regions = 0;
size_t free = 0;
size_t free_regions = 0;
+ ShenandoahMarkingContext* const ctx = heap->complete_marking_context();
+
for (size_t i = 0; i < num_regions; i++) {
ShenandoahHeapRegion* region = heap->get_region(i);
size_t garbage = region->garbage();
total_garbage += garbage;
@@ -178,11 +181,11 @@
}
} else if (region->is_humongous_start()) {
// Reclaim humongous regions here, and count them as the immediate garbage
#ifdef ASSERT
bool reg_live = region->has_live();
- bool bm_live = heap->is_marked_complete(oop(region->bottom() + BrooksPointer::word_size()));
+ bool bm_live = ctx->is_marked(oop(region->bottom() + BrooksPointer::word_size()));
assert(reg_live == bm_live,
"Humongous liveness and marks should agree. Region live: %s; Bitmap live: %s; Region Live Words: " SIZE_FORMAT,
BOOL_TO_STR(reg_live), BOOL_TO_STR(bm_live), region->get_live_data_words());
#endif
if (!region->has_live()) {
< prev index next >