RFR: Improve scheduling and interleaving of SATB processing in mark loop

Roman Kennke rkennke at redhat.com
Mon Jun 18 07:58:02 UTC 2018


Printing out when SATB buffers get enqueued (by mutators) and processed
(by collectors) shows that the way we currently process SATB buffers
(only when marking stack runs empty) tends to process SATB buffers
towards the end of marking, thus piling up SATB buffers throughout most
of the marking cycle.

I propose to also process SATB buffers (if available) between marking
strides. This leads to more promptly processing SATB buffers, thus
smoothing out SATB pressure during marking cycle. I also added an
os::naked_yield() between strides to give mutators a chance to run.

http://cr.openjdk.java.net/~rkennke/interleave-satb/webrev.00/

Testing: tier3_gc_shenandoah

Good? WDYT?

Roman



More information about the shenandoah-dev mailing list