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