RFR: 8294775: Shenandoah: reduce contention on _threads_in_evac [v4]

Nick Gasson ngasson at openjdk.org
Mon Nov 14 14:43:12 UTC 2022


> The idea here is to reduce contention on the shared `_threads_in_evac` counter by splitting its state over multiple independent cache lines. Each thread hashes to one particular counter based on its `Thread*`. This helps improve throughput of concurrent evacuation where many Java threads may be attempting to update this counter on the load barrier slow path.
> 
> See this earlier thread for details and SPECjbb results: https://mail.openjdk.org/pipermail/shenandoah-dev/2022-October/017494.html
> 
> Also tested `hotspot_gc_shenandoah` on x86 and AArch64.

Nick Gasson 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 four additional commits since the last revision:

 - Merge branch 'master' into 8294775
 - Put the * next to the type
 - Refactor
 - 8294775: Shenandoah: reduce contention on _threads_in_evac

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/10573/files
  - new: https://git.openjdk.org/jdk/pull/10573/files/09447b38..2d8327cc

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=10573&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=10573&range=02-03

  Stats: 241174 lines in 3117 files changed: 124576 ins; 76223 del; 40375 mod
  Patch: https://git.openjdk.org/jdk/pull/10573.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10573/head:pull/10573

PR: https://git.openjdk.org/jdk/pull/10573


More information about the shenandoah-dev mailing list