RFR: Avoid notifying about zero waste

Roman Kennke rkennke at redhat.com
Fri Apr 6 16:26:11 UTC 2018


Am 06.04.2018 um 17:32 schrieb Aleksey Shipilev:
> We do not need to notify anyone about zero waste when region is retiring:
> 
> diff -r 889aec72fd97 src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp
> --- a/src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp	Fri Apr 06 17:13:42 2018 +0200
> +++ b/src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp	Fri Apr 06 17:32:07 2018 +0200
> @@ -202,12 +202,15 @@
>      // fit, but the next small one would, we are risking to inflate scan times when lots of
>      // almost-full regions precede the fully-empty region where we want allocate the entire TLAB.
>      // TODO: Record first fully-empty region, and use that for large allocations
> +
> +    // Record the remainder as allocation waste
> +    size_t waste = r->free();
> +    if (waste > 0) {
> +      increase_used(waste);
> +      _heap->notify_alloc(waste, true);
> +    }
> +
>      size_t num = r->region_number();
> -    increase_used(r->free());
> -
> -    // Record this remainder as allocation waste
> -    _heap->notify_alloc(r->free(), true);
> -
>      _collector_free_bitmap.clear_bit(num);
>      _mutator_free_bitmap.clear_bit(num);
>      // Touched the bounds? Need to update:
> 
> Testing: hotspot_gc_shenandoah, benchmarks
> 
> Thanks,
> -Aleksey
> 

Ok



More information about the shenandoah-dev mailing list