RFR: 8352914: Shenandoah: Change definition of ShenandoahSharedValue to int32_t to leverage platform atomics

Ben Taylor btaylor at openjdk.org
Tue Dec 9 17:50:25 UTC 2025


On Fri, 5 Dec 2025 18:44:08 GMT, Ben Taylor <btaylor at openjdk.org> wrote:

> The `STATIC_ASSERT` below this typedef appears to be out of date. 
> 
> The barriers check thread local copy of gc state, which is stored in `ShenandoahThreadLocalData::_gc_state`  and is type `char`, so the size requirement described by the assert is maintained even after this change.
> 
> Change passes all tier1 tests locally when run with Shenandoah GC.

In SpecJBB 2015, I observed the following performance changes. These comparisons are only between single runs, so some variance should be expected.

On aarch64:
- Critical jops increased from 57513 to 57779, (+266 / +0.46%)
- Max jops increased from 62164 to 53015 (+851 / +1.36%)

On x86_64:
- Critical jops increased from 86241 to 92047 (+5806 / 6.73%)
- Max jops increased from 88479 to 95613 (+7134 / +8.06%)

I also ran dacapo and specjvm, but no other results in any of the 3 benchmarks showed significant changes. Most other results were within 0.5% or less

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

PR Comment: https://git.openjdk.org/jdk/pull/28681#issuecomment-3633443138


More information about the hotspot-gc-dev mailing list