RFR: 8294775: Shenandoah: reduce contention on _threads_in_evac

Nick Gasson ngasson at openjdk.org
Wed Oct 5 11:20:53 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.

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

Commit messages:
 - 8294775: Shenandoah: reduce contention on _threads_in_evac

Changes: https://git.openjdk.org/jdk/pull/10573/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10573&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8294775
  Stats: 87 lines in 4 files changed: 62 ins; 6 del; 19 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