RFR: 8225255: Make SATB qset lock-free

Aleksey Shipilev shade at redhat.com
Thu Jun 20 08:50:35 UTC 2019

On 6/19/19 8:10 PM, Kim Barrett wrote:
> Making the SATB queue set's completed buffer list lock-free makes the
> management of the count and process_completed_buffers flag trickier.
> But it might be possible to simplify things by changing the uses.
> Shenandoah doesn't use process_completed_buffers at all.  G1 only uses
> the count directly in assertions, and indirectly in the management of
> process_completed_buffers.  If G1 didn't use that flag, I think the
> whole count and flag management could be eliminated.  That will be
> looked at later; see JDK-8226337.

Yes, I think promptness in SATB buffer processing is more beneficial for pauses, especially when
filtering blows out the already-marked objects. IIRC, my Shenandoah experiments shown that by the
end of concurrent mark there are hardly any new oops come from SATB. In fact, the filtering gets too
effective for its own good: if you are following up with G1 SATB performance work, I'd suggest
fixing JDK-8205353 first.

> Webrev:
> http://cr.openjdk.java.net/~kbarrett/8225255/open.00/

Shenandoah parts look good. It also passes hotspot_gc_shenandoah for me.


More information about the hotspot-gc-dev mailing list