# HG changeset patch # User fujie # Date 1474098248 14400 # Node ID ebe1a38c3e4fccaff01515a8959200849876ac65 # Parent b863b5fdce61ac11960808c3d4731f366615d4d5 Sync before write on 3A2000 (Follow changeset 9f90c85c6815). diff -r b863b5fdce61 -r ebe1a38c3e4f src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Mon Sep 12 13:59:25 2016 -0400 +++ b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Sat Sep 17 03:44:08 2016 -0400 @@ -3232,14 +3232,13 @@ const size_t new_block = beg_bit >> Log2BitsPerBlock; if (new_block != cur_block) { cur_block = new_block; - sd.block(cur_block)->set_offset(bitmap->bits_to_words(live_bits)); - #ifdef MIPS64 /* 2016/5/4 Jin: On 3A2000-B, when multiple threads write to the same memory location without explict synchronization, sync is required for access correctness. */ OrderAccess::fence(); #endif + sd.block(cur_block)->set_offset(bitmap->bits_to_words(live_bits)); } const size_t end_bit = bitmap->find_obj_end(beg_bit, range_end);