On Thu, 22 Aug 2024 19:50:21 GMT, Albert Mingkun Yang <ay...@openjdk.org> wrote:

>> Roman Kennke has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Fix hash shift for 32 bit builds
>
> src/hotspot/share/gc/shared/gcForwarding.hpp line 36:
> 
>> 34:  * Implements forwarding for the full-GCs of Serial, Parallel, G1 and 
>> Shenandoah in
>> 35:  * a way that preserves upper N bits of object mark-words, which contain 
>> crucial
>> 36:  * Klass* information when running with compact headers. The encoding is 
>> similar to
> 
> This doc suggests this forwarding is only for compact-header so I wonder if 
> we can check `UseCompactObjectHeaders` directly instead of heap-size in 
> `GCForwarding::initialize`.

Right. The original implementation was more complex and then the consensus was 
to not sprinkle UseCompactHeaders all over the place, but with that new/simpler 
implementation it makes sense to simply check the UCOH flag.

> src/hotspot/share/gc/shared/gcForwarding.hpp line 40:
> 
>> 38:  * heap-base, shifts that difference into the right place, and sets the 
>> lowest two
>> 39:  * bits (to indicate 'forwarded' state as usual).
>> 40:  */
> 
>> "can use 40 bits for forwardee encoding. That's enough for 8TB of heap."
> 
> I feel this 8T-constraint is significant and should be in the doc.

Done.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1750264571
PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1750265026

Reply via email to