8166207: Use of Copy::conjoint_oops_atomic in global mark stack causes crashes on arm64
authortschatzl
Mon, 19 Sep 2016 22:55:26 +0200
changeset 41186 767efcf17936
parent 41185 9549e775d661
child 41187 8bf8c42d8b7a
child 41188 580be979b957
8166207: Use of Copy::conjoint_oops_atomic in global mark stack causes crashes on arm64 Summary: Use Copy::conjoint_memory_atomic() instead. Reviewed-by: kbarrett
hotspot/src/share/vm/gc/g1/g1ConcurrentMark.cpp
--- a/hotspot/src/share/vm/gc/g1/g1ConcurrentMark.cpp	Mon Sep 19 17:35:25 2016 +0000
+++ b/hotspot/src/share/vm/gc/g1/g1ConcurrentMark.cpp	Mon Sep 19 22:55:26 2016 +0200
@@ -285,7 +285,7 @@
     return false;
   }
 
-  Copy::conjoint_oops_atomic(ptr_arr, new_chunk->data, OopsPerChunk);
+  Copy::conjoint_memory_atomic(ptr_arr, new_chunk->data, OopsPerChunk * sizeof(oop));
 
   add_chunk_to_chunk_list(new_chunk);
 
@@ -299,7 +299,7 @@
     return false;
   }
 
-  Copy::conjoint_oops_atomic(cur->data, ptr_arr, OopsPerChunk);
+  Copy::conjoint_memory_atomic(cur->data, ptr_arr, OopsPerChunk * sizeof(oop));
 
   add_chunk_to_free_list(cur);
   return true;