RFR: Don't count evacs double in traversal GC
Roman Kennke
rkennke at redhat.com
Wed Jan 31 22:18:39 UTC 2018
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?
Roman
More information about the shenandoah-dev
mailing list