8134631: G1DummyRegionsPerGC fires assert of assert(words <= filler_array_max_size()) failed: too big for a single object
authorsangheki
Thu, 12 Nov 2015 09:52:04 -0800
changeset 34136 7e08409e5935
parent 34134 d4fd14f628fb
child 34137 41cc1ac3e1d9
8134631: G1DummyRegionsPerGC fires assert of assert(words <= filler_array_max_size()) failed: too big for a single object Summary: Change filler max value temporarily for G1DummyRegionsPerGC flag. Reviewed-by: tbenson, tschatzl
hotspot/src/share/vm/gc/g1/g1CollectedHeap.cpp
--- a/hotspot/src/share/vm/gc/g1/g1CollectedHeap.cpp	Fri Nov 13 09:12:06 2015 +0100
+++ b/hotspot/src/share/vm/gc/g1/g1CollectedHeap.cpp	Thu Nov 12 09:52:04 2015 -0800
@@ -2278,6 +2278,10 @@
   // And as a result the region we'll allocate will be humongous.
   guarantee(is_humongous(word_size), "sanity");
 
+  // _filler_array_max_size is set to humongous object threshold
+  // but temporarily change it to use CollectedHeap::fill_with_object().
+  SizeTFlagSetting fs(_filler_array_max_size, word_size);
+
   for (uintx i = 0; i < G1DummyRegionsPerGC; ++i) {
     // Let's use the existing mechanism for the allocation
     HeapWord* dummy_obj = humongous_obj_allocate(word_size,