[jdk19] RFR: 8291496: Allocating card table before heap causes underflow asserts in CardTable::addr_for() [v2]

Ivan Walulya iwalulya at openjdk.org
Wed Aug 10 09:41:54 UTC 2022


On Mon, 8 Aug 2022 08:59:07 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

>> Hi all,
>> 
>>   can I have reviews for sidestepping a wrong assert in `CardTable::addr_for`?
>> 
>> So if `CardTable::_byte_map_base` gets negative (highest bit set) if it is allocated very much below the heap, the used `pointer_delta` method errors out with an assert that (in unsigned comparison) the "left" address is smaller than the "right" address.
>> 
>> Testing: tier 1-5, failures without change after modifying the code to allocate the card table at very low addresses and using `HeapBaseMinAddress`, no failures afterwards.
>> 
>> @albertnetymk analyzed this, so I'll add him as contributor of this patch.
>
> Thomas Schatzl has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Add documentation

Lgtm!

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

Marked as reviewed by iwalulya (Reviewer).

PR: https://git.openjdk.org/jdk19/pull/160



More information about the hotspot-gc-dev mailing list