RFR: 8255984: Shenandoah: "adaptive" heuristic is prone to missing load spikes [v6]

Aleksey Shipilev shade at openjdk.java.net
Fri Nov 20 07:06:17 UTC 2020


On Thu, 19 Nov 2020 01:26:35 GMT, earthling-amzn <github.com+71722661+earthling-amzn at openjdk.org> wrote:

>> This change adds a "reactive" heuristic for triggering concurrent GC cycles.
>> 
>> The reactive heuristic maintains a margin of error and an allocation spike detection mechanism to trigger cycles somewhat more aggressively than the 'adaptive' heuristic. This heuristic 'reacts' to the outcome of GC cycles by adjusting the sensitivity of the triggers.
>> 
>> JBS ticket is here: https://bugs.openjdk.java.net/browse/JDK-8255984
>> 
>> The "adaptive" heuristic remains the default.
>> 
>> Steps to reproduce and test will follow shortly (there are no new jtreg test failures for Shenandoah with this change).
>
> earthling-amzn has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 17 additional commits since the last revision:
> 
>  - Remove unused member
>  - Avoid recomputing instantaneous allocation rate
>  - Merge branch 'master' into shenandoah-reactive-heuristic
>  - Fix wrong type for os::elapsedTime
>  - Remove dependency from allocation rate to adaptive heuristic
>  - Defend against underflow and division by zero
>  - Inline calls to gc decision methods (vestige of an earlier design)
>  - Use os::elapsedTime to avoid type issues and to be consistent with other heuristics code
>  - Reuse instantaneous_rate method instead of duplicating code
>  - Rename variables to improve readability
>  - ... and 7 more: https://git.openjdk.java.net/jdk/compare/0e541a6f...68ba6285

Okay then! Time to integrate and do anything else in follow-ups.

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

Marked as reviewed by shade (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/1099


More information about the shenandoah-dev mailing list