RFR: Allow young collection to suspend marking in old generation [v14]

Roman Kennke rkennke at openjdk.java.net
Mon Mar 1 18:17:07 UTC 2021


On Mon, 1 Mar 2021 17:53:37 GMT, earthling-amzn <github.com+71722661+earthling-amzn at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp line 189:
>> 
>>> 187:   _cancelled_gc.set(CANCELLABLE);
>>> 188:   if (clear_oom_handler) {
>>> 189:     _oom_evac_handler.clear();
>> 
>> This change seems a bit suspicious to me. Why do we need to clear the OOM evac handler here?
>
> Prior to these changes, the gc cancellation flag was always set because of an allocation failure, so the flag was cleared on a safepoint (final update refs). Now we have a case where we've "cancelled" a gc, but not because we've run out of memory so we don't need to clear the oom evac handler.

Ok. But I think the OOM handler still needs to be cleared at the safepoint.

-------------

PR: https://git.openjdk.java.net/shenandoah/pull/19


More information about the shenandoah-dev mailing list