diff src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @ 20738:e2ed74d2e054

8044406: JVM crash with JDK8 (build 1.8.0-b132) with G1 GC Summary: Fill the last card that has been allocated into with a dummy object Reviewed-by: tschatzl, mgerdin
author poonam
date Tue, 19 Aug 2014 02:05:49 -0700
parents a45a4f5a9609
children c2844108a708
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp	Wed Aug 13 17:37:11 2014 -0700
+++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp	Tue Aug 19 02:05:49 2014 -0700
@@ -183,6 +183,13 @@
 public:
   OldGCAllocRegion()
   : G1AllocRegion("Old GC Alloc Region", true /* bot_updates */) { }
+
+  // This specialization of release() makes sure that the last card that has been
+  // allocated into has been completely filled by a dummy object.
+  // This avoids races when remembered set scanning wants to update the BOT of the
+  // last card in the retained old gc alloc region, and allocation threads
+  // allocating into that card at the same time.
+  virtual HeapRegion* release();
 };
 
 // The G1 STW is alive closure.