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

earthling-amzn github.com+71722661+earthling-amzn at openjdk.java.net
Fri Nov 13 22:37:12 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 incrementally with six additional commits since the last revision:

 - 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
 - Make logging messages more consistent
 - Restore call to reset allocation counter at cycle start

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/1099/files
  - new: https://git.openjdk.java.net/jdk/pull/1099/files/275e80a2..6ef8dc68

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1099&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1099&range=01-02

  Stats: 92 lines in 2 files changed: 13 ins; 44 del; 35 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