< prev index next >
src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegionCounters.cpp
Print this page
rev 9705 : [backport] Implement early update references phase.
*** 59,69 ****
const char* ns = PerfDataManager::ns_to_string(SUN_GC);
const char* fullname = PerfDataManager::counter_name(ns, data_name);
assert(!PerfDataManager::exists(fullname), "must not exist");
_regions_data[i] = PerfDataManager::create_long_variable(SUN_GC, data_name,
PerfData::U_None, CHECK);
-
}
}
}
ShenandoahHeapRegionCounters::~ShenandoahHeapRegionCounters() {
--- 59,68 ----
*** 77,88 ****
if (current - last > ShenandoahRegionSamplingRate &&
Atomic::cmpxchg(current, &_last_sample_millis, last) == last) {
ShenandoahHeap* heap = ShenandoahHeap::heap();
jlong status = 0;
! if (heap->concurrent_mark_in_progress()) status |= 1;
! if (heap->is_evacuation_in_progress()) status |= 2;
_status->set_value(status);
_timestamp->set_value(os::elapsed_counter());
size_t num_regions = heap->num_regions();
--- 76,88 ----
if (current - last > ShenandoahRegionSamplingRate &&
Atomic::cmpxchg(current, &_last_sample_millis, last) == last) {
ShenandoahHeap* heap = ShenandoahHeap::heap();
jlong status = 0;
! if (heap->concurrent_mark_in_progress()) status |= 1 << 0;
! if (heap->is_evacuation_in_progress()) status |= 1 << 1;
! if (heap->is_update_refs_in_progress()) status |= 1 << 2;
_status->set_value(status);
_timestamp->set_value(os::elapsed_counter());
size_t num_regions = heap->num_regions();
< prev index next >