RFR: Merge draining SATB and task queues
Roman Kennke
rkennke at redhat.com
Wed Nov 23 10:35:14 UTC 2016
In the final-mark pause we have two phases: drain-satb and drain-
queues. The first drains the remaining SATB buffers, the latter marks
through everything that we've got from those SATB buffers.
There's no reason we need to have all workers wait for each other
between the two phases though: as soon as one worker is done with the
SATB queues, it can get right to work on processing the task queues. No
need to stop and spin up again.
This changes merges the two phases. The only very minor downside is
that we need to do drain-satb in mark-compact too (see comment in code)
but this should not be measurable (it should quickly claim all threads,
the SATB queues of which should all be empty).
Tested with jtreg and SPECjvm2008.
http://cr.openjdk.java.net/~rkennke/mergedrainsatb/webrev/
Ok to push?
Roman
More information about the shenandoah-dev
mailing list