RFR: Pacer should account allocation waste and unsuccessful pacing in the budget
Aleksey Shipilev
shade at redhat.com
Thu Apr 5 16:28:31 UTC 2018
On 04/05/2018 03:50 PM, Aleksey Shipilev wrote:
> http://cr.openjdk.java.net/~shade/shenandoah/pacing-waste/webrev.01/
>
> I have been testing the intended property that with large enough pacing delay we would Degenerate
> and Full GC very rarely. We are almost there, if we fix these two issues:
>
> a) Allocations can waste some space, either due to early retirement of the region, or due to
> humongous region leftovers. We need to tell Pacer that we have wasted that space, otherwise it would
> overestimate the space available.
>
> b) Unsuccessful pacing allocates anyway, but it does not claim the budget! Which means, the
> unsuccessful pacing comes completely under the radar, while we should really claim the budget
> forcefully, so subsequent allocations wait for GC to catch up too.
>
> Both these things require pacing budget to be signed, therefore we switch to intptr_t.
>
> Testing: hotspot_gc_shenandoah, LRUFragger with max-pacing-delay=10s and 85G/100G LDS runs w/o degen
After some performance testing (actually hotspot_gc_shenandoah was way too long!), I realized the
"idle" pacing was fubar-ed, bcause we need to notify ShConcThread about allocation waste too!
Refactored to make it clear:
http://cr.openjdk.java.net/~shade/shenandoah/pacing-waste/webrev.02/
Still passes hotspot_gc_shenandoah, allocation pressure tests, LRUFragger.
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list