RFR: 8260106: Shenandoah: refactor reference updating closures and related code [v7]

Aleksey Shipilev shade at openjdk.java.net
Tue Jan 26 13:58:49 UTC 2021


> We have a block in `ShenandoahHeap::maybe_update_with_forwarded` that is irrelevant after JDK-8231086. Additionally, "resolve and update" paths are really only used by STW GCs, and thus do not require atomic updates. This leads to considerable simplifications in the code, and improves performance on the common paths (especially in fastdebug builds that drop many irrelevant asserts).
> 
> Additional testing:
>  - [x] `hotspot_gc_shenandoah`
>  - [x] `tier1` with Shenandoah
>  - [x] `tier2` with Shenandoah

Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 15 commits:

 - Put stars in their old places
 - Merge branch 'master' into JDK-8260106-shenandoah-simplify-updates
 - Add const
 - Renames
 - Eliminate UpdateRefsMode altogether
 - Simplify update_with_forwarded
 - Comment updates
 - Merge branch 'master' into JDK-8260106-shenandoah-simplify-updates
 - Simplify ShenandoahUpdateHeapRefsTask
 - Fix up generic update references too, introduce CONC_UPDATE
 - ... and 5 more: https://git.openjdk.java.net/jdk/compare/e080ce92...09b2d4aa

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

Changes: https://git.openjdk.java.net/jdk/pull/2166/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2166&range=06
  Stats: 279 lines in 15 files changed: 86 ins; 116 del; 77 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2166.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2166/head:pull/2166

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


More information about the shenandoah-dev mailing list