[11u] RFR (S) 8260497: Shenandoah: Improve SATB flushing

Aleksey Shipilev shade at redhat.com
Mon Feb 15 18:59:07 UTC 2021


Original RFE:
   https://bugs.openjdk.java.net/browse/JDK-8260497
   https://git.openjdk.java.net/jdk/commit/316d52c1

There are distinct changes from master version.

First, SATBMarkQueue and PtrQueue are still closely coupled together. Because of this, we cannot 
drop "virtual" from should_enqueue_buffer, and therefore cannot remove 
ShenandoahSATBMarkQueue::should_enqueue_buffer completely.

Second, there is no SATBMarkQueueSet::flush_queue(SATBMarkQueue&), and so we have to go to 
SATBMarkQueue::flush directly. This also simplifies ShenandoahFlushSATBHandshakeClosure.

I have observed reduced final-mark times with this patch.

11u variant:
   https://cr.openjdk.java.net/~shade/8260497/webrev.11u.01/

Testing: hotspot_gc_shenandoah; tier{1,2} with Shenandoah


-- 
Thanks,
-Aleksey



More information about the jdk-updates-dev mailing list