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