< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp
Print this page
rev 57745 : 8240872: Shenandoah: Avoid updating new regions from start of evacuation
Reviewed-by: shade
rev 57746 : 8240873: Shenandoah: Short-cut arraycopy barriers
Reviewed-by: shade
*** 258,268 ****
uint64_t _seqnum_last_alloc_gc;
volatile size_t _live_data;
volatile size_t _critical_pins;
! HeapWord* _update_watermark;
// Claim some space at the end to protect next region
DEFINE_PAD_MINUS_SIZE(0, DEFAULT_CACHE_LINE_SIZE, 0);
public:
--- 258,268 ----
uint64_t _seqnum_last_alloc_gc;
volatile size_t _live_data;
volatile size_t _critical_pins;
! HeapWord* volatile _update_watermark;
// Claim some space at the end to protect next region
DEFINE_PAD_MINUS_SIZE(0, DEFAULT_CACHE_LINE_SIZE, 0);
public:
*** 429,444 ****
return _seqnum_last_alloc_gc;
}
HeapWord* get_update_watermark() const {
assert(bottom() <= _update_watermark && _update_watermark <= top(), "within bounds");
! return _update_watermark;
}
void set_update_watermark(HeapWord* w) {
assert(bottom() <= w && w <= top(), "within bounds");
! _update_watermark = w;
}
private:
void do_commit();
void do_uncommit();
--- 429,444 ----
return _seqnum_last_alloc_gc;
}
HeapWord* get_update_watermark() const {
assert(bottom() <= _update_watermark && _update_watermark <= top(), "within bounds");
! return Atomic::load_acquire(&_update_watermark);
}
void set_update_watermark(HeapWord* w) {
assert(bottom() <= w && w <= top(), "within bounds");
! Atomic::release_store(&_update_watermark, w);
}
private:
void do_commit();
void do_uncommit();
< prev index next >