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

Aleksey Shipilev shade at redhat.com
Mon Mar 19 13:13:58 UTC 2018


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



More information about the shenandoah-dev mailing list