RFR: 8321806: Shenandoah: each mutator must see FullGC or GC overhead limit is exceeded before throwing OOM [v4]

William Kemper wkemper at openjdk.org
Wed Jan 24 23:24:50 UTC 2024


On Wed, 24 Jan 2024 18:26:00 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> Require each thread to observe unproductive Full GC before it throws OOM exception.
>
> Kelvin Nilsen has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits:
> 
>  - Merge branch 'master' of https://git.openjdk.org/jdk into fix-fullgc-race
>  - Restrict GCTimeLimit if ParallelGCThreads > active_processors
>  - Improve message for failure of TestThreadCounts
>  - Merge branch 'master' of https://git.openjdk.org/jdk into fix-fullgc-race
>  - Fix whitespace
>  - Fix up defaults and add quick-OOM following unproductive GCs
>  - Fix allocation retry loop and update comments
>  - Merge branch 'master' of https://git.openjdk.org/jdk into fix-fullgc-race
>  - Implement gc_overhead_exceeds_limit support
>  - Fix several bugs for GCU limit exceeded implementation
>  - ... and 2 more: https://git.openjdk.org/jdk/compare/fb822e49...b46512ad

Might need to sync up with openjdk:master again.

src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp line 300:

> 298:   size_t _gc_no_progress_count;
> 299: 
> 300:   double*   _gc_historical_utilization;

Could we put these fields and the attendant functionality in `ShenandoahMmuTracker`?

src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp line 309:

> 307:   intptr_t get_gc_no_progress_count_at_last_oom() const;
> 308: 
> 309:   void set_gc_state_all_threads(char state);

This PR looks like it is missing some recent changes, for example: https://github.com/openjdk/jdk/commit/51238c4bdbce48f6b719f7dcfe5b7df8b8c6d85b.

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

Changes requested by wkemper (Author).

PR Review: https://git.openjdk.org/jdk/pull/16985#pullrequestreview-1842513311
PR Review Comment: https://git.openjdk.org/jdk/pull/16985#discussion_r1465625807
PR Review Comment: https://git.openjdk.org/jdk/pull/16985#discussion_r1465624533


More information about the hotspot-gc-dev mailing list