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