RFR: 8350905: Shenandoah: Releasing a WeakHandle's referent may extend its lifetime [v2]
William Kemper
wkemper at openjdk.org
Wed Mar 12 20:55:07 UTC 2025
On Wed, 12 Mar 2025 20:26:37 GMT, Y. Srinivas Ramakrishna <ysr at openjdk.org> wrote:
>> William Kemper has updated the pull request incrementally with two additional commits since the last revision:
>>
>> - Split out and comment on weak/phantom stores separately
>> - Revert unnecessary change
>
> Looks good to me.
>
> I'm curious if this made any difference to SPECjbb performance w/GenShen.
@ysramakrishna , The issue description could make it more clear, but, in addition to the issue described in the title, this PR fixes the specific problem of the old generation SATB asserting when it tries to decode a narrow oop. The sequence of events for the assertion failure is:
1. SATB is on for old marking
2. Young collection transitions some regions to `trash`
3. Young weak root processing nulls out a referent that points into a `trash` region
4. Old gen SATB barrier tries to decode the narrow oop, but asserts out because the oop is not in the heap (because it is in a trash region)
This also relates to: https://github.com/openjdk/jdk/pull/23951
-------------
PR Comment: https://git.openjdk.org/jdk/pull/24001#issuecomment-2719098857
More information about the shenandoah-dev
mailing list