RFR: Don't count evacs double in traversal GC

Roman Kennke rkennke at redhat.com
Wed Jan 31 21:58:44 UTC 2018


I think this improved liveness work just led me to find the liveness 
accounting bug that I have observed occasionally. It seems we are 
counting evacs double: once when allocating the gclab/shared-gc, and 
once by the usual GC mechanics: we evac cset objects, then push them to 
the queue, and when it's popped, we count liveness for the object, 
regardless in which region it is. Let's never count any liveness on 
allocation, and do GC traversal count it. This is more precise (not 
counting any GCLAB waste).

http://cr.openjdk.java.net/~rkennke/traversal-liveness-accounting/webrev.00/

Test: hotspot_gc_shenandoah

Ok?

Roman


More information about the shenandoah-dev mailing list