RFR: Don't count evacs double in traversal GC
Aleksey Shipilev
shade at redhat.com
Thu Feb 1 08:08:39 UTC 2018
On 01/31/2018 11:18 PM, Roman Kennke wrote:
> Am 31.01.2018 um 22:58 schrieb Roman Kennke:
>> 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
>
> Ok, this is probably nonsense. The traversal-in-progress check should already have caught this.
> However, outside of the traversal phase, there are no evacs either, so the whole switch-block is
> useless. The patch should still be useful as a cleanup and simplification.
>
> Ok?
Yes, looks good.
-Aleksey
More information about the shenandoah-dev
mailing list