RFR: Provide non-taxable allocation slack at the beginning of the cycle

Roman Kennke rkennke at redhat.com
Mon Mar 19 13:27:15 UTC 2018


Am 19.03.2018 um 14:13 schrieb Aleksey Shipilev:
> http://cr.openjdk.java.net/~shade/shenandoah/pacing-slack/webrev.01/
> 
> Current pacing scheme has a little deficiency: it starts with zero budget at the beginning of the
> cycle. This means the application threads that want to allocate would need to wait for GC threads to
> ramp up and replenish the budget, which introduces latencies like these, even if the GC cycle is fast:
> 
>  Actual pacing delays histogram:
> 
>        From -         To        Count
>        1 ms -       2 ms:           4
>        2 ms -       4 ms:         144
>        4 ms -       8 ms:           8
>        8 ms -      16 ms:           5
>       16 ms -      32 ms:           1
> 
> The way to deal with this: provide the initial non-taxable slack, so that application can allocate
> at the beginning of GC cycle. With this patch, we have zero pacing delays with large enough heap
> with adaptive/traversal/partial.
> 
> Testing: hotspot_gc_shenandoah, targeted benchmarks
> 
> Thanks,
> -Aleksey
> 

Great! Looks good!

I actually wondered why I'm getting so much pacing even with large
headroom :-)





More information about the shenandoah-dev mailing list