RFR (XS) 8243301: Shenandoah: ditch ShenandoahAllowMixedAllocs

Aleksey Shipilev shade at redhat.com
Tue Apr 21 18:39:07 UTC 2020


On 4/21/20 8:31 PM, Aleksey Shipilev wrote:
> RFE:
>   https://bugs.openjdk.java.net/browse/JDK-8243301
> 
> Testing discovers this issue that breaks Shenandoah when JDK-8243291 is applied. See the discussion
> in bug report. I would push this before JDK-8243291 is pushed.

Err. Of course, here is the fix:

diff -r 4153de8e4dca src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp     Tue Apr 21 20:00:58 2020 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp     Tue Apr 21 20:38:55 2020 +0200
@@ -126,16 +126,8 @@
       }

-      // Try to mix the allocation into the mutator view:
-      if (ShenandoahAllowMixedAllocs) {
-        for (size_t c = _mutator_rightmost + 1; c > _mutator_leftmost; c--) {
-          size_t idx = c - 1;
-          if (is_mutator_free(idx)) {
-            HeapWord* result = try_allocate_in(_heap->get_region(idx), req, in_new_region);
-            if (result != NULL) {
-              return result;
-            }
-          }
-        }
-      }
+      // No dice. Do not try to mix mutator and GC allocations, because
+      // URWM moves due to GC allocations would expose unparsable mutator
+      // allocations.
+
       break;
     }
diff -r 4153de8e4dca src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp
--- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp    Tue Apr 21 20:00:58 2020 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp    Tue Apr 21 20:38:55 2020 +0200
@@ -212,8 +212,4 @@
           "Use Elastic TLABs with Shenandoah")                              \
                                                                             \
-  diagnostic(bool, ShenandoahAllowMixedAllocs, true,                        \
-          "Allow mixing mutator and collector allocations into a single "   \
-          "region. Some heuristics enable/disable it for their needs")      \
-                                                                            \
   experimental(uintx, ShenandoahEvacReserve, 5,                             \
           "How much of heap to reserve for evacuations. Larger values make "\


-- 
Thanks,
-Aleksey



More information about the shenandoah-dev mailing list