RFR: 8377048: Shenandoah: shenandoahLock related improvments [v3]
Xiaolong Peng
xpeng at openjdk.org
Wed Feb 4 08:33:40 UTC 2026
On Wed, 4 Feb 2026 07:15:22 GMT, Xiaolong Peng <xpeng at openjdk.org> wrote:
>> While I was working on https://bugs.openjdk.org/browse/JDK-8373371, I made these changes to the shenandoahLock, but I feel it make sense peel off these changes into a separate PR as they are not really related to JDK-8373371.
>>
>> Major thing in this PR is to use template for ShenandoahReentrantLock and ShenandoahLocker so we could get rid of duplicate code, along with some other changes where the locks are used e.g. use type alias for ShenandoahNMethodLock and ShenandoahNMethodLocker, use ShenandoahReentrantLock for ShenandoahRebuildLock.
>>
>> Another improvement is to strengthen assert in SheandnoahHeapLocker to avoid potential dead lock(this was also discussed in previous PR [here](https://github.com/openjdk/jdk/pull/27612#discussion_r2479898169) and our internal channel
>>
>> ### Test
>> - [x] MacOS aach64, server fastdebug: hotspot_gc_shenandoah
>> - [x] GHA
>
> Xiaolong Peng has updated the pull request incrementally with one additional commit since the last revision:
>
> Locker class should assume that lock instance is never be nullptr
src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp line 69:
> 67: idx_t const _max; // The maximum number of heap regions
> 68: size_t const _region_size_bytes;
> 69: ShenandoahFreeSet* const _free_set;
unintended change, will revert these lines.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29543#discussion_r2762799966
More information about the shenandoah-dev
mailing list