RFR: Forceful SATB buffer flushes should be time-periodic, not traffic-dependent
Aleksey Shipilev
shade at redhat.com
Thu Jul 5 08:51:05 UTC 2018
http://cr.openjdk.java.net/~shade/shenandoah/satb-prompt-2/webrev.01/
We had this fix before in this form:
http://hg.openjdk.java.net/shenandoah/jdk/rev/2eeb051dc58d
...but, running specjbb at different IR levels shows that sometimes SATB traffic is not enough to
perform flushes rapidly enough. It makes more sense to switch to periodic flushing. This reverts the
previous fix, and makes the patch more contained. It also does not enqueue too many buffers when
SATB traffic is high.
Before:
Pause Final Mark (N) = 0.30 s (a = 3381 us) (n = 89)
(lvls, us = 607, 2168, 2598, 3145, 20625)
Finish Queues = 0.16 s (a = 1790 us) (n = 89)
(lvls, us = 22, 559, 998, 1504, 19526)
After:
Pause Final Mark (N) = 0.18 s (a = 2111 us) (n = 87)
(lvls, us = 605, 1934, 2070, 2266, 3146)
Finish Queues = 0.05 s (a = 561 us) (n = 87)
(lvls, us = 23, 379, 467, 654, 2138)
Really, the problem is outliers in "before" case, because the traffic was low.
Testing: tier3_gc_shenandoah, benchmarks
-Aleksey
More information about the shenandoah-dev
mailing list