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

earthling-amzn github.com+71722661+earthling-amzn at openjdk.java.net
Thu Nov 19 01:26:35 UTC 2020

> 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/7bde62e5...68ba6285


  - all: https://git.openjdk.java.net/jdk/pull/1099/files
  - new: https://git.openjdk.java.net/jdk/pull/1099/files/f6bb0391..68ba6285

 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1099&range=05
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1099&range=04-05

  Stats: 77106 lines in 993 files changed: 43874 ins; 22060 del; 11172 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1099.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1099/head:pull/1099

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

More information about the hotspot-gc-dev mailing list