RFR: Complete liveness for recently allocated regions outside of allocation path
Aleksey Shipilev
shade at redhat.com
Fri Jul 13 16:40:33 UTC 2018
http://cr.openjdk.java.net/~shade/shenandoah/live-tams-late/webrev.01/
Looking at allocation path performance. Allocation atomically increments per-region "live_data"
field on every allocation, which is done under the allocation lock. This introduces unneeded local
latency even in uncontended case, and prolongs the locked region.
But "live_data" is somewhat special: with normal concurrent mark, we know that all allocation past
TAMS are implicitly live, and so we can "just" adjust it when mark is finished, avoiding the whole
mess on allocation path. This also naturally splits mark and traversal paths, where traversal does
not need liveness anyway.
Testing: tier3_gc_shenandoah, benchmarks
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list