On Wed, 21 Jan 2026 16:47:43 GMT, Aleksey Shipilev <[email protected]> wrote:

>> Shenandoah and G1 are using CardTable for most of its infrastructure, but 
>> flip the card tables as they go, and maintain the actual card table 
>> reference in TLS. As such, accessing card table base from assembler and 
>> compilers runs into risk of accidentally encoding the wrong card table base 
>> in generated code. 
>> 
>> Most of the current code avoids this trouble by carefully implementing their 
>> GC barriers to avoid touching shared parts where card table base constness 
>> is assumed. _Except_ for JVMCI, that reads the card table base for G1 
>> barrier set, and that is wrong. The JVMCI users would need to rectify this 
>> downstream.
>> 
>> Shenandoah added a few asserts to catch these errors:
>>  SHENANDOAHGC_ONLY(assert(!UseShenandoahGC, "Shenandoah byte_map_base is not 
>> constant.");)
>> 
>> ...but G1 would also benefit from the similar safety mechanism.
>> 
>> This PR strengthens the code to prevent future accidents.
>> 
>> Additional testing:
>>  - [x] Linux x86_64 server fastdebug, `hotspot_gc`
>>  - [x] Linux x86_64 server fastdebug, `all` with Serial, Parallel, G1, 
>> Shenandoah, Z
>>  - [x] Linux AArch64 server fastdebug, `all` with Serial, Parallel, G1, 
>> Shenandoah, Z
>>  - [x] GHA, cross-compilation only
>
> Aleksey Shipilev has refreshed the contents of this pull request, and 
> previous commits have been removed. The incremental views will show 
> differences compared to the previous content of the PR. The pull request 
> contains one new commit since the last revision:
> 
>   Some polishing

Thanks! The only GHA failure is due to (the absence of): 
https://github.com/openjdk/jdk/pull/29254. Looking for a second Reviewer!

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

PR Comment: https://git.openjdk.org/jdk/pull/28703#issuecomment-3785460384

Reply via email to