RFR: JDK-8221751: Shenandoah: Improve SATB enqueueing

Roman Kennke rkennke at redhat.com
Mon Apr 1 13:41:09 UTC 2019


In some paths, we currently check GC state 3 times before enqueueing an 
oop in SATB buffer: 1. conc-mark in progress (global or local), 2. SATB 
active (global) 3. SATB active (local). This should be streamlined to 
only do one check, and consistently check conc-mark-in-progress only.

This can be taken even further for arraycopy pre-barriers and 
arraycopy-loops, where the check can be done once for the whole 
operation. In arraycopy barriers code, we can also 'inline' the current 
thread and marking context objects, instead of fetching them for every 
array element.

Bug:
https://bugs.openjdk.java.net/browse/JDK-8221751
Webrev:
http://cr.openjdk.java.net/~rkennke/JDK-8221751/webrev.00/

Testing: hotspot_gc_shenandoah ok

Good?

Roman



More information about the hotspot-gc-dev mailing list