--- old/src/share/vm/gc/g1/heapRegionRemSet.cpp 2016-09-13 17:10:36.524104989 +0200 +++ new/src/share/vm/gc/g1/heapRegionRemSet.cpp 2016-09-13 17:10:36.424104984 +0200 @@ -56,7 +56,7 @@ PerRegionTable * _collision_list_next; // Global free list of PRTs - static PerRegionTable* _free_list; + static PerRegionTable* volatile _free_list; protected: // We need access in order to union things into the base table. @@ -249,7 +249,7 @@ static void test_fl_mem_size(); }; -PerRegionTable* PerRegionTable::_free_list = NULL; +PerRegionTable* volatile PerRegionTable::_free_list = NULL; size_t OtherRegionsTable::_max_fine_entries = 0; size_t OtherRegionsTable::_mod_max_fine_entries_mask = 0;