RFR: 8316632: Shenandoah: Raise OOME when gc threshold is exceeded
William Kemper
wkemper at openjdk.org
Thu Sep 21 22:00:11 UTC 2023
On Thu, 21 Sep 2023 21:54:14 GMT, William Kemper <wkemper at openjdk.org> wrote:
>> src/hotspot/share/gc/shenandoah/shenandoahControlThread.hpp line 125:
>>
>>> 123:
>>> 124: // Handle allocation failure from normal allocation.
>>> 125: // Optionally blocks while collector is handling the failure.
>>
>> Who is allowed to call the non-blocking version? What is the semantics of block or don't block? Can the documentation be extended to elaborate on its use?
>
> When a mutator allocation fails, it will block on this call and wait to be notified by the control thread to retry the allocation. The notification follows a degenerated or full GC.
With this change, the mutator is also allowed to call the non-blocking version when it cannot allocate because the GC overhead has been exceeded. I didn't make sense to me to have the mutator block and wait for a GC cycle when the GC threshold is already exceeded.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15852#discussion_r1333640109
More information about the hotspot-gc-dev
mailing list