RFR: 8255847: Shenandoah: Shenandoah should not mark through weak roots [v2]

Zhengyu Gu zgu at openjdk.java.net
Thu Nov 5 01:57:15 UTC 2020


> After moving weak root processing into concurrent phase, Shenandoah should no longer marks through weak roots, even when class unloading is disabled, given weak root processing no longer contributes to latency.
> 
> There are a couple of bugs:
> 1) ShenandoahRootVerifier was not updated to reflect the change.
> The problem did not show up due to SH::parallel_cleaning() uses wrong flag to determine if it should cleanup weak roots, and it will be addressed in separate CR.
> 
> 2) Concurrent roots scanner should not mark through string dedup roots.
> 
> Test:
> - [x]  hotspot_gc_shenandoah
> - [x]  hotspot_gc_shenandoah with -XX:+ShenandoahVerify -XX:-ClassUnloading
> - [x]  hotspot_gc_shenandoah with -XX:+ShenandoahVerify -XX:+UseStringDeduplication

Zhengyu Gu 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 three additional commits since the last revision:

 - Merge branch 'master' into JDK-8255847-root-verifier
 - Remove StrDedup root from concurrent root scanner
 - 8255847: Shenandoah: Shenandoah root verifier's roots_do() should not include weak roots

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/1050/files
  - new: https://git.openjdk.java.net/jdk/pull/1050/files/2dc92484..fca66171

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

  Stats: 6612 lines in 443 files changed: 3686 ins; 1935 del; 991 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1050.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1050/head:pull/1050

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


More information about the hotspot-gc-dev mailing list