RFR: Concurrent partial should clean up properly on cancellation
Roman Kennke
rkennke at redhat.com
Tue Oct 10 12:06:10 UTC 2017
Looks good to me.
Am 10. Oktober 2017 13:30:29 MESZ schrieb Aleksey Shipilev <shade at redhat.com>:
>http://cr.openjdk.java.net/~shade/shenandoah/concpartial-cleanups/webrev.01/
>
>Suppose we have done init-partial, exited, and about to go to
>conc-partial, but allocation failure
>happens and we slide to full gc; then, task queues populated during
>init-partial would stay put, and
>we fail the assert that checks their emptiness on *next* partial cycle.
>Note that the similar thing
>happens after init-mark cancellation, but there, Full GC code cleans up
>the task queues, because it
>shares them with the concurrent mark.
>
>I think this is the symptom of a larger problem: on cancellation,
>partial GC should clean up all its
>mess, if possible. If not possible, Full GC code should assist.
>Cleanups should not include only TQ
>clears, but also other cleanups. (With the notable exception of cset,
>which Full GC handles
>separately by fixing up the references there).
>
>Testing: hotspot_gc_shenandoah (failing tests now pass)
>
>Thanks,
>-Aleksey
--
Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.
More information about the shenandoah-dev
mailing list