RFR (XS) 8243301: Shenandoah: ditch ShenandoahAllowMixedAllocs

Roman Kennke rkennke at redhat.com
Tue Apr 21 19:37:19 UTC 2020


Ok. One flag down is also a win :-)

Roman

> 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 "\
> 
> 




More information about the hotspot-gc-dev mailing list