changeset 8567:f9720c487762

8131645: [ARM64] crash on Cavium when using G1 Summary: Add a fence when creating the CodeRootSetTable so the readers do not see invalid memory. Reviewed-by: aph, tschatzl
author ecaspole
date Mon, 21 Sep 2015 10:36:36 -0400
parents 5b75aaed29fc
children 3ccdd3482827
files src/share/vm/gc_implementation/g1/g1CodeCacheRemSet.cpp
diffstat 1 files changed, 3 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/g1CodeCacheRemSet.cpp	Thu Oct 15 15:33:54 2015 +0000
+++ b/src/share/vm/gc_implementation/g1/g1CodeCacheRemSet.cpp	Mon Sep 21 10:36:36 2015 -0400
@@ -200,6 +200,9 @@
 
 void G1CodeRootSet::allocate_small_table() {
   _table = new CodeRootSetTable(SmallSize);
+  CodeRootSetTable* temp = new CodeRootSetTable(SmallSize);
+
+  OrderAccess::release_store_ptr(&_table, temp);
 }
 
 void CodeRootSetTable::purge_list_append(CodeRootSetTable* table) {