RFR: Refactor ShenandoahHeapLock

Aleksey Shipilev shade at redhat.com
Fri Aug 25 10:31:37 UTC 2017


Three improvements:
 a) Move ShenandoahHeapLock to a separate file, split lock and locker;
 b) Pad the lock state to avoid false sharing against other fields;
 c) Reuse the spin-lock mechanism from Thread (probably written by Dave Dice);

Webrev:
 http://cr.openjdk.java.net/~shade/shenandoah/heaplock-refactor/webrev.01/

Improves -UseTLAB scores ~25% under heavy allocation, and also levels out some allocation outliers,
see e.g:
 http://cr.openjdk.java.net/~shade/shenandoah/heaplock-refactor/stalls-before.txt
 http://cr.openjdk.java.net/~shade/shenandoah/heaplock-refactor/stalls-after.txt

Testing: hotspot_gc_shenandoah, some benchmarks

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list