< prev index next >

src/hotspot/share/gc/shared/cardTableBarrierSet.cpp

Print this page
rev 54112 : 8265677: CMS: CardTableBarrierSet::write_ref_array_work() lacks storestore barrier
Reviewed-by: ???

@@ -77,10 +77,15 @@
 CardTableBarrierSet::~CardTableBarrierSet() {
   delete _card_table;
 }
 
 void CardTableBarrierSet::write_ref_array_work(MemRegion mr) {
+  if (_card_table->scanned_concurrently()) {
+    // The array stores must not be reordered with the card marks if the
+    // card table is scanned concurrently.
+    OrderAccess::storestore();
+  }
   _card_table->dirty_MemRegion(mr);
 }
 
 void CardTableBarrierSet::invalidate(MemRegion mr) {
   _card_table->invalidate(mr);
< prev index next >