RFR: 8361099: Shenandoah: Improve heap lock contention by using CAS for memory allocation [v20]
Xiaolong Peng
xpeng at openjdk.org
Wed Jan 7 22:27:56 UTC 2026
On Tue, 6 Jan 2026 21:32:30 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
>> Xiaolong Peng has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 265 commits:
>>
>> - Merge branch 'openjdk:master' into cas-alloc-1
>> - Fix build error after merging from tip
>> - Merge branch 'master' into cas-alloc-1
>> - Merge branch 'master' into cas-alloc-1
>> - Some comments updates as suggested in PR review
>> - Fix build failure after merge
>> - Expend promoted from ShenandoahOldCollectorAllocator
>> - Merge branch 'master' into cas-alloc-1
>> - Address PR comments
>> - Merge branch 'openjdk:master' into cas-alloc-1
>> - ... and 255 more: https://git.openjdk.org/jdk/compare/de81d389...cf13b7b5
>
> src/hotspot/share/gc/shenandoah/shenandoahAllocator.cpp line 254:
>
>> 252: // Step 1: find out the alloc regions which are ready to refresh.
>> 253: for (uint i = 0; i < _alloc_region_count; i++) {
>> 254: ShenandoahAllocRegion* alloc_region = &_alloc_regions[i];
>
> We've got the heap lock here. why does this need to be atomic? Comments in the code should make this clear.
I believe AtomicAccess::load here is not needed, I'll remove it.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26171#discussion_r2670262454
More information about the hotspot-gc-dev
mailing list